묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
was든 웹서버든 다 서버의 역할을 하는거죠 ?
둘다 어쨌든 서버니까 http에서 배웠던 것 처럼 클라이언트랑 정보를 주고받을 수 있고, 만약에 was랑 웹서버를 둘다 쓰게 되는 경우라면(웹서버에 정적, was에 동적 데이터) 웹서버는 서버이자 동시에 was랑 통신하는 클라이언트도 되는 게 맞나요 ??
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
URL을 주소창에 쳤을 때 화면에 나오기까지의 과정에 대해 추가적으로 궁금합니다.
www.google.com을 주소창에 쳤을 때 화면이 나오기까지의 과정을 네트워크의 관점에서 설명해 주셨는데,프론트엔드와 백엔드 관점에서는 어떻게 설명하면 좋을지 궁금합니다.
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
혼자 정리해 본 Stateful과 Stateless의 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의에서의 예시로 보면 Stateful에서는 점원이 바뀌면 구매자가 어떤 것을 사고 싶은지 점원이 파악하지 못함 Stateless에서는 점원이 바뀌더라도 구매자가 필요한 모든 정보를 가진 채로 요청하기 때문에 주문에 문제 없음 이렇게 이해했는데, 그렇다면 Stateful에서는 "서버"가 "클라이언트"의 상태를 기억하고, Stateless에서는 "클라이언트"가 애초에 접속할 때 "서버"에게 필요한 상태를 제공하는 것으로 이해하면 될까요? 만약 그렇다면 "필요한 상태를 가지고 있어야 할 책임이 어느 쪽에 있는가?"에 따라 Stateful과 Stateless로 나누면 되는 것인지 궁금합니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
분할전송과 범위전송 관련하여 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 영한님 HTTP 강의 잘 듣고 있습니다. 이번 강의는 전송방식을 다루는 부분이다보니까, 서버 -> 클라이언트로 데이터를 전송하는 예시가 나오는데분할전송과 범위전송의 차이가 궁금합니다. 제가 이해한 바로는 아래와 같습니다. 일단 기본적으로 둘 다 보내고자하는 데이터를 나눠서 보낸다는 점은 동일한거 같은데, 범위 전송의 경우, 여러번의 요청과 응답(?)으로 이루어지는 방식이라, 중간에 전송이 실패하더라도 성공적으로 보냈던 이후, 부터 다시 전송이 가능해보이지만 분할전송의 경우, 한번의 요청과 응답(?)으로 이루어지는 방식이라, 중간에 전송이 실패하면, 다시 처음부터 요청과 응답을 해야되지 않을까? 제가 제대로 이해한게 맞을까요?? 아니라면, 어떠한 차이점이 있는지 궁금합니다!!
-
미해결
[nodemon] app crashed - waiting for file changes before starting... 오류 힌트만 주시겠습니까??? ㅠㅜ
안녕하세요 [nodemon] app crashed - waiting for file changes before starting... 이런 오류가 계속 나와서 너무 답답해서 여쭤봅니다! 어떤 문제가 있는지 잘 모르겠어서 이렇게 글을 올립니다. 너무 어렵습니다 ㅠㅜ [nodemon] app crashed - waiting for file changes before starting... const http = require("http"); const PORT = 4999; const ip = "localhost"; const server = http.createServer((request, response) => { const { headers, method, url } = request; // 여기서부터 작성 let body = []; request .on("data", (chunk) => { body.push(chunk); }) .on("end", () => { body = Buffer.concat(body).toString(); }); if (request.method === "POST" && request.url === "/upper") { response.writeHead(200, defaultCorsHeader); response.end(body.toUpperCase()); } else if (request.method === "POST" && request.url === "/lower") { response.writeHead(200, defaultCorsHeader); response.end(body.toLowerCase()); } else if (request.method === "OPTIONS") { response.writeHead(200, defaultCorsHeader); response.end(); } else { response.writeHead(404, defaultCorsHeader); response.end("Error"); } console.log( `http request method is ${request.method}, url is ${request.url}` ); response.writeHead(200, defaultCorsHeader); response.end("hello mini-server sprints"); }); server.listen(PORT, ip, () => { console.log(`http server listen on ${ip}:${PORT}`); }); const defaultCorsHeader = { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", "Access-Control-Allow-Headers": "Content-Type, Accept", "Access-Control-Max-Age": 10, };
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
http 서버 성능
노드로 http 서버를 만들어서 돌리면 아파치 서버나 Nginx 만큼의 성능을 발휘할수가 있나요? 전문 웹서버는 세부 셋팅이나 튜닝같은것도 필요하고 ssl 셋팅도 필요한데 노드로 HTTP서버를 돌릴때 얼마만큼의 성능을 기대할수 있을까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTML Form 데이터 전송 부분 action="/save" 부분에서 질문이 있습니다 !
안녕하세요 영한님, 서포터즈님들 ! 이전 강의에서 URI 설계를 할 땐, 리소스를 기준으로 설계해야 하고 URI 는 리소스만을 식별해야지 행위가 포함되면 안된다 ! 라고 말씀을 해주셨는데요, 이번 강의 HTML Form 데이터 전송 부분에 <form action="/save" ~ > 부분에서 의문점이 생겼습니다. 이렇게 되면 리소스가 아닌 행위에 초점을 맞춰서 URI 를 설계한게 아닌가요 ? 제 생각에는 User 를 저장하는 Post 메서드라면 리소스만을 식별하기 위해 <form action="/user" ~> 가 맞다고 생각하는데 제가 생각하는게 맞는지, 의문이 풀리지 않아 질문을 남기게 되었습니다 ! 항상 빠르게 답변 남겨주셔서 항상 감사합니다 ^_^
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP의 특징 중 비연결성
안녕하세요 강의 중 HTTP의 특징 중 하나는 비연결성이라고 하였습니다 그런데 HTTP1.1 / 2 의 경우 기반프로토콜이 TCP이라고 하셨는데 TCP는 연결지향성 프로토콜인데 어떻게 비연결성이 특징이라고 하는지 궁금합니다
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
HTML Form에서 GET/POST만 지원하는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] http://haah.kr/2017/05/23/rest-http-method-in-html-form - 해당 글을 읽어 봤는데 잘 이해가 되지 않습니다. - DELETE는 form 을 통해 값을 전달할게 없다는것은 알겠는데 - 위 블로그 글에서 PUT 의 내용이 이해가 안되네요.. - 그래서 GET/POST만 지원하는 궁극적인 이유가 무엇인가요~? 아래는 PUT 내용입니다. - PUT도 전송해야할 것은 대상 리소스를 대체할 representation 그 자체인데, 대상 리소스더러 조각난 form 데이터를 처리하라고 보낼 수는 없는 노릇
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
안전(Safe), 멱등(Idempotent) 관련하여 질문드립니다.
안녕하세요. safe와 멱등 개념을 확실히 이해하고 싶어서 질문드립니다. ---------------------------------------------------- - safe : 리소스를 변경하지 않는, 즉 읽기전용 메서드(GET, HEAD)를 말한다. - 멱등 : 특정 메서드를 여러번 호출하여도 결과가 같다. ---------------------------------------------------- - GET, HEAD : Safe하면서, 멱등하다.- POST : 리소스의 위치를 지정하지 않았을 때 리소스를 생성하는 등 데이터를 변경하고 새로 생성된 결과를 보내줄 수 있으므로 safe하지도 않고, 멱등하지도 않다.- PUT : 리소스의 위치를 클라이언트가 알고 있고, 같은 리소스를 생성하거나 수정하므로 동일한 데이터로 요청하면 결과가 같다.그러므로 safe하지 않지만, 멱등하다.- DELETE : 클라이언트가 지정한 리소스를 삭제, 즉 수정이 일어나지만 삭제라는 동일한 결과를 제공하므로 safe하지 않지만, 멱등하다.혹시 잘 못 이해한 부분이 있으면 답변 부탁드립니다.감사합니다 :)
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
http response code는 언제 설정하는게 적절한가 ?!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]우선 HTTP 상태코드 강의를 수강하였습니다. 그리고 생각을 해보니 ... 혼자 개발활동을 해서 그런지 상태코드를 직접 수정하거나, 지금 강의에서 배운 3xx , 4xx 상태코드를 따로 설정하여 클라이언트에게 보낸 경험이 없습니다. 만약 3, 4, 5 xx 에러가 발생을 했을 때는 서버 혹은 클라이언트(브라우져)가 기본적으로 처리해주는 상태코드만 사용했습니다. 그래서 강의에서 말씀해주신 상황들을 찾아 git 을 돌아보며 어떻게 사용하면 효과적인지 찾아보았지만 .... 무엇이 적절하게 사용한건지 구분을 할 수 없었습니다. 이제 정리해서 질문을 드리겠습니다. Q. 현업에서 상태코드를 API를 개발하면서 하나 하나 설정하는 것이 적절한 방법인지 궁금하며, 상태코드를 보다 효과적, 체계적으로 관리하기 위한 예시(git, posting, 등 )가 있는지 궁금합니다. (찾아보면서 저를 못 믿어 질문 올려봅니다.)
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
이 시점에서 궁금한 http와https
http를 공부하다보니까 https에 대해서 찾아보게되었는데요.저희가 지금 사용하는것은 https인데, 제가 찾아본 결과 보안장치가 더 추가됐다고 하더라구요.그러면 https도 지금 이제까지 말씀해주신 http의 특징들을 다 가지고있는거 포함 이면서,TCP/IP프로토콜에서 Application 에서 아래층 Transport로 내려가면서 HTTP 에다가 +SSL이라는 보안장치를 가진 정보를 주고 HTTPS가 돼서 전송되는 거라고 생각합니다.즉, HTTP의 기본 프로토콜에다가+ SSL이 추가돼서 HTTPs가 되는거라고 생각하는데 , 그럼 이와 같은 원리로 원래 HTTP/1.1라는 대부분에 들어있는 스펙이 있는데 이후 업그레이드된 HTTP/2, HTTP/3 버전의 경우 또한 기존HTTP를 바탕으로 전송되면서 2 혹은 3로 변경이 되는건가요? 아니면 기존의 HTTP/1.1프로토콜이 아닌 HTTP/3의 경우는 UDP이므로 커스터마이징해서 보내지는건가요? 왜냐하면 이전 영상에서는 개발자도구 열어서 프로토콜을 보게되면 HTTP/1.1이 보였는데, 현재는 구글도그렇고 네이버도 그렇고 HTTP/1.1은없고, HTTP/2와 HTTP/3밖에 안보입니다.
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
추가 강의 건의드립니다!
안녕하세요, 강사님! 좋은 강의 해주셔서 항상 감사합니다. nest.js는 처음 배우는데 딱 필요한 부분들을 잘 설명해주셔서 만족하면서 듣고 있습니다. 그런데 진행 중에 추가 강의를 건의 드리고 싶은 부분이 있어서 글을 작성합니다. 이번에 배운 내용을 바탕으로 실제 프로젝트를 진행 중에 open API를 활용하는 부분도 있어서 nest.js 문서를 찾아보면서 여기 를 보고 HttpService로 응답을 받아오려고 하는데 응답 결과가 원하는대로 오지 않더라고요. 결국 시간적인 문제로 해결을 못하고 그냥 axios를 직접 사용해서 open API에 대한 응답을 받아오는 방식으로 타협했었는데, 다른 분들도 open api를 활용하는 경우도 종종 있을 것 같아서 간략하게라도 HttpModule로 open API에 대한 요청/응답을 받는 강의가 있었으면 좋겠다고 생각되어서 건의 드립니다! 혹시 가능할까요??
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
http 통신 질문있습니가.
http 통신을 하고 싶은데 혹시 추천할만한 라이브러리가 있을까요? 그리고 예전에 pocolib를 썼는데 불필요한 파일이 많아질것 같아서 http통신만 할 수 있는 좋은 라이브러리가 있을지 궁금합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
리소스를 수정하는 메서드 설계 질문
상품의 재고를 차감하는 API를 HTTP 메서드로 구현한다고 하면 PUT이 됐던 PATCH가 됐던 상품 리소스의 '재고' 부분을 변경해야 합니다. 그런데 HTTP 메서드 정의에 따르면 원래 재고가 100인 상품의 재고를 1만큼 차감한다고 할 경우 요청 URI에 들어갈 재고값은 1이 아니라 99가 되는 것이 맞는 것 같은데 제가 제대로 이해한 게 맞나요? 그렇다면 상품의 재고를 차감하는 HTTP 메서드의 URI는 어떻게 설계해야 할까요? 상품의 재고를 차감하기 전에 상품의 재고 정보를 GET으로 가져온 다음 차감된 재고량을 PUT 또는 PATCH 메소드에 담는 것이 맞나요? 실제 서비스에서는 이러한 API를 만들 때 어떤 방식으로 구현하는 지도 궁금합니다. HTTP 프로토콜을 따를 경우 PUT이나 PATCH 메소드를 호출하기 전에는 항상 GET 메소드를 호출해야 하는 것으로 보이는데 이런 부분에서 성능 이슈가 발생하지는 않는지 궁금하네요.
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
http 프로토콜과 3-way handshake 관계?
안녕하세요! 공부를 하면서 몇가지 정리가 안되서 질문을 드립니다. 클라이언트와 서버간의 연결을 할 때 요청/응답을 보내기 전에 먼저 3-way handshake를 통해서 연결을 한다고 알고 있습니다.그러면 http프로토콜은 요청/응답만 보낼 때 사용하는 것이고, 3-way handshake는 따로 진행된다는 것인가요?? http 프로토콜도 결국은 TCP 기반이라고 알고 있는데, 3-way handshake할 때 TCP/IP연결을 하면서 TCP를 사용하고, 응답/요청 할 때는 http 프로토콜로 다시 진행을 한다는 것인가요??아니면 처음부터 http 프로토콜로 진행을 한다는 의미인가요?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
웹 브라우저 요청 흐름 질문
안녕하세요!강의 잘 듣고 있습니다!! 웹브라우저에 www.google.com을 검색하면 http메세지가 포함된 패킷이 전달되기 전에, 연결을 위한 패킷이 먼저 왔다갔다 하고, 연결이 확립되면 요청 패킷을 전달한다고 이해 했습니다. 그러면 메세지를 요청패킷을 전달하기 전에 서버와 연결하는 것은 무조건 TCP프로토콜을 사용하는 것 인가요??아니면 메세지를 요청패킷을 전달하기 전에 서버와 연결할 때도 http프로토콜을 사용해도 되는 것인가요?? 구글링을 해도 명확한 내용을 알기 어려워 질문드립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http 요청을 보낼때마다 request, response 객체의 주소값이 변하지 않는 이유?
안녕하세요 강의 정말로 잘 듣고 있습니다! 정말 별거 아닌 질문일 수 있는데 궁금해서 질문 남겨봅니다. 서블릿에서 Request 객체와 Response 객체는 HTTP 요청이 들어올때마다 새로 생성한다고 했는데, 왜 요청을 줄때마다 같은 주소값이 찍히는건가요? 한번 요청 - 응답 하고나면 끝이고 다시 페이지 새로고침을 하면 새로운 HTTP 요청이 가서 새로운 response, request 객체가 생성되야 하는게 아닌지 궁금합니다!! 그냥 WAS에 구현체가 싱글톤으로 있어서 요청이 올때마다 덮어써서 보내주는 방식?? 그런건가요? 스프링, HTTP 지식이 부족해서 나온 너무 이상한 질문이었을지도 모르겠네요 ㅠㅠㅠ..
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
3WayHandshake에 대하여 질문 드립니다
tcp/ip 설명하실 떄 3wayHandshake는 개념적으로만 연결됬다고 얘기하는거지 실제로는 다르다고 말씀하셨는데요. 그 이유가 거쳐가는 노드들은 클라이언트와 서버가 handshake를 하는지 모르기 때문이라고 하셧는데 이게 무슨 영향을 끼치는지 궁금하며 이 문제를 해결하기 위해 어떤 것들이 있을까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
http통신을 socket 통신이라고 할 수 있나요?
영한님 강의를 통해서 열심히 웹공부 중인 학생입니다. 늘 감사하게 강의를 듣고 있습니다! '웹 브라우저 요청흐름' 강의를 통해서, 실시간 기술이 필요한 게임같은 경우를 제외하고 일반적인 요청-응답 방식으로 http통신을 이용한다는 것을 알 수 있었습니다. http 통신 과정에서 os에 내장되어있는 socket 라이브러리를 통해 TCP/IP 프로토콜로 서버와 커넥션(3-way handshaking)하게끔 한다고 하셨는데, 이 부분에서 클라이언트가 TCP 프로토콜을 직접 사용하지 않고, socket 라이브러리가 대행해준 것 (= 간접적으로 사용)이라고 이해하였습니다. 제가 여쭤보고 싶은건, 보통 http 통신과 실시간 socket 통신으로 구분 짓는 경우가 있는데, http 통신도 socket 라이브러리를 이용한다면 큰 범주로 소켓을 사용한 socket 통신이라고 말할 수 있는 것인가요? 그렇게 된다면 socket 통신이 TCP 프로토콜을 직접 사용하는 것이니, http 통신이 TCP 프로토콜을 간접적으로 사용한다는 부분이 이해가 되지 않습니다..! http통신의"소켓" 라이브러리와 실시간 "소켓"통신에서의 소켓이 다른 맥락인것인지.. 감사합니다!