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로 객체 생성)
'Old > Spring' 카테고리의 다른 글
스프링 빈과 의존 관계 (0) | 2023.02.09 |
---|---|
API (0) | 2023.01.29 |
Controller와 GetMapping (0) | 2023.01.23 |