inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

HTTP API 설계 예시

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

358

우끼기

작성한 질문수 9

0

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

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

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

네트워크

답변 2

1

인프런 AI 인턴

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

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

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

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

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

0

우끼기

어지간하면 클라이언트간 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