묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
getPosts(params.value) 이슈
const fetchPost = async () => { try { const { data, headers } = await getPosts(params.value) posts.value = data totalCount.value = headers['x-total-count'] } catch (error) { console.error(error) } } watchEffect(fetchPost)const { data, headers } = await getPosts()로 요청하면 db.json에서 요청한 GET을 모두 가져오는데 params.value만 넣으면 가져오질 않습니다.Axios 모듈, 라우터 모두 다 점검해 봤지만 에러는 나지 않고 있습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
PUT, PATCH method 관련 질문
HTTP method 중 put과 patch에 대해서 공부하고 아 그렇구나~ 하는 와중 갑자기 뜬금없는 질문이 떠올라서 질문드립니다. put은 내용 전체를 덮어쓰는 method이고 patch는 일부만 수정이 가능한 method 라고 배웠는데, 이것도 결국 http request를 backend상에서 어떻게 처리를 하느냐에 따라 달라지는 것 아닌가요? patch request를 받았다고 한들 backend단에서 데이터를 지우고 덮어쓰는 로직을 작성하면 put method와 같은 동작이 되는 것 아닌가요..? 그냥 backend 로직 구현은 염두하지 않고 그냥 그렇게 사용하기로 약속을 한 것인지 궁금합니다. 이상한 질문일수도 있지만 갑자기 문득 생각나서 질문 올려봅니다. 감사합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
폼에서 저장 페이지로 넘어갈 때의 POST에 대한 궁금증
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]HTTP GET 방식 기능 : 조회HTTP POST 방식 기능 : 처리 , 저장 , 등록 , ...와 같이 알고 있습니다. 즉 사진에서 노란색 밑줄 친 코드는 현재 폼에서 입력된 데이터를 /servlet/members/save 경로에서 "처리"할 것을 요구하는 코드로 이해했습니다./servlet/members/save 경로에 해당되는 MemberSaveServlet 클래스에선 폼에서 발생한 데이터를 "저장"시키는 역할을 하고요. 그런데 다음과 같이 실제 폼에서 username과 age를 입력한 후 submit을 누르면 다음과 같이 /servlet/members/save페이지가 "조회"되면서 데이터가 "저장"되는 두 가지 작업이 동시에 일어나는 것을 확인할 수 있었습니다. 저는 POST 방식은 데이터 "조회"가 아닌 데이터 "처리"로 알고 있어서 폼에서 데이터를 입력하면 페이지에는 아무런 변화가 없고 그냥 데이터가 "저장"만 되는 것으로 알고 있었습니다그래서 /servlet/members/save 페이지를 "조회"해서 데이터가 잘 "저장"됐는지 확인하려면 GET 을 통하여 해당 페이지로 넘어가게끔 추가로 로직을 구성해야되는 것으로 생각하였습니다.[핵심 질문]이에 따라 앞으로 POST 방식을 쓰는 경우 페이지가 "조회"되면서 데이터 "처리"가 동시에 순차적으로 일어난다고 봐도 될지 궁금합니다 !
-
해결됨모든 개발자를 위한 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 : 다수 등록으로 제가 이해해도 될까요?
-
미해결
NICEAPI 본인인증 구현해보신분 계실까요?
혹시 NICEAPI 본인인증 구현해보신분 계실까요?암호화 토큰 발급 API 호출이Postman이나 Thunder또는 curl을 이용하여 Http 호출을 하면, 정상적으로 호출이 되는데,브라우저, Node.js, Spring 과같은에서 브라우저/서버 환경에서 호출시 500(pre:AccessControlByClientIDFilter)또는 503 Service Error가 발생하네요둘의 차이점은 뭐고, 서버에서 호출가능한 방법이 있을까요?
-
미해결토비의 스프링 부트 - 이해와 원리
intellij community edition terminal http request
intellij community edition을 사용해 실습하고 있습니다. 섹션 2. Hello API 테스트와 같이 터미널에http -v ":8080/hello?name=Spring" 요청시 다음과 같은 에러가 뜨며 요청이 제대로 이루어지지 않습니다.혹시 ultimate 버전에서만 지원하는 기능이어서 그런건지 질문 드립니다. http : The term 'http' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.At line:1 char:1+ http -v ":8080/hello?name=Spring"+ ~~~~+ CategoryInfo : ObjectNotFound: (http:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
pk값 중복이나 비지니스 로직일때 500에러 ..?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예 [질문 내용]500에러는.. 서버의 크리티컬 에러 ? 널포인트 익셉션 같은 에러를 내린다면 .. 비즈니스 로직의 에러 or db pk 값 중복 같은 값도 500으로 내리는게 맞을까요 .. ? 비지니스 로직을 예로들면 주문할때 적용하는 쿠폰 계산값이 프론트와 백엔드서버가 안맞아서 내리는 에러같은 경우 500으로 내리면 될거같은데 pk값 중복같은것도 동일하게 내리는지 400으로 내리는지 실무가 궁금해서 문의드립니다 ..!
-
해결됨스프링 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 웹 기본 지식
캐시 무효화 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]https://www.inflearn.com/questions/112647위 답변을 참고하였으나 이해하지 못해서 질문드립니다.Cache-Control: no-store, no-cache, must-revalidateno-cache, must-revalidate는 캐시를 검증할 때 사용되는데, 왜 캐시를 검증하는 값을 추가해야 하나요?no-store를 무시하고 캐시로 저장될 수 있다면 캐시를 사용할 때마다 원 서버에서 검증받고 정확한 리소스를 받아오는 것뿐, 결과적으로 완벽한 캐시 무효화가 아니지 않나요?캐시 사용을 전제로 하는 no-cache, must-revalidate 값이 필요한 이유를 모르겠습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
공부 중에 궁금한게 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]백이 뷰 템플릿을 활용해서 뷰 렌더링을 해주는 경우가 요즘도 프로젝트를 진행할 때 많나요 ? 대부분 HTTP(REST) API로 데이터 전송으로 프론트랑 주고 받는 것인지, 아니면 웹 퍼블리셔 요청대로 동적 html 부분도 서버가 만드는 경우가 흔한건지 궁금합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP 비연결성 의 장점
[질문 내용]안녕하세요, HTTP 특징인 비연결성(connectionless)의 장점이 궁금하여 질문드립니다.영한님 강의를 보면, 연결을 유지하는 모델에서 서버는 자원을 소모하기 때문에, connectionless 모델에서는 자원을 소모하지 않는 장점이 있는 것으로 이해했습니다.연결을 유지하는 모델에서 어떤 자원이 소모되는지 알 수 있을까요?강의에서 배웠을 때 TCP의 연결은 가상의 연결이어서, 커넥션을 유지한다고 해서 서버가 물리적 자원을 소모할 것 같지는 않은데요. 혹시 어떤 자원이 소모되는지 알 수 있을까요?영한님 강의 매우 재밌게 잘 보고 있습니다.좋은 강의 만들어 주셔서 감사합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
프록시 캐시 서버에 대해 질문드립니다.
수업 내용중에 궁금한 내용이 있어서 질문드립니다. 클라이언트 - 프록시캐시서버 - 원서버1. 이렇게 되어있다고 할때, 프록시캐시서버를 도입하는 이유가 원서버에서 데이터를 받으려면 오래걸리므로 프록시캐시서버가 먼저 원서버에서 캐시를 받아서 보관해두고, 클라이언트는 해당 데이터를 원서버가 아닌 프록시 서버에서 데이터를 받는다. 이렇게 이해하면 될까요?2. 1번이 맞다면, 프록시 캐시서버에는 원서버에서 받은 데이터가 캐시 형태로 저장되어있는건가요? 아니면 원서버에서 받은 데이터 자체가 저장되어있는건가요?3. 2번 질문에서 원서버에서 받은 데이터가 프록시 캐시서버에 캐시 형태로 저장이 된다고한다면, 이 캐시가 public캐시인가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
Cache-Control 질문드립니다.
http 응답 메시지에 Cache-Control 헤더를 적는것이라고 알고있는데요. 클라이언트 - 프록시캐시서버 - 원서버이렇게 되어있다고 할 때, 프록시 캐시 서버를 도입하게되면 클라이언트는 원서버에서 데이터를 받는게 아니라 프록시 캐시서버에서 데이터를 받는건가요?1번의 응답이 맞다면 그럼 프록시캐시서버가 http응답 메시지를 클라이언트에게 내려주는건가요?Cache-Control: public 이나 Cache-Control: private는 프록시캐시서버와 원서버중에 어떤 서버가 내려주는 http응답메시지에 작성이 되어야하는건가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
ETag에 대해 질문드립니다.
[질문 내용]7분 50초 강의 내용을 보면, 캐시 제어 로직을 서버에서 완전히 관리한다고 하셨는데 이 말이 무슨 의미인지 헷갈려서 질문드립니다. Etag값을 지정할때, 서버에서 임의로 고유한 이름 같은것으로 지정하기때문에 그런건가요? 근데 그렇다고 하기엔 Last-Modified값으로 날짜를 적을때 서버에서 날짜를 지정하기때문에 캐시 제어로직을 서버에서 관리하는거 아닌가요 ? 캐시 제어 로직을 서버에서 관리한다는 말의 자세한 설명 부탁드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HttpServletResponse의 sendError, setStatus 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]아래 코드는 강의를 들으며 작성한MyHandlerExceptionResolver 입니다.@Slf4j public class MyHandlerExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try { if (ex instanceof IllegalArgumentException) { log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST, ex.getMessage()); //response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return new ModelAndView(); } } catch (IOException e) { log.error("resolver ex", e); } return null; } }컨트롤러에서 IlleagalArgumentException 이 발생했을 때, MyHandlerExceptionResolver가 실행이됩니다. 지금까지 response.sendError()가 단순히 상태코드를 변경하는 메서드인줄 알았고, 실행 결과 아래 화면을 기대했습니다.하지만, 아래와 같이 json 형태의 데이터를 응답결과로 돌아았는데요. 단순히 상태코드를 변경하는 'response.setStatus()와는 다른 뭔가가 있구나' 라는 생각을 하게 됐습니다. response.sendError() 는 response body 에 데이터를 출력하는 일을 추가로 하는건가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
301 상태코드 질문드립니다.
강의 6분5초의 강의자료에 대해 구글링 및 강의를 들으며 정리해 봤는데,이 예제는 이벤트신청폼(GET/ event)과 이벤트신청(POST/ event)의 URI를 동일하게하고 이벤트신청폼을 Get/ event 를 통해 들어와있는 상태에서 URI가 변경되었고 이 때 POST/ event 를 한다는 가정하에 보는것이다.POST /event 를 하게되면 /event 가 /new-event 로 변경 되었기때문에 301상태코드를 보내고, 변경된 URI에 대해 리다이렉트 되어 GET/ new-event 를해서 이벤트신청폼을 조회하고, 다시 POST/ new-event 해서 이벤트를 신청해야한다.이렇게 이해해도될까요 ?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
영구리다이렉션 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]몇번을 돌려봐도 강의 내용 6분5초 부분부터 이해가 안가서 질문드립니다...리소스의 URI가 영구적으로 이동해서 영구 리다이렉션이 발생하는것이 301 인데, 클라이언트가 /event로 해서 웹브라우저에서 치고 들어오면 이벤트 화면에서 이벤트 사용자 등록을 하기위해 데이터입력을 하고 POST를 사용해서 POST /event 를 서버에 보낼수가 있나요?애초에 클라이언트가 /event라고해서 웹브라우저에서 치고들어오는 순간에 GET /event를 서버에 보내서 리다이렉트가 되어 /new-event html화면으로 되지않나요 ?이렇게 리소스의 URI가 이미 영구적으로 이동한 상태인데 POST /event가 어떻게 가능한지 질문드립니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP API설계, API설계의 의미
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 매번 친절한 설명 감사드립니다.' HTTP API 설계 '의 의미가 무엇인지 궁금하여 질문드립니다. 단순히 URI를 설계하는것을 뜻한다. (ex. /members)URI + HTTP메서드를 설계하는것을 뜻한다. (ex. POST /members)HTTP요청메시지 전체를 설계하는것을 뜻한다. 강의를 듣다가 헷갈려서 생각해봤는데 이중에 있을까요 ?
-
미해결모든 개발자를 위한 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인가요?그리고 리소스는 강의자료에는 리소스=회원이라고만되어있고 구글링을해서 찾아보면 리소스=자원이라고만 되어있는데, 리소스조회, 리소스등록과 같이 '리소스'에 대한 정의가 무엇인지 질문드립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
restAPI를 쓰면 CSR 형태로 데이터를 주고받는건가요?
restAPI를 사용해서 백엔드가 프론트로 json파일만 보내주면 그거가지고 프론트에서 react 써서 데이터를 화면에 보여주는 걸로 알고있는데 이러한 형태는 CSR로 데이터를 보내주는 형태일까요 ??