240702
학습
● 1. 면접 예상 답변
공통 질문
1. JPA에서 Lazy Loading과 Eager Loading의 차이점은 무엇인가요? 각각의 장단점에 대해 설명해 주세요.
Eager Loading은 즉시로딩으로 불리며, 특징으로는 특정 엔티티를 조회시 연관 된 엔티티를 함께 조회한다는 특징이 있고 Lazy Loading은 지연로딩으로 불리며, 특징으로는 특정 엔티티를 조회시 연관 된 엔티티는 조회하지 않는 특징이 있다.
이 둘의 특징을 비교해보면, 엔티티 조회시 연관 된 엔티티를 함께 조회하느냐 안하느냐의 차이점을 알 수 있다.
2. JPA에서 N + 1 문제를 해결하기 위한 방법을 설명해 주세요.
기본적으로 N+1문제를 해결하기 위해서는 LazyLoading을 디폴트로 가지고 가야하며, fetchjoin을 통해 문제를 해결할 수 있다.
추가 질문
1. 통합 테스트와 단위 테스트의 차이점에 대해서 설명해주세요.
단위 테스트는 개발 초반에 수행이 되며, 메서드와 같이 가장 작은 단위를 집중적으로 테스트를 하는 방식입니다.
통합테스트는 개발 후반에 수행되며, 시스템 전체의 동작을 확인할 때 사용하는 테스트 방식 입니다.
2. 통합 테스트와 단위 테스트의 장/단점에 대해서 설명해주세요.
단위테스트는 가장 작은 메서드 단위로 테스트를 시행하기 때문에 빠른 테스트와 빠른 피드백을 받을 수 있고, 단위의 크기가 작기 때문에 테스트의 복잡성이 낮아져 테스트가 쉬워진다는 장점이 있습니다.
단점으로는 가장 작은 단위로 테스트하기 때문에 그만큼 테스트코드를 많이 작성해야해서 테스트 코드에 대한 시간/비용이 증가한다는 단점이 있습니다.
통합테스트의 장점은 시스템 전체적인 동작을 확인할 수 있기 때문에 단위 테스트로는 발견할 수 없는 문제를 발견할 수 있어 시스템의 안정성을 보장해준다는 장점이 존재하고, 단점으로는 큰 범위를 테스트하기 단위 테스트보다 신뢰성이 떨어질 수 있으며, 에러 발생의 원인을 확인하기 어려워 유지보수의 불편함이 있다.
3. 테스트 코드를 직접 짰을 때, 느낀 테스트 코드 작성의 필요성을 설명해주세요.
테스트 코드 작성을 통해 코드를 검증을 했기 때문에 해당 코드에 대한 안전함을 확인할 수 있었고, 무엇보다 이러한 테스트 과정을 통해 해당 코드에 문제가 없다는 자신감을 얻을 수 있었습니다. 이 처럼 테스트 코드를 작성함으로써 기능에 대한 확실함을 얻을 수 있다는 가장 큰 장점이 있기 때문에 무조건 작성을 해야한다.
4. JPA와 Hibernate의 차이점은 무엇인가요?
JPA는 ORM 기술 표준 인터페이스이며, Hibernate는 JPA를 구현하는 구현체 입니다.
회고
오늘은 모의 면접을 보기 전에 예상 질문에 대한 답변을 생각해서 정리를 해보았다.
'내일배움캠프 Spring 5기' 카테고리의 다른 글
내일배움캠프 55일차 TIL - QueryDSL Pagination (0) | 2024.07.04 |
---|---|
내일배움캠프 54일차 TIL - QueryDSL 사용하는 방법 (0) | 2024.07.02 |
내일배움캠프 52일차 TIL - AWS(2) EC2 (0) | 2024.07.01 |
내일배움캠프 51일차 TIL - AWS(1) (0) | 2024.06.28 |
내일배움캠프 50일차 TIL - JDBC (0) | 2024.06.27 |