패키지 구분
- Controller
-> ** Controller
- API를 만들고 service에 정보를 넘기는 역할
- Get, Post, Put, Delete 를 사용하여 조회, 입력, 수정, 삭제 API를 만든다.
- Service
-> ** Service
- 실제 행동이 들어가는 메인 클래스 파일
- Controller에서 만든 API 있는 메서드를 Service에서 만든다.
- Repository에서 선언한 메서드를 통해 API 맞춰 메서드를 만든다.
- Repository
-> ** Repository
- DB와 연결되어 있는 interpace
- Jpa를 상속받고 findByAll 등의 메서드를 선언한다.
- Dto
-> RequestDto : 요청이 들어온 값을 담아서 전달
-> ResponseDto : 응답이 온 값을 담아서 전달
- 매서드의 매개변수로 보통 가져오는 클래스로 기능에 따라 여러개 존재 할 수 있다.
- Entity
-> User, Product 등의 이름을 사용
- Entity 하나가 테이블에 행 하나!!
- 데이터 베이스에 있는 것들을 객체로 변환하기 위한 정보를 담고 있음
- 데이터랑 매핑되는 부분이기 때문에 무조건 1개의 클래스만 있음
참고용
- .isPresent() : Optional로 만든 변수에서 입력한 값이 존재하는지 확인
if (checkUsername.isPresent()) {
throw new IllegalArgumentException("중복된 사용자가 존재합니다.");
}