숙명여대 멋사 아기사자 문유진🦁
실습 번호 |
캡쳐 |
---|---|
17번 |
|
18번 |
|
19번 |
|
20번 |
|
21번 |
|
22번 |
|
23번 |
|
24번(인천) |
|
24번(도쿄) |
|
24번(파리) |
|
24번(카이로) |
|
24번(런던) |
-
각 계층의 기능과 역할
- Client: 서비스를 요청한다.
- Controller: 사용자의 요청이 진입하는 지점으로 요청에 따라 어떤 처리를 할지 결정해준다. 단, controller는 결정만 해주고 실질적인 처리는 Service에서 담당하며 사용자에게 view를 응답으로 보내준다.
- Service: 비즈니스 로직을 수행하는 계층으로 Repository와 소통하며 데이터를 DB에 넣거나 가져오며 재사용이 가능하다.
- Repository: DB와 소통하는 역할을 하며 Entity를 받아와 DB와 연결한다. 오롯이 DB와의 연결만을 위해 존재한다.
- DB: 데이터가 저장되어 있는 곳이다.
-
DTO를 사용하는 이유
- 객체를 표현하는 View Layer와 객체를 저장하는 DB Layer의 역할을 분리하기 위해서
- Entity 객체의 변경을 피하기 위해서(프로그래머의 의도와 다르게 데이터가 변질될 수 있으므로)
- ResponseDTO, RequestDto는 요청사항에 따라서 자주 변경되므로 View와 통신하는 DTO 클래스를 분리해서 관리
- Entity 클래스에 원하는 데이터를 표시하기 위한 필드나 로직이 추가되면 객체 설계를 망가뜨릴 수 있으므로 도메인 모델링을 지키기 위해서
-
실습에 작성한 코드 JPA 구조로 설명
- JPA란 자바 진영에서 ORM 기술 표준으로 사용되는 인터페이스 모음으로 Hibernate, Spring JPA가 대표적이다. JPA는 객체와 테이블을 자동으로 매핑시키기 때문에 쿼리문 작성 없이도 DB에 접근이 가능하다.
- JPA 어노테이션
- @Entity - DB 테이블을 매핑하며 JPA가 관리
- @Id - 해당 필드를 기본키로 지정
- @GeneratedValue - 기본키 생성 설정을 할 수 있으며 자동 생성 기능 보유
- @Column - 객체 필드를 테이블 컬럼에 매핑
- Repository 생성 및 상속: DB 접근을 위한 Repository를 생성하여 JpaRepository 상속을 받아서 기본적인 CRUD 메소드 제공