Spring
- 심화 프로젝트 S.A 과정 이모저모
POST vs PATCH vs PUT
상황은 이러했다.
카드는 작업자로 유저 여러명을 지정할 수 있고 유저는 여러 카드에 참여할 수 있으므로 유저와 카드는 다대다 관계이다.
그말인 즉슨 카드는 필드값 memberList로 유저를 여러명 저장하고 있다.
그러면 memberList에 유저 한명을 추가할 때에는 어떤 http method를 써야할 까에 대한 고민을 했다.
1. PATCH vs PUT.
일단 이건 간단한 것이 카드에 대한 모든 필드값을 초기화하려는 것이 아니고 memberList만 바꾸려는 것이기에 PATCH 승리
2. PATCH vs POST
가장 고민되는 부분이 여기였는데 POST라기엔 카드라는 새로운 엔티티를 만드는 것이 아니라서 좀 고민이 되었다.
고민 끝에 다대다 관계로 인해 만들어진 카드-유저 테이블에 새로운 row를 추가하는 것이니.
POST의 목적인 새로운 리소스 할당이라는 조건에 부합한다고 생각하여 POST method로 결정해주었다.
AOP는 프로그래밍 방식(like OOP)
팀장님께서 보드의 멤버임을 검증해야하는 API가 많아지자 AOP를 적용하자고 하셨는데 나는 당연히 컨트롤러에 씌우시자는 것이지요? 여쭤봤더니 AOP는 컨트롤러에 국한된 공식이 아닌 프로그래밍 방식이라고 말씀해주셨다.
공통 관심사를 모듈화하여 OOP를 더 잘 지킬 수 있게 하는 것이 AOP며 대표적인 예로 메소드 단위(작은)에 쓰이는 @Transaction도 하나의 AOP이다.
알고리즘
- 프로그래머스 : 프로세스(Level 2, 큐)
느낀 점
너무 춥다.
'TIL' 카테고리의 다른 글
[23.12.28] (0) | 2023.12.29 |
---|---|
[23.12.27] (2) | 2023.12.27 |
[23.12.21] (1) | 2023.12.22 |
[23.12.20] (1) | 2023.12.20 |
[23.12.19] (1) | 2023.12.19 |