본문 바로가기
개인 공부/TIL

[ TIL - 면접 ] 자소서 면접 대비 공부 3편 - JPA -

by 킴도비 2024. 11. 13.

🖋 내 포트폴리오 기반으로 들어올 질문에 대해 최종 합격을 위한 공부를 시작해보자 🔥

 

🚌 2024년 11월 13일~ 2024년 11월 17일까지의 주제는 JPA다.

 

💡 참고할 질문 형식

1️⃣ 첫번째 접은 글은 내 말로 풀어쓴 정답
2️⃣ 두번째 접은 글은 해석 또는 공부한 내용 또는 추가적으로 궁금한 내용

 

1. JPA에 대해 설명해 주세요.

더보기
  • JPA(Java Persistence API)란?
    • 자바 ORM 기술에 대한 API 표준 명세서
    • 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 효율적으로 관리할 수 있는 프레임워크
    • 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크
    • JPA를 구현한 대표적인 오픈소스로 Hibernate가 있다.
더보기

 

2. JPA 설정 시 Spring과 SpringBoot에서 어떤 차이가 있는지 알려주세요.

더보기
  • 내부 로직에서는 큰 차이가 없지만 세세한 부분에서 차이가 있다.
    • Spring Boot에서는 application.properties나 application.yml 파일로 JPA 설정을 자동 구성하지만, Spring에서는 persistence.xml을 사용하거나 @Configuration 클래스를 통해 JPA 설정을 수동으로 한다.
    • 의존성 관련해서도 SpringBoot는 한줄의 추가로 반영되는 반면 Spring에서는 명시적으로 추가해야 한다.
    • 데이터 베이스 연결 시에도 SpringBoot는 spring.datasource와 같은 곳에서 관련 정보를 추가하면 되지만, Spring에서는 Datasource 및 EntityManagerFactory를 직접 구성하거나 Java 설정을 통해 관리해야 할 수 있다.

 

3. JPA와 Spring Data JPA에 대해 설명해 주세요.

더보기
  • Spring Data JPA란?
    • JPA 기반 애플리케이션 개발을 보다 간편하게 만드는 프레임워크
    • DB에 접근할 필요가 있는 대부분의 상황에서 Repository를 정의하여 사용
  • JPA에서 다른 점
    • 일반 JPA는 EntityManager를 사용해서 데이터 베이스 기능을 사용
더보기

 

4. ORM에 대해서 설명해 주세요.

더보기
  • ORM(Object Relational Mapping)이란?
    • 자바 객체와 관계형 DB를 매핑한다. 즉, 객체가 DB 테이블이 되도록 만들어주는 것이다.
    • ORM을 사용하면, SQL를 작성하지 않아도 직관적인 메소드로 데이터를 조작할 수 있다는 장점이 있다.

 

5. JPA와 MyBatis에 차이에 대해서 설명해 주세요.

더보기
  • 공통점 
    • 데이터 베이스 접속을 편하게 사용하기 위해 SQL Mapper 기술과, ORM 기술을 제공
  • 차이점
    • Mybatis는 개발자가 작성한 SQL 실행 결과를 객체에 매핑 시켜주는 프레임 워크인 SQL Mapper를 사용하하고, JPA는 ORM 프레임워크를 기반으로 사용한다.
  • MyBatis란?
    • JDBC 프로그래밍을 단순화하여, 불필요한 Boilerplate 코드를 제거하고, Java 소스코드에서 SQL문을 분리하여 별도의 XML 파일로 저장하고, 이 둘을 서로 연결시켜주는 기능을 제공