면접 정리

YoungG209·2021년 11월 24일
0

면접

목록 보기
1/1

CheckedException / Unchecked Exception

Checked Exception

  • 처리여부 : 반드시 예외 처리 해야함
  • 트랜잭션 Rollback 여부 : Rollback 안됨
  • 대표 Exception : IOException, SQLException

Unchecked Exception

  • 처리여부 : 예외 처리 하지 않아도됨
  • 트랜잭션 Rollback 여부 : Rollback 안됨
  • 대표 Exception : NullPointerException, IllegalArgumentException

참조 : https://cheese10yun.github.io/checked-exception/

JPA N+1 문제

JPA N+1란?

  • Entity에 대해 하나의 쿼리로 N개의 레코드를 가져왔을 때, 연관관계 Entity를 가져오기 위해 쿼리를 N번 추가적으로 수행하는 문제

해결 방법

  1. Fetch join 사용
  2. @EntityGraph 사용
  3. 주의 사항
    • JoinFetch는 Inner Join, Entity Graph는 Outer Join
    • 카테시안 곱(Cartesian Product)이 발생하여 Subject의 수만큼 Academy가 중복 발생
      • 일대다 필드의 타입을 Set으로 선언
      • distinct를 사용하여 중복을 제거하는 것

참조 : https://jojoldu.tistory.com/165

테이블 정규화

정규화란

  • 테이블 간에 중복된 데이터를 허용하지 않는다는 것
  • 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있음

제1정규화

  • 테이블의 컬럼이 원자값(Atomic Value, 하나의 값)을 갖도록 테이블을 분해하는 것

제2정규화

  • 제1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것
  • 기본키의 부분집합이 결정자가 되어선 안된다는 것

제3정규화

  • 제2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것
  • 이행적 종속이라는 것은 A -> B, B -> C가 성립할 때 A -> C가 성립되는 것

BCNF 정규화

  • 제3 정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것

참조 : https://mangkyu.tistory.com/110

profile
고우고우~

0개의 댓글