Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문
2
작성한 질문수 12
안녕하세요, 선생님!
강의 들으면서 Service 및 Cache Handler 구성간 Create/Update <-> Delete 간의 Return Record 여부 차이에 대해 질문드리고자 합니다.
서비스도 그렇고, 핸들러도 그렇고, Return type이 Create/Update는 전달받은 Record를 Entity Context에 적용한 객체인데, delete의 경우 void로 운용하시는 것을 보고 어떤 차이점이 있는지 궁금하여 질문드리게 되었습니다.
create, update 모두 반영 이후의 내역을 바로 반환하여 보여준다는 의미로 생각하였는데, delete를 보면 그런 것 같지는 않아서 따로 다른 의미가 있는지(실무에서 이렇게 많이 사용한다던가), 별 의미가 없는지 구체적으로 문의드리고자 합니다.
감사합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. Hyo Kyun Lee님.
Service 및 Cache Handler에서 Create/Update와 Delete 작업 간에 Return type을 어떻게 설정할지 궁금하신 것 같습니다. 이 주제는 API 설계 원칙과 관련하여 흔히 논의되는 부분입니다.
1. Create와 Update의 Return Record
Create: 새로운 엔티티를 데이터베이스에 저장한 후, 저장된 객체(특히 ID와 같은 데이터베이스에서 할당된 정보를 포함하여)를 즉시 클라이언트에게 반환하는 것이 일반적입니다. 이는 클라이언트 측에서 생성된 객체의 상태를 확인하고, 후속 작업(예: UI 업데이트)에 활용할 수 있게 해줍니다.
Update: 기존의 엔티티를 수정한 후, 변경된 객체를 반환하는 것도 마찬가지로 데이터의 최신 상태를 클라이언트가 확인할 수 있도록 합니다. 업데이트 후 전달되는 객체는 변경된 필드가 제대로 반영되었는지 검사하는데 유용합니다.
2. Delete의 Void Return
- Delete: 삭제 작업은 흔히 ‘상태 변화’ 보다는 ‘데이터 제거’에 중점을 둡니다. 따라서 클라이언트에게 반환할 정보가 상대적으로 적습니다. 이는 성공적으로 삭제되었다는 상태 코드(예: HTTP 204 No Content)를 응답하는 것으로 충분하다고 봅니다. 실제 삭제 후에도 결과를 확인할 필요가 크지 않다면 이러한 방법이 많이 사용됩니다.
실무에서의 활용
- 실무에서는 주로 해당 작업에 요구되는 핵심 정보(생성된 ID, 수정된 값 등)를 반환하여 시스템이 확정적인 상태 변화를 확인할 수 있도록 하고 있습니다.
- Delete의 경우, 작업의 성공 여부를 코드나 간단한 메시지로 처리하는 것이 일반적입니다. 이는 엔티티의 물리 삭제보다는 논리 삭제를 구현하는 경우에도 동일할 수 있습니다.
이 주제는 효율적인 API 설계 가이드라인라는 기존 게시물에서도 다뤄진 바 있습니다. API 설계 시, 반환 데이터를 포함한 데이터 설계는 서비스 규격에 따라 갈릴 수 있으므로 참고하시면 좋겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
2강 nodejs 3단계 설명 질문
0
6
0
인가 코드 발급(프론트 vs 백)
0
18
2
인텔리제이 MCP 서버 설정 관련
0
14
1
조회속도 개선에서 더 개선하는 방법이 궁금합니다.
0
20
2
Sequence 관련 질문
1
26
2
Image Only Query
1
24
2
프롬프트, 스킬, sub-agent
0
27
1
라이브 운영중인 환경의 테이블에 인덱스 추가시 고려사항
0
29
2
도메인 모델에서 관계와 규칙을 구분하는 방법
0
36
2
16 강의 메세지 retryCount의 의도
0
22
2
JPA Repository 질문이 있습니다!
1
32
2
페이지네이션 처리를 쿼리에서 하는 방식 질문
1
35
1
DDD 는 마이바티스와 잘 맞지 않는건가요?
0
44
1
스프링부트 버전 문의드립니다.
0
37
1
Json 요청 처리
1
30
2
Redlock 알고리즘 관해 궁금한게 있습니다!
0
36
2
비동기 스레드풀 분리 이유와 Virtual Thread 전환 시 고려사항
0
33
1
23강 5:38 부분 질문 있습니다!
0
43
1
23강 17초 부분 질문있습니다~
0
48
2
Split 전략 강의 중 질문 있어요
0
56
2
질문이 있습니다!!
0
70
2
RateLimitTest시 저는 2초로 해야 정상으로 나오는데
0
69
2
섹션3에 22번째 강의에서 에러발생합니다..
0
115
4
http://localhost:8080/cache-strategy/{{cacheStrategy}}/items 호출 시 NPE 에러 문의
1
126
2





