리나 Dev토리

WIL. 스프링 주특기 1주차 본문

SpringBoot

WIL. 스프링 주특기 1주차

리나lina 2022. 4. 17. 23:58

스프링 주특기 1주차

팀과제 중에 몇개 질문을 정리해보았다.

JPA 가 무엇인가요?

  • JSP에서는 JDBC를 이용해서 DB랑 데이터를 주고 받았는데, JPA를 이용하면 JPA가 JDBC API를 사용해서 DB랑 데이터를 주고 받는다.
  • JPA가 엔티티(개체)를 받으면, 그 엔티티를 분석해서 SQL 쿼리를 생성해서 DB에 날려줌
  • 같은 트랜잭션 안에서 같은 데이터를 찾으면 쿼리를 다시 안날리고, 캐시에 있는 것을 반환함

Controller, Service, Repository 가 무엇인가요?

  • Controller : 서버로 들어오는 API 요청 수신, 적절한 세부 컨트롤러에게 작업을 위임
  • Service : DB처리를 위해 DAO를 이용하여 데이터를 요청하는 등 비즈니스 로직 수행
  • Repository : Spring Data JPA의 모듈로 매우 적은 코드로 DAO를 구현할 수 있게 하는 인터페이스

ORM, JPA, Spring Data JPA 를 구분해서 설명해 보세요.

  • ORM
    - Object-relational mapping, 객체와 관계형 데이터베에스의 관계를 매핑해주는 것
    - Object 필드 ← 매핑 → DB Data
    - SQL쿼리가 아닌 메소드로 데이터를 저장, 조회 등 조작
  • JPA
    - JAVA에서 ORM 기술 표준으로 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스의 모음, 
    - 인터페이스라 실제로 구현된 것이 아니라, 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크
    - JPA를 구현한 대표적인 오픈 소스는  Hibernate가 있음
  • Spring Data JPA
    - JPA를 쉽고 편하게 사용할 수 있게 하는 Spring 모듈, 바로 Repository
    - Repository
      : JPA를 한 단계 추상화시킨 인터페이스
      : 사용자가 Repository인터페이스에 정해진 규칙대로 메소드를 입력하면,
       Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록함

 

참고

https://velog.io/@heoseungyeon/JPA-vs-Spring-Data-JPA

https://velog.io/@jybin96/Controller-Service-Repository-가-무엇일까

 

 

 

 

 

 

 

Comments