묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
사용자, 관리자 Rest API를 한 서버에서 관리할 때, URI 설계
안녕하세요.이번에 신입 백엔드 개발자로 취업하게 되어 프로젝트를 진행 중에 해당 HTTP 강의를 듣고 궁금한 점이 생기어 올리게 되었습니다. 다름이 아니라 사용자 API와 관리자 API를 제공하는 서버가 분리되어 있지 않고 한 서버에서 모두 제공하는 형태에서 URI를 어떻게 설계해야 하는지 잘 모르겠습니다. 예를 들어, 로그인 API를 예시로 들어보자면 "/v1/api/login" 으로 만들면 깔끔한데 관리자 로그인도 들어가야해서 결국 "/v1/api/user/login", "/v1/api/admin/login" 으로 설계하게 되었는데 이게 잘 설계한 것인지 모르겠습니다... [예시]인증이 필요없는 API --> 기본 Path "/api/v1/..."--> ex. /api/v1/products (상품 목록 API) 사용자 인증이 필요한 API --> 기본 Path "/api/v1/user/..."--> ex. /api/v1/products (내 상품 목록 API) 관리자 인증이 필요한 API --> 기본 Path "/api/v1/admin/..."--> ex. /api/v1/admin/products (모든 유저 상품 목록 API) [궁금한 점]사용자 API와 관리자 API를 한 서버에서 제공하는 경우에 URI를 어떤 규칙을 갖고 설계하는 게 좋은지 궁금합니다. 하나의 컨트롤러에다 인증이 필요없는 Public API, 사용자 API, 관리자 API를 모두 관리하는 게 좋은지 아니면 권한별로 컨트롤러를 쪼개서 관리하는 게 좋은 것인지 궁금합니다. --> (하나의 컨트롤러로 관리) ex. ProductController--> (권한 별로 쪼개서 관리) ex. PublicProductController, UserProductController, AdminProductController
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
POST 등록과 PUT 등록 차이 중 의문점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]HTTP API URI 설계 중 POST 등록 시에는 클라이언트는 URI를 모르니 컬렉션만 지정해서 URI를 /members까지만 하고 요청하면 서버가 URI를 부여해서 회원 등록이 완료되고PUT 등록 시에는 클라이언트가 URI를 알고 있으므로 스토어 및 식별자까지 지정해서 /files/star.jpg라는 완전한 URI를 서버에 요청해서 등록된다고 이해했습니다.그런데 의문점이 POST /members 는 다수의 객체 등록이고 PUT /files/star.jpg는 단일 객체 등록이니 PUT으로 등록 시에는 클라이언트가 특정 식별자를 지정해서 단일로만 등록되는 것이고, POST로 등록 시에는 클라이언트는 특정 식별자를 모르니 컬렉션만 URI에 지정함으로써 다수가 등록되는 걸로 이해해도 될까요?만일 맞다면 앞으로 외울 때 PUT : 단일 등록 , POST : 다수 등록으로 제가 이해해도 될까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션을 사용할 수 있다면, URL를 설계할때, /member/{id} 와 같이 PathVariable를 가져갈 필요가 있을까요?
'모든개발자를 위한 HTTP웹 기본지식' 에서 배운 바로는 URL를 설계할때, 회원조회를 위한 url 이라 치면, "/member/{id}" 같이 PathVariable인 회원id 값을 url에 명시해 두었습니다.그런데 이번에 쿠키와 세션을 학습하면서 느낀건데, 애초에 그냥 "/member" 로만 해도, 로그인한 세션값으로 회원 정보를 가져와 해당 회원에 맞는 화면을 응답해도 되지 않을까요?비슷한 또 다른 예시인데,userA가 자신이 주문한 item들을 전체 조회하고자 할때 요청할 url를"/orders/{memberId}" 로 하여 memberId를 통해 회원객체를 조회하고, 조회한 객체의 주문목록을 화면으로 뿌려주는것보다는,"/orders" 로만 url을 잡고 세션값을 통해 현재 요청을 날린 회원 객체를 받아 주문목록을 화면에 뿌려주는것이 조금 더 url을 간결하게 만들 수 있지 않을까.. 라는 생각이 들었습니다. 결론:url을 "/member/{id}" 으로 잡았던 이유가 아직 세션을 학습하기 이전이라 그런것인가요, 아니면 다른 이점이 있기 때문일까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
리소스, URI, HTTP메서드 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]항상 친절한 답변해주셔서 감사드립니다.1.URI, 리소스에대한 정의가 헷갈려서 강의를 계속 돌려봐도 이해가 되지를 않아 따로 정리해보았는데 이렇게 이해하면될까요?예를 들어 회원정보관리 API를 설계한다고 하면URI = /members (리소스에 접근할수있는 식별자)리소스 = 회원 또는 회원목록웹페이지행위 = 조회, 등록, 삭제, 변경HTTP메서드 = 리소스를 대상으로 행위를 함URI == 리소스이렇게 이해하면될까요 ? 2.추가적으로 URI와 리소스에대한 분명한 정의가 무엇인지 질문드립니다.URI는 path + query(ex. /member?q=hello&hl=ko)인가요 ? 그래서 예를들면 GET /search?q=hello&kl=ko HTTP/1.1 에서 /search?q=hello&kl=ko 이 부분이 URI인가요?그리고 리소스는 강의자료에는 리소스=회원이라고만되어있고 구글링을해서 찾아보면 리소스=자원이라고만 되어있는데, 리소스조회, 리소스등록과 같이 '리소스'에 대한 정의가 무엇인지 질문드립니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
URI와 URL의 차이점..?이 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]URI는 인터넷 상에 존재하는 모든 리소스들을 말하고, URL은 리소스가 있는 위치를 말한다고 이해했습니다. 그렇다면 예를 실시간 교통 정보로 하셨었는데 실시간 교통 정보라는 것 자체는 URI이고, 실시간 교통 정보를 확인할 수 있는 위치가 URL이 되는것이고 이해가 되는데 제가 맞게 이해한건지 궁금합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
URI, URL의 차이..?
이번 강의를 듣고 URI는 자원을 식별, URL은 자원의 위치를 알려주는 것으로 이해했습니다. 강의 자료의 예제 중에서 "https://www.google.com/search?q=hello&hl=ko"가 URL이라고 하셨는데 "https://www.google.com/search"가 자원의 위치를 나타내주는 URL이자 URI이고 (URI가 URL의 상위 개념이기 때문에) "https://www.google.com/search?q=hello&hl=ko"는 특정 위치에 있는 자원을 식별하는 주소이기 때문에 정확히 말하면 URI라고 하는 게 맞지 않나요? URL이라고 부르는 이유가 통상적으로 URL이라고 부르기 때문인가요??
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
컨트롤 URI 부분 질문드립니다.
안녕하세요:) 아래의 컨트롤 URI 부분에 질문에 있어서 질문드립니다. orders/{orderId}/start-delivery 위의 컨트롤 URI 를 아래와 같이 바꾸고 orders/{orderID} 해더에 아래와 같은 문장을 추가하여 해결하는 방법이 URI 는 리소스만을 생각한다는 부분에서 맞는 것 같다고 생각되는데 start-delivery: true 위의 생각이 업계에서 올바르게 사용될 수 있는 방법인지, 아니라면 어떤 부분이 문제인지 답변 부탁드립니다! 개인적인 생각으로 Header 부분이 거대해질 수 있다는 문제가 있을 것 같지만 URI 정의상으로는 어떻게든 Header 에 넣어서 요청을 보내는 것이 옳다고 생각하여 질문드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
안녕하세요 오류 확인 부탁드립니다
안녕하세요 좋은강의 올려주셔서 너무감사합니다 동영상보면서 따라하고있는데 저는 선생님처럼 나오질않네요.. 아예 맵핑이 안되는듯합니다 URL도 선생님이랑 전혀 다르게나오네요 ㅠㅠ 어디가 문제인지 계속 찾아보려고해도 도저히 답이 나오질않아서 여쭤봅니다ㅠㅠ