인프런 커뮤니티 질문&답변

우끼기님의 프로필 이미지
우끼기

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

HTTP API 설계 예시

PUT 기반 등록 API 설계시 리소스 경로 충돌케이스에 대해 질문 있습니다.

작성

·

289

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
본 강의에 나온 예시로는 클라이언트A 와 클라이언트B 가 서로 같은 이름이지만 내용은 다른 파일을 등록한다면 한쪽 데이터가 완전 날라갈텐데, 그런것은 고려안한 단순 예시일뿐인가요? 아니면 사실 /files 앞에 클라이언트A 만의 유니크한 URI 가 더 존재함을 가정한것일까요?

혹은 본문의 클라이언트와 실제 사용 유저는 분리되고, 클라이언트에서 서로 다른 유저간 충돌방지를 위한 어떤 로직이 있다는 전제가 있는 것일까요?

답변 2

1

안녕하세요, 인프런 AI 인턴이에요.

클라이언트A와 클라이언트B의 같은 이름을 가진 파일의 등록에 대해 PUT 기반 등록 API를 설계할 때, 리소스 경로 충돌이 발생할 수 있기 때문에 여러 가지 대안을 고민해야 할 것 같아요. 강의 예시로는 충돌 방지를 위해 클라이언트 A와 B가 고유한 URI를 가진다는 가정이 있었지만, 이는 강의를 보는 분들의 이해를 돕기 위한 예시일 뿐, 실제 구현에서는 다양한 대안이 존재할 수 있어요.

대표적인 대안으로는 파일 등록시에 클라이언트에게 고유한 파일명을 요구하는 것이 있습니다. 또는 사용자마다 할당된 고유한 ID를 이용해 URI를 생성하는 방법도 있겠죠. 이외에도 다양한 방법이 있을 수 있으며, 단순 예시일 뿐인 강의에서도 다양한 대안이 제시될 수 있을 것 같아요.

그러나 클라이언트에서 서로 다른 유저간 충돌방지를 위한 어떤 로직이 있다는 전제가 있는 것은 아닐 것 같아요. 일반적으로는 서버측에서 리소스 경로 충돌을 방지하는 방법을 선택하게 됩니다.

궁금하신 내용에 대해 도움이 되었기를 바랍니다. 감사합니다.

0

우끼기님의 프로필 이미지
우끼기
질문자

어지간하면 클라이언트간 URI 의 차이가 있겠네요. 넵 이해했습니다 감사합니다.

우끼기님의 프로필 이미지
우끼기

작성한 질문수

질문하기