전체 글142 지연로딩 vs 즉시로딩 vs 패치조인 vs JPQL일반조인 vs 일반조인 1. 엔티티@Entity@Getter@NoArgsConstructor@AllArgsConstructor@Builderpublic class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "post_id") private Long id; @Column(nullable = false) private String content;} @Entity@Getter@NoArgsConstructor@AllArgsConstructor@Builderpublic class Comment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) .. 2026. 1. 12. 인덱스 스캔 선택도란?참고로 선택도란 인덱스 컬럼의 값이 얼마나 유일한지에 대한 지표다. 성별컬럼은 남자와 여자로 이루어져있기에 값이 2개 뿐이라 선택도가 매우 낮다. 따라서 인덱스 컬럼은 선택도가 높은 컬럼으로 지정하는게 좋다. 비용이란?비용이란 시스템의 성능, 안전성, 보안, 유지보수등에 지출되는 비용을 의미한다 DB에서 비용은 하드웨어, 소프트웨어, 인력, 보안, 유지보수 비용등의 요소가 포함되어있다. 수직적 탐색이란?B+tree에서 Root 노드에서 시작해 필요한 데이터가 있는 리프 노드까지 아래로 내려가는 탐색WHERE id = 100 같이 정확한 값을 찾을 때 id 인덱스 트리를 따라 100을 찾아간다. 수평적 탐색이란?수직적 탐색에서 찾은 첫 번째 리프노드에서 시작하여 인접한 리프 노드들을 좌우로 연결 .. 2026. 1. 10. 순차I/O와 랜덤I/O 순차I/O는 데이터를 연속적인 블록으로 순차적으로 읽거나 쓰는 작업이다.랜덤I/O는 데이터를 임의의 위치에서 읽거나 쓰는 작업이다. 순차I/O는 SSD에서 HDD보다 성능이 폭발적으로 상승하진않았지만. 랜덤 I/O는 SSD에서 성능이 크게 상승다.DB에서 일어나는 작업의 대부분은 랜덤 I/O기 때문에 RealMysql8.0에서는 SSD와 HDD의 초당 트랙잭션 처리 성능차이가 약 7배 라고 설명한다. 최근에 대부분 DBMS는 SSD를 채택한다. HDD에서 두 I/O의 공통점은 원판은 돌려서 읽어야 할 데이터가 저장된 위치까지 디스크 헤더를 이동시킨다는 것두 I/O의 성능차이는 디스크 헤더의 이동 횟수에서 발생한다. 디스크 헤더가 이동되는 시간을 seek time이라고 하는데 그 시간에 의해 좌우되는 것이.. 2026. 1. 10. 세션과 커넥션 요약1. 최초에 히카리데이터소스에서 풀엔트리크리에이터 생성 풀 엔트리크리에이터에서 콜() 호출2. 히카리풀에서 createPoolEntry() 호출 PollBase에서 newPollEntry() 호출 뉴커넥션 호출 히카리데이터소스에서 겟커넥션 호출 커넥션 반환 커넥션풀 만큼 커넥션을 만듬3. @Tramsctional 달린 메소드 시작 트랜잭션인터셉터 호출4. TransactionAspectSupport의 invokeWithinTransaction() 호출 createTransactionIfNecessary() 호출 5. 플랫폼트랜잭션매니저의 구현체인 AbstractPlatformTransactionManager에서 겟트랜잭션시작6AbstractPlatformTransactionManager을 상속받은 하.. 2026. 1. 9. 스레드로컬과 세션 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" ); .. 2026. 1. 9. MSA에서의 SRP CCP SRP 단일책임원칙클래스는 오직 하나의 변경사유를 가져야한다MSA에서 하나의 변경사유를 가져야하는 서비스에 대입가능CCP 공동폐쇄원칙패키지의 클래스들은 동일한 유형의 변경에 대해 닫혀 있어야 한다. 패키지에 영향을 주는 변경은 그 패키지에 속한 모든 클래스에 영향을 끼친다.CCP를 적용해서 MSA 구축하면 동일한 사유로 변경되는 컴포넌트를 모두 같은 서비스로 묶을 수 있다. 2026. 1. 9. 이전 1 ··· 8 9 10 11 12 13 14 ··· 24 다음