2026/01/09 3

세션과 커넥션

요약1. 최초에 히카리데이터소스에서 풀엔트리크리에이터 생성 풀 엔트리크리에이터에서 콜() 호출2. 히카리풀에서 createPoolEntry() 호출 PollBase에서 newPollEntry() 호출 뉴커넥션 호출 히카리데이터소스에서 겟커넥션 호출 커넥션 반환 커넥션풀 만큼 커넥션을 만듬3. @Tramsctional 달린 메소드 시작 트랜잭션인터셉터 호출4. TransactionAspectSupport의 invokeWithinTransaction() 호출 createTransactionIfNecessary() 호출 5. 플랫폼트랜잭션매니저의 구현체인 AbstractPlatformTransactionManager에서 겟트랜잭션시작6AbstractPlatformTransactionManager을 상속받은 하..

스레드로컬과 세션

public class ThreadLocalSessionContext extends AbstractCurrentSessionContext { private static final ThreadLocal> CONTEXT_TL = ThreadLocal.withInitial( HashMap::new );하이버네이트의 스레드로컬 세션 콘텍스트 클래스스레드로컬은 맵으로 이루어져있으며 세션팩토리를 키로 많은 세션이 들어있다. @Overridepublic Session getCurrentSession() { if ( currentSessionContext == null ) { throw new HibernateException( "No CurrentSessionContext configured" ); ..

MSA에서의 SRP CCP

SRP 단일책임원칙클래스는 오직 하나의 변경사유를 가져야한다MSA에서 하나의 변경사유를 가져야하는 서비스에 대입가능CCP 공동폐쇄원칙패키지의 클래스들은 동일한 유형의 변경에 대해 닫혀 있어야 한다. 패키지에 영향을 주는 변경은 그 패키지에 속한 모든 클래스에 영향을 끼친다.CCP를 적용해서 MSA 구축하면 동일한 사유로 변경되는 컴포넌트를 모두 같은 서비스로 묶을 수 있다.

아키텍처 2026.01.09