아키텍쳐 패턴

SQL과 자바 메인 로직간의 분리 -> 관심사 분리 방법으로는 게이트웨이, 매퍼가 있다. 게이트웨이 방법은 행데이터게이트웨이, 레코드 집합 게이트 웨이 이렇게 2개가 존재한다. 행데이터 게이트웨이는 객체지향 방식과 꽤나 잘 어울린다. 하지만 도메인 논리가 복잡해져감에 따라 객체가 세분화되는데 이 과정에서 객체와 관계가 매핑이 되지 못한다. 레코드 집합 게이트웨이는 테이블을 객체화 시킨 것이다. 범용적으로 사용이 가능하다.

동작 문제

막대한 객체 그래프를 피하기 위해서는 레이지 로딩을 써라.

데이터 읽기

  1. 언더 페칭과 오버 페칭중에서 차라리 오버페칭이 좋다. 데이터 읽는 작업은 - 하드를 거치는 작업은 무거운 작업이기에 가능하면 많이 읽는 것이 좋다.
  2. 커넥션을 그때마다 생성하는 것은 무거운 작업이다. 커넥션 풀을 활용하여 가져오자

구조적 매핑 패턴

디비 - 상속구조 -> 슈퍼타입 서브타입

  1. 하나의 테이블로 통합

    성능이 좋지만 타입이 많아지는 경우 불필요한 컬럼들이 많아짐

  2. 여러 개의 테이블로 분리

    확장성은 좋으나 하나의 로우를 가지고 오기 위해서도 조인을 해야함

  3. 타입별로 다른 테이블로 생성

    확장성, 성능이 좋으나 슈퍼 서브타입을 제대로 활용하기가 힘듬.

기타 주의 사항

select 시에 select * 를 사용하지말자 -> 깨질 확률이 높다.


이런 글은 어떠세요?


오브젝트 6장까지를 읽고

BookReviewObjectStudyReview

카프카 스터디 3장 리뷰

BookReviewKafkaStudyReview

Leetcode를 플러그인을 써서 정복하자

SharingLeetCodeAlgorithm

Coursera "kotlin for java developers" Module 3 리뷰

CourseReviewKotlinStudyReview

Coursera "kotlin for java developers" Module 2 리뷰

CourseReviewKotlinStudyReview