Computer Engineering/Spring

Repositiry / Service / Test

onenewkong 2023. 2. 1. 15:07

Controller: MVC 컨트롤러 역할

Service: 핵심 비즈니스 로직 구현

Repository: 데이터베이스에 접근, 도메인 객체를 DB 저장하고 관리

Domain: 비즈니스 도메인 객체

 

 

1. Entity

 

- 데이터베이스에 쓰일 필드와 여러 엔티티간 연관관계 정의

- 테이블 전체가 엔티티, 1개의 행들이 엔티티 객체

- private Long id;                  // 하나의 id라는 column을 정의할 있음

 

 

2. Repository

 

- 엔티티에 의해 생성된 DB 접근하는 메서드들을 사용하기 위한 인터페이스

- 엔티티를 선언함으로써 데이터베이스 구조를 만들었다면, 여기에 어떤 값을 넣거나 넣어진 값을 조회하는 등의 CRUD(Create, Read, Update, Delete) 해야 쓸모가 있는건데 이걸 어떻게 할건지 정의해주는 계층

 

- 사용자 정의 레포지토리는 동적쿼리를 위한 것, 메소드도 직접 구현해야되고 등등.... 제공되는 인터페이스(JPARepository)로는 해결할 없어서

 

 

3. @(Annotiaion): 엔티티와 데이터베이스를 매핑하는 JPA에서 사용됨

 

@AfterEach: 테스트가 종료될 때마다 기능 실행, 메모리 DB 저장된 데이터 삭제(한번에 여러 테스트 실행하면 직전 테스트 결과 남아서 오류 있음)

@Test: 테스트를 수행하는 메소드

@BeforeEach: 테스트 실행 전에 호출되어 테스트가 서로 영향이 없도록 항상 새로운 객체를 생성하고, 의존 관계도 맺어줌

 

 

<추가>

Map<Long,Member> store = newHashMap<>();

Map: 인터페이스

자식인 HashMap으로 객체 생성

HashMap 본인의 메소드 외에 부모인 Map 메소드들을 강제 상속 받음

List 마찬가지(ArrayList 객체 생성)

'Computer Engineering > Spring' 카테고리의 다른 글

스프링 빈과 의존 관계  (0) 2023.02.09
API  (0) 2023.01.29
Controller와 GetMapping  (0) 2023.01.23