PUT 기반 등록 API 설계시 리소스 경로 충돌케이스에 대해 질문 있습니다.
358
작성한 질문수 9
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
본 강의에 나온 예시로는 클라이언트A 와 클라이언트B 가 서로 같은 이름이지만 내용은 다른 파일을 등록한다면 한쪽 데이터가 완전 날라갈텐데, 그런것은 고려안한 단순 예시일뿐인가요? 아니면 사실 /files 앞에 클라이언트A 만의 유니크한 URI 가 더 존재함을 가정한것일까요?
혹은 본문의 클라이언트와 실제 사용 유저는 분리되고, 클라이언트에서 서로 다른 유저간 충돌방지를 위한 어떤 로직이 있다는 전제가 있는 것일까요?
답변 2
1
안녕하세요, 인프런 AI 인턴이에요.
클라이언트A와 클라이언트B의 같은 이름을 가진 파일의 등록에 대해 PUT 기반 등록 API를 설계할 때, 리소스 경로 충돌이 발생할 수 있기 때문에 여러 가지 대안을 고민해야 할 것 같아요. 강의 예시로는 충돌 방지를 위해 클라이언트 A와 B가 고유한 URI를 가진다는 가정이 있었지만, 이는 강의를 보는 분들의 이해를 돕기 위한 예시일 뿐, 실제 구현에서는 다양한 대안이 존재할 수 있어요.
대표적인 대안으로는 파일 등록시에 클라이언트에게 고유한 파일명을 요구하는 것이 있습니다. 또는 사용자마다 할당된 고유한 ID를 이용해 URI를 생성하는 방법도 있겠죠. 이외에도 다양한 방법이 있을 수 있으며, 단순 예시일 뿐인 강의에서도 다양한 대안이 제시될 수 있을 것 같아요.
그러나 클라이언트에서 서로 다른 유저간 충돌방지를 위한 어떤 로직이 있다는 전제가 있는 것은 아닐 것 같아요. 일반적으로는 서버측에서 리소스 경로 충돌을 방지하는 방법을 선택하게 됩니다.
궁금하신 내용에 대해 도움이 되었기를 바랍니다. 감사합니다.
캐시무효화시 그냥 no-store만 넣어되지 않나요?
0
71
2
API의 헤더와 바디에 대한 문의 입니다.
0
70
2
수정폼과 수정
0
69
1
쿠키에 대해 질문드려요!
0
89
2
서버에서 캐시 검증 헤더를 직접 처리해야 하나요?
0
87
1
http api get, post 멱등
0
40
1
컬렉션의 개념
0
49
1
시작라인에 들어가는 요청 대상 경로는 상대 경로 아닌가요?
0
54
1
PATCH 는 PUT처럼 멱등이여야 하지 않나요?
0
81
1
리소스 질문드립니다
0
56
1
IP 패킷 질문입니다.
0
59
1
html from, http api
0
75
2
브라우저 캐시가 60초 유효하다는게 무슨 뜻일까요
0
120
1
stateless 무상태 예제가 생각났는데. 저가 생각 한게 맞는지 궁금합니다.
0
99
1
URI 및 URL 질문, 왜 자바(스프링)에서는 이렇게 나누었는지?
0
141
1
host와 port
0
106
1
tcp/ip는 연결을 유지? 아니면 유지하지 않음?
0
145
1
다음 강의 커리큘럼 질문!!
0
131
2
캐시 개념에 대해서 설명하시지는 않으시는건가요?
0
113
1
클라이언트가 patch, delete 요청 시 알아야 하는 url
0
91
1
html form 형태 전송시 new, edit 등 컨트롤 리소스를 사용하는 이유
0
168
2
비 연결성(connectionless) 강의에서 질문입니다~
0
140
1
PATCH를 사용하지 못할 때 왜 POST?
0
162
2
협상과 우선순위3 질문드립니다.
1
130
1





