이미지 저장 방식
- DB에 Blob으로 직접 저장
- 파일을 서버 내부에 저장, 경로를 DB에 저장
→ 2번 선택
인증 방식
- JWT를 사용하여 인증 구현
- 프론트단에서는 token을 LocalStorage에 저장하여 인증 구현
회원-앨범 간 다대다 관계 구성
- JPA를 사용, 중간 엔티티를 통해 N:M 관계 구현
JPA Embeded Type, Base Entity 상속
- JPA의 EmbededType과 BaseEntity를 구현하여 보다 간결하게 코드를 작성
- Anniversary를 엔티티로 두지 않고 EmbededType으로 사용
이미지 Response API
- ResponseEntity <byte[]> 타입을 사용하여 바이트스트림으로 리턴하도록 구성
컨트롤러, 서비스 분리
- 컨트롤러에는 서비스를 호출하도록 하고, 실질적인 비즈니스로직은 서비스내부에 구현
컨트롤러에서 엔티티를 직접 리턴하지 않도록 하기
- 특히 User엔티티의 경우 password, auth정보가 함께 리턴되므로 별도 DTO를 만들어 리턴하도록 구현
- 양방향 연관관계를 가지는 경우 상호참조로 인해 무한 루프에 빠지는 현상을 막기 위해 DTO사용