도메인은 예시로 들었음. 진행중인 플젝 테이블구조와 비슷하게 간소화함.


테이블 : 회원, 영상, 좋아요

좋아요 테이블은 회원PK와 영상PK를 복합키로 가짐


회원A가 영상1에 좋아요를 요청하는 경우(Create로 간주)


서비스 레이어에서


boolean 좋아요( 회원 PK, 영상 PK ) {

// 로직1 : DB를 조회해서 이 회원이 좋아요를 누를 수 있는 회원인가를 먼저 검사함.

// 요청불가한 회원이면 예외 던져서 전역 예외처리기가 예외에 맞는 응답 구성하게 함.

...


// 로직2 : 요청가능한 회원이면 실행할 로직

회원 PK + 영상 PK로 좋아요 엔티티 생성해서 insert

}


이렇게 하려는데 보다시피 '이미 좋아요를 누른 회원'인 경우엔 생성할 수 없잖아?

1. 로직1에서 좋아요 테이블에 그 회원+영상이 존재하는지도 검사한다

2. 이미 좋아요 눌렀으면 로직2에서 생성요청해도 DB가 식별자 중복으로 거부할테니까 그걸 처리한다


어떻게 하는게 맞을까