멀티 모듈 프로젝트에서 모듈 구성 사례
한 줄 요약 서버를 몇 대로 나눌지와 비즈니스 모듈을 몇 개로 나눌지는 별개의 결정이다. 서버는 실행·배포·장애의 경계이고, 모듈은 코드와 의존성의 경계다. 패키지·모듈·서버 자체의 차이는 패키지, 모듈, 서버 나누는 기준은?에서 정리한다. 이 글에서는 멀티 모듈의 계층 구성과 여러 서버가 비즈니스 코드를 공유하는 방식을 다룬다. Layer를...
한 줄 요약 서버를 몇 대로 나눌지와 비즈니스 모듈을 몇 개로 나눌지는 별개의 결정이다. 서버는 실행·배포·장애의 경계이고, 모듈은 코드와 의존성의 경계다. 패키지·모듈·서버 자체의 차이는 패키지, 모듈, 서버 나누는 기준은?에서 정리한다. 이 글에서는 멀티 모듈의 계층 구성과 여러 서버가 비즈니스 코드를 공유하는 방식을 다룬다. Layer를...
문제 인식 2번째 column이 execution 횟수, 3번째 column이 parse call 횟수 24/11/07 부터 갑자기 특정 쿼리의 parse call이 크게 늘어서 거의 execution 횟수와 동일해졌다....
TF-IDF TF-IDF(Term Frequency-Inverse Document Frequency)는 텍스트 분석에서 널리 사용되는 통계적 가중치 척도 문서 내에서 특정 단어의 중요성을 평가하는 데 사용함. TF (Term Frequency) 특정 문서 내에서 단어의 출현 빈도를 측정 TF(w, d) = (문서 d 내에서 단어 ...
[!info] 직렬화, 역직렬화는 보통 json을 이용해서 처리하게 되고, 그렇게 하는 것이 좋아보인다. json이라는 명확한 표준이 있어 이식성도 좋고, 변환 로직도 심플해서 아래와 같은 잠재적인 문제를 피할 수 있기 때문이다. Java Serialization의 단점 어떤 사정으로 인해 json serialization 하지 못하는 경우,...
JVM + JIT compile / native image + AOT compile Spring 애플리케이션은 JVM 위에서 돌아가고, JVM은 그 동작 방식 때문에 초기 구동 속도가 느리다. JVM은 최초에는 interpreter로 동작하다가 자주 사용되는 메서드는 JIT compile하기 때문에, 초기에는 느릴 수 밖에 없...
JVM 전체 구조 https://coding-factory.tistory.com/828 Class Loader 런타임(최초 호출 시점)에 .class(바이트코드) 읽어 class load Execution Engine Interpreter 방식, JIT compile 방식 둘 다 사용 Memory Layout PC regi...
RepositorySeekMethodItemReader (Oracle) Pagination - SeekMethod 참고 open class RepositorySeekMethodItemReader<T, E>( chunkSize: Int, initialCursor: E, private val cursor...
[!info] Spring과 무관하게 컴파일 타임 초기화 -> 불가능 앱 시작 시점에 초기화 -> 가능 한 경우 사용 가능한 방법이다. 앱 시작 시점에 private 변수를 nested class bean을 이용해 초기화 public class InitAtStartup { private static ...
Spring에서 주기적으로 호출되어야 하는 메서드는 @Scheduled 처리한다. @Scheduled 붙은 메서드는 어떤 스레드에서 돌릴지 구성하는 방법은 크게 3가지가 있는데, ThreadPool (default) coroutine (Spring 6.1.0 부터 지원) Vitrual Thread (java 21 부터 지원) 각 방...
컨퍼런스는 엄청 딥한 주제 보다는 요즘 이슈가 되는 트렌디한 주제를 얕고 넓게 다루는게 오히려 더 괜찮을 수 있다. 참가자들은 큰 노력 안들이고 트렌디한 주제를 한번 훑어 볼 수 있으니까. 직접 문서 찾아가면서 안봐도 되고… keynote LG 생활가전 usage 고객센터에 CS 인입되면 → 운영자가 LLM에 자연어로 질의넣고, → 통계 결과 반...