2022/10 14

2022/10/29 TIL

JPA 프로그래밍 460페이지 까지 읽었다. Criteria와 queryDsl, nativeSql을 사용하는 방법에 대해서 배웠다. queryDsl이 Criteria보다 쓰기 간편하다고 느껴졌다. 그리고 벌크 수정을 하는 경우 영속성 컨텍스트를 통해서 업데이트하는 것이 아니라 바로 sql을 실행하는 것이므로 이때 영속성이 깨지는 문제를 해결하는 팁도 몇가지 배웠다. 이 방법은 세가지가 기억에 남았는데 첫 번째는 가장 먼저 벌크연산을 하고 이 후 영속성 컨텍스트를 사용하는 것이다. 두 번째는 벌크 연산을 한 이후 엔티티 매니저를 통해서 엔티티를 리프레시(em.refresh()) 해주는 것이다. 이러면 데이터베이스에서 정보를 다시 조회해온다. 세 번째는 벌크 연산 이후 영속성 컨텍스트를 초기화하는 것이다. ..

TIL 2022.10.29

2022/10/28 TIL

JPA 프로그래밍 409 페이지 까지 읽었다. JPQL과 JPQL의 조인방법들, 서브쿼리 방법, 경로표현식, 내부식, 그리고 Criteria 사용법을 알게 되었다. 패치조인이 무엇인지 이제야 알 수 있게 되었다. TypeOrm에서는 Relation을 통해서 풀거나 쿼리빌더로 해결하던 문제들을 이렇게 푸는구나 라는 생각을 하게 되었다. 그리고 JPQL이 객체에 대한 쿼리를 하는건 맞지만 query를 통해서 문제를 해결하는건 동일하지 않나? 이런 생각이 들었다. ORM을 사용해서 많은 문제를 쉽게 풀 수 있게 되었지만, 효율적인 프로그래밍을 위해서 쿼리를 만지는건 못 피하는건가 싶은 생각이 들었다. 그리고 queryDSL을 쓰게 되면 여타 언어들에서 사용하는 쿼리빌더나 엑티브레코드 암흑의 핵심 110페이지 ..

TIL 2022.10.29

2022/10/27 TIL

자바 표준 ORM 프레임워크 JPA 프로그래밍 359페이지까지 읽었다. 값타입과 JPQL 그리고 JPQL쿼리빌더에 대해서 알게 되었다. JPQL같은 경우는 죄다 직접 써야하나? 쿼리빌더같은게 있으면 좋을텐데, 이런 생각을 계속 했는데, 역시 누가 생각한건 다들 만드려고 하는 것 같다. 암흑의 핵심 조셉 콘래드의 암흑의 핵심을 읽기 시작했다. 57페이지까지 읽었다. 작가가 선상생활을 많이해서 해양소설을 위주로 글을 썼다고 하는데, 첫 장에서부터 묘사가 정밀했다. 마치 내가 템스 강에 와있는 듯한 기분이 들었다. 두께가 얇은데 아마 주말 안에 다 읽을 것 같다.

TIL 2022.10.27

2022/10/25 TIL

자바 ORM 표준 JPA 프로그래밍 309페이지 까지 읽었다. 고급 매핑 내용과 프록시와 연관관계 관련된 내용을 봤다. 고급 매핑쪽에서는 테이블의 상속 방식 세가지와 조인 테이블을 사용하는 방법과 여러 케이스를 들어 손자 클래스까지 존재하는 경우들을 보여줬다. 프록시와 연관관계쪽에서는 JPA가 지연로딩을 위해서 Proxy패턴을 사용하는 경우가 많다는 정보를 알게 되었다. 허클베리 핀의 모험 다 읽었다. 결국 핀은 톰을 만나고, 짐은 왓슨 아줌마의 유언대로 자유로워지며 이야기의 결말이 난다. 역시 오디세이아 같은 엔딩을 맞이하였다. 클리셰였지만 나는 재미있었다. 원래 다양한 인물 나오는거 안 좋아하는데 허클베리 핀의 모험에서는 인물들에 집중하고 입체적으로 보여줘서 실체감 있게 읽을 수 있었다.

TIL 2022.10.26

2022/10/24 TIL

자바 표준 ORM 프레임워크 JPA 프로그래밍 252페이지까지 읽었다. 연관관계 매핑과 고급매핑 내용을 읽었다. 기억에 남는 것은 복합키를 사용하기 위해서는 클래스를 새로 만들어서 사용해줘야한다는 점과 테이블간의 상속을 한가지 이상의 전략으로 풀어나갈 수 있다는 점이다. 이점을 보고 TypeOrm도 여러 테이블 전략을 지원해주나? 했는데, TypeOrm에서는 클래스를 상속받아서 사용하는 table per class를 구현해서 사용하는 방법과 싱글테이블 전략을 지원해주는 것을 알게 되었다. 사실 table per class는 typeorm이 아니라 Typescript의 상속을 받아 구현한 것이지만, 이렇게 사용할 수 있게 된 것을 알아서 좋다. 그리고 복합키를 위한 클래스라면 복합키간의 순서는 어떻게 정하..

TIL 2022.10.25

2022/10/23 TIL

자바 표준 ORM 프레임워크 JPA 프로그래밍 JPA를 깊게 파야할 필요가 생겨서 읽기 시작했다. 201페이지까지 읽었다. 세팅과 소개파트는 저자의 다른 강의를 통해서 배웠기 때문에 훑어보면서 넘길 수 있었다. 다른 내용들은 사실 ORM에서 다 마주치는 내용이었고, 영속성 컨텍스트가 기억에 남는 부분이었다. 영속성 컨텍스트가 1차캐시를 이용하기 때문에 데이터베이스와 통신하지 않아도 컨텍스트에서 관리되고 있는 것을 빠르게 조회할 수 있다는 점. 그리고 쓰기지연 SQL 저장소를 이용해서 성능 개선을 한다는 점. 엔티티의 생명주기에 4가지 상태가 존재하고, 이는 비영속, 준영속, 영속, 삭제 이렇게 4가지가 있는 것, 그리고 생명주기가 변경되는 조건등을 배웠다. 생명주기가 변경되는 조건은 책의 목차를 떠올려보..

TIL 2022.10.24

2022/10/21 TIL

루씬인액션 루씬의 관리와 관련된 부분과 사례 연구부분을 읽었다. 인덱스가 깨졌을때 어떻게 대응해야하는지, 복원하는 절차는 어떤 것이 있는지 방법을 보았고, 인덱스가 깨졌는지 여부를 알 수 있는 프로그램도 보았다. 사례연구에서는 서비스에서 특정한 용도로 어떠한 분석기를 쓰고, 필터링을 어떻게 했다같은 실용적인 예시를 볼 수 있었다. 한편 아쉬운점은 서비스 종료한 케이스가 많아서 링크드인 사례만 확인 가능 했던 점이다. 루씬 인 액션 끝! 허클베리핀 240페이지까지 읽었다. 계속해서 자유주를 향해 둘은 이동해나간다. 그 과정에서 핀이 재치(라고 쓰고 거짓말이라고 말한다)를 통해서 상황을 모면하고 모험을 계속 떠나는 내용을 볼 수 있다. 이 과정에서 핀이 거짓말을 하다보면 후회를 하게 된다는 것, 그리고 낯선..

TIL 2022.10.22

2022/10/20 TIL

루씬 인 액션 필수 확장 기능, 루씬을 포팅한 엔진, 라이브러리에 대한 소개, 성능 튜닝과 관련된 부분에 대해서 읽었다. 필수 확장 기능에서 기억에 남는 내용은 스팬 쿼리의 경우 성능이 좋지 않기 때문에(아마 토큰의 위치정보들을 훑어봐야하기 때문에, 도큐먼트 내부를 까보는 비용이 적지 않을 것 같다는 생각이다.) 쿼리 필터를 통해서 미리 검색 대상을 줄여두고 사용하는 것을 잊지 말아야한다는 내용이 기억에 남았다. 그리고 GeoCode 관련된 내용도 나왔다. 예전에 Firebase에서 제공해주는 FireStore에서 GeoHash를 사용했는데, 그때는 구글이 이런 알고리즘을 구상했구나 했는데, 그전에 이미 있었다는 것을 알게 되었다. 그리고 루씬을 포팅한 라이브러리 Clucene, dotLucene등에 대..

TIL 2022.10.21

2022/10/18 TIL

루씬 인 액션 루씬 인 액션 2부를 읽기 시작했다. 티카를 사용하는 방법과 필수 확장기능에 대해서 배웠다. 필수 확장 기능에서 기억에 남는 것은 N그램필터와 스태머링(단어의 기본형찾아주기),싱글(Shingle)이 있었다. N그램이란 단어를 문자 단위로 토큰을 만드는것인데, 문자의 길이가 최대 단어의 길이만큼 길어질 수 있다. 예를 들어, lettuce 의 N그램은 l,e,t,t,u,c,e,le,et,tt,tu,uc,ce,let,ett,ttu,tuc,uce,lett,ettu,ttuc,tuce,lettu,ettuc,ttuce,lettuc,ettuce,lettuce가 있다. 이렇게 단어의 N그램을 토큰으로 만들어두면 검색어의 일부 혹은 부분문자열만으로도 문서를 찾을 수 있다는 장점이 있다.(물론 검색어의 중요..

TIL 2022.10.18

2022/10/17 TIL

루씬 고급 검색 기법과 검색기능 확장 검색에서 기본적인 키워드로 검색하는 것 뿐 아니라, SpanQuery와 같이 Term사이의 거리를 확인해서 검색하거나, 텀벡터를 이용한 검색, RangeQuery등에 대해서 배울 수 있었다. 그리고 Term을 저장할때 페이로드를 같이 저장할 수 있는데, 이때 이 페이로드를 통해서 다양한 검색기능을 구현할 수 있는 것을 배웠다. 오늘까지 해서 루씬의 일반적인 기능에 대한 내용은 모두 읽었다. 내일부터는 확장기능에 대해서 읽게 될 것 같다. 허클베리 핀의 모험 허클베리 핀의 모험을 읽기 시작했다. 오늘은 60 페이지 정도 읽었다. 미국인들의 정서를 잘 표현한다는 마크트웨인의 작품인데, 읽고 많은 감상을 얻길 바란다. 소설이다보니, 다 읽고나서 이야기를 해보려고 한다.

TIL 2022.10.18