묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
도커 컴포즈 설치에서 막히시는 분들~
버전이 강의 따라하면서 도커 컴포즈에서 버전이 안나와서 보다보니 pdf 복사한걸로 하면 윈도우라서 복사가 잘 안된건지 notfound 만 docker-compose에 남게 되네요 아래 명령어로 설치하면 강의와 동일한 버전으로 할수 있는거 같아요 sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 네트웍 운영만 하다 새롭게 리눅스 도커 등등 공부해보고 있는데 많은 도움이 되네요~
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ManualResetEvent 질문있습니다.
1) Auto든 Manual이든 false로 처음에 지정해 놓으면 들어가려는 시도를 할 때 누군가는 문을 열어놓아야하는데 이부분은 따로 구현해주면 되는건가요? Release를 먼저 호출하지는 않을 것 같아서 다른 식으로 문을 열어야 하지 않나 생각이 들어서 질문드립니다. 2) 두 이벤트 방식에서 지정하는 initialState인자는 아토믹한 방식으로 동작하는 건가요? 3) ManualResetEvent 사용 예를 보여주실 때 동작이 이해가 잘 안됩니다. false로 지정해놔서 문이 닫혀있다고 하고, 다른일을 하다가 Set이 호출되어 문이 열리면 WaitOne으로 입장을 시도한다 까지는 이해가 되는데 그러면 AutoResetEvent와 달리 자동으로 문을 닫는게 아니면 다시 문을 닫아주는 함수가 호출이 되어야하는 것 아닌가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HOST, PORT 질문드리겠습니다.
새해복많이받으세요!밑의 질문글들 전부 읽어도 이해가 안가서 질문드립니다 배달의민족 백엔드서버host : www.delivery.comIP와 포트 : 200.200.200.2:8080 배달의민족 프론트엔드서버host: www.delivery.comIP와 포트 : 200.200.200.2:3000 위 두개의 서버를 한개의 서버(컴퓨터)에서 돌릴시처음에는 우선 Host정보를 바탕으로 찾고 그다음 패킷의 Port정보로 찾아들어간다고 보면 될까요? 두번째 질문은동일IP에 Host만(도메인명) 다르다고해서 동일 포트를 지정할수있나요? 만약 가능하다면 이경우 Host를 이용해서 찾아간다고 이해하면 될까요? host: www.delivery.comIP와 포트 : 200.200.200.2:3000 host:www.hungry.comIP와 포트 : 200.200.200.2:3000 같은 서버(컴퓨터)내에서 구동중
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
Save As의 pkt 파일과 Save As PKZ 파일의 차이가 알고싶습니다.
안녕하세요, 다름이 아니라 PKZ 파일 저장은 무슨 기능이 있는지 잘 알지 못하여 구글링을 했는데 해소가 될만한 답변은 없더라구요... 혹시 PKZ 파일이 어떤건지 알 수 있을까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
http response code는 언제 설정하는게 적절한가 ?!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]우선 HTTP 상태코드 강의를 수강하였습니다. 그리고 생각을 해보니 ... 혼자 개발활동을 해서 그런지 상태코드를 직접 수정하거나, 지금 강의에서 배운 3xx , 4xx 상태코드를 따로 설정하여 클라이언트에게 보낸 경험이 없습니다. 만약 3, 4, 5 xx 에러가 발생을 했을 때는 서버 혹은 클라이언트(브라우져)가 기본적으로 처리해주는 상태코드만 사용했습니다. 그래서 강의에서 말씀해주신 상황들을 찾아 git 을 돌아보며 어떻게 사용하면 효과적인지 찾아보았지만 .... 무엇이 적절하게 사용한건지 구분을 할 수 없었습니다. 이제 정리해서 질문을 드리겠습니다. Q. 현업에서 상태코드를 API를 개발하면서 하나 하나 설정하는 것이 적절한 방법인지 궁금하며, 상태코드를 보다 효과적, 체계적으로 관리하기 위한 예시(git, posting, 등 )가 있는지 궁금합니다. (찾아보면서 저를 못 믿어 질문 올려봅니다.)
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
stateless 중계서버
안녕하세요 항상 강의 잘 듣고 있습니다! 9분 11초 그림에서 나오는 stateless 중계서버는 프록시 서버가 그 역할을 하는 것이 맞는지 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
CRASH에서 cause는 로그를 출력하기 위한 목적인가요?
강의에서는 cause가 실제로 쓰이는 부분이 없는데 용도가 무엇인지 궁금합니다. 그리고 ASSERT_CRASH에서 __analysis_assume을 쓰는 이유는 무엇인가요?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
Accept-Language 다중 언어 지원 서버 관련 문의
안녕하세요 영한님 항상 좋은 강의 감사드립니다 Accept-Language를 적용하게되면 요청시 서버가 클라이언트가 요청한 언어에 최대한 맞는 언어로 응답을 보낸다고 말씀하셨는데 이 때, 다중 언어 지원 서버라고 하는 것은 HTML Language가 EN, KO로 모두 작성되어있어서 백엔드(웹프레임워크)단에서 언어에 따른 HTML 취사선택이 가능하도록 구현되어있을 경우를 이야기하는 것인지 궁금합니다. 연말이 다가오고 있습니다 코로나 확진자도 많아지는데 질문 답변해주시는 서포터님들께 항상 감사드리고 코로나 조심하시고 연말 따뜻하고 건강하게 보내시길 바라겠습니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
3 handshake(with socket library) 관련 질문있습니다.
강의가 너무 유익해서 시간가는줄 모르고 잘 보고있습니다. 좋은 강의 만들어주셔서 대단히 감사합니다. 하지만 강의를 보다가 이해가 잘 안되는 부분이 있어서 질문 드립니다. 강의시간이 1:50 쯤의 그림을 보면서 "socket 라이브러리를 통해 전달" 한다는 것이 이해가 잘 되지 않았습니다. 이 말을 저는 socket 라이브러리가 알아서 3handshake를 해서 연결상태를 보장받고 이후 TCP/IP 패킷을 생성하고 http 메시지를 담아 보내는 것으로 이해했습니다. 그런데 이 과정 중 3handshake와 socket library에 모호한 점이 있었습니다. 1-1. socket 라이브러리에서 3 hand shake 를 그림에서의 과정과 다르게 별도로 진행하여 연결이 되었다고 판단되면, 패킷 생성하고 네트워크 인터페이스 레이어를 지나 인터넷을 통해 서버로 전달. 즉, http 통신 프로세스와는 별개로 따로 서버와 syn / syn+ack / ack 만 주고받는 통신진행을 진행하는지 1-2. 아니면 전체 프로세스(강의에서 제공한 그림처럼)를 http 메세지와 syn이 포함된 TCP/IP 패킷을 생성하여 3번(syn / syn+ack / ack) 진행하는지 만약 1-1번 처럼 socket 라이브러리에서 따로 서버측과 syn / syn+ack / ack 을 통신한다면, 2-1. 최초 서버로 http 요청시 socket 라이브러리에서 3handshake를 실패시 http 요청 자체가 보내지지 않는건지. 그렇게 되면 클라이언트는 어떠한 응답도 못받는 상태가 되는건가요? 2-2. socket 라이브러리에서 3handshake를 하는 과정도 동일하게 TCP/IP 패킷을 생성하는지, 단순히 syn / syn+ack / ack 만 보내는지 궁금합니다. 3-1. 마지막으로 궁금한 것은 socket 라이브러리가 이런 것을 담당한다면 TCP를 이용한다면 반드시 socket 라이브러리를 써야하는 건지 궁금합니다. socket 라이브러리도 대체 가능한지 궁금합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
DNS서버에 조회 해서 웹브라우저에 받아오는 일련의 과정에 대해
안녕하세요.너무 잘보고있는데요.한가지 DNS서버에 조회 해서 웹브라우저에 받아오는 일련의 과정이 조금 헷갈려서 질문드립니다. 1.웹브라우저에서 구글서버로 접속하기위해 1) 먼저 DNS에 접속하여 IP주소와 port정보를 찾아냅니다. 2)그후에 DNS서버로부터 받아온 정보로 HTTP요청 메시지를 생성하는데요. 그럼 https://www.google.com:443/ 까지는 웹브라우저에서 DNS서버를 가서 조회를 해서 IP주소와 port 정보를 조회하여 그 정보만 요청한 웹 브라우저로 넘겨주게되고, 웹브라우저는 다시 DNS서버로 부터 받은 IP주소와port정보를 포함하여 HTTP요청 메시지를 만드는데 그 안에는 path뒤 부터인 /search?q=hello&hl=ko가 구글 서버에 접속해서 관련 정보를 받아온다고 생각하면되는게 맞나요? 그런데 이게 맞다면 1분11초 HTTP메시지에 Host는 www.google.com이고, 또 따로 패킷에 받아온 구글 IP주소 를 to에다가 200.200.200.2로 보내는게 맞는지가 궁금합니다. (제가 생각했을때는 DNS서버로 부터 받아온 IP주소를 Host에다가 200.200.200.2라고 적으면 된다고 생각했었는데, 다시 www.google.com이라고 적어놓으셔서 그럼 HTTP요청 메시지 패킷을 전송할때는 www.google.com와 IP주소 200.200.200.2가 모두 필요한걸까? 라는 의문이 들어서요.) 2. search가 path인데요. 그럼 예를들어 구글 서버 자체에 serarch라는 디렉토리가 있는건가요? 그래서 그 serarch안에 q=hello&hl=ko의 해당정보가 들어있는건가요?... 3. DNS서버도 따로 존재? 한다고 들었는데, 이게 또 SK, LG, KT 등 통신사에 등록이 되어있다고 들었습니다. 혹시 SK의 경우 DNS서버홈페이지같은거는 어디서 알 수 있을까요? 한 번 들어가서 구경하고 싶은데.. 검색해도 안나와서요. 3-1 또 DNS서버로 요청할때도 3way handshake로 동작해서 패킷단위로 던져지는게 맞나요? 4. 제가 생각했을때 http https ftp smtp 마다 호칭을 HTTP요청메시지 or HTTPS요청메시지 or FTP요청메시지 or SMTP요청메시지 이런식으로 각각 따로 불려야 될 것 같은데.. 이거를 그냥 어떤 프로토콜을 사용하던지 'HTTP요청메시지' 라고 통용해서 사용하는 건가요? 5. 1분49초 시작부터 , 이해가 잘 가지않는데요.그럼 지금 이 HTTP메시지 전송과정 전에 이미 DNS서버를 가서 IP주소랑 port번호를 찾아 온후! 진행되는 과정이라는 가정하에 IP주소랑 port번호를 찾았다고 말씀하시는거죠? 그리고 1)소켓라이브러리를 통해서 먼저 찾은IP주소와port번호로 2)syn- syn ack - ack 해서 (가상)구글 서버와 연결을 한 후 3) OS계층인 TCP/IP 로 전달을 합니다. 그다음 패킷을 씌운후 인터넷망으로 던져진다! 순서과정을 이렇게 이해하면 될까요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강의 커리큘럼 관련되서 질문 드립니다.(커리큘럼 관련되서 질문할 곳을 찾지 못해서 ㅠㅠ 여기다 올린점 양해 부탁드려요 ㅠ)
안녕하세요. 커리큘럼 관련되서 질문드리고자 이렇게 글 올립니다. 저는 일단 C++을 사용하는데 있어 큰 무리없이 사용하는 편입니다. (modern c++포함) 반면 C#은 거의 모르는 상태인데요, 강사님 커리큘럼중에 C#을 이용해서 MMORPG를 만드는 커리큘럼도 있던데 아래처럼 병행해서 커리큘럼을 짜도 될지 궁금해서 문의 드립니다. [C#과 유니티로 만드는 MMORPG게임 개발시리즈] Part1, Part3, Part7, Part9 만 듣고, [C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4 이렇게 들어서 일단 Unreal 로 연동하는 강의가 나올때까지, 유니티 2D게임을 C++게임서버에 연동해보고 싶은데요, 굳이 C# 게임서버 제작 강의를 들어야할 필요가 있을까요?? C#으로 게임서버를 만들어야겠다는 생각이 들면 듣겠지만, 지금은 우선 게임 클라이언트 자체를 서버에 연동시키는것(구체적으로 맵을 어떻게 서버에서 처리하고, 스킬이나 hit 판정을 어떤식으로 하는지에 대한 것들)을 목표로 하고 있는데, C#게임서버 강의랑 C++ 게임서버 강의가 겹치는 부분이 많아서 C#게임서버 강의를 통해 들어야할지 고민이 됩니다. 결론으로 C# 강의 Part1, Part3, Part7, Part9 와 C++강의 Part4 이렇게 병행하는데, 무리 없이 커리큘럼을 수행할 수 있는지 궁금합니다. 긴글 읽어주셔서 감사드리며, 항상 좋은 강의 올려주셔서 감사합니다.!!!
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
DNS 요청 방식에 대해 질문드립니다.
안녕하세요 영한님 항상 좋은 강의 감사드립니다 :) 다름이 아니라 DNS를 공부하면서 의문이 드는 점이 있어 질문드리려고 합니다. 우리가 통상적으로 브라우저에 도메인 이름을 입력하면, DNS에 요청이 들어가고 DNS에서 응답이 오면 반환된 IP를 이용하여 서버로 접속요청을 한다... 라는 맥락으로 강의 내용을 이해했습니다. 그런데 종종 도메인 이름이 아니라 IP를 직접 입력하여 접속을 하는 경우도 있습니다(192.168.0.1)이나 공유기 아이피 접속... 여러가지가 있겠습니다. 질문 요지는 이렇습니다 DNS에 굳이 접속하지 않아도 되는 이런 IP로 접속했을때는 DNS서버로 요청을 보내지 않을 것 같습니다. 그렇다면 DNS로 요청을 보낼지 말지 결정하는 주체는 브라우저인지,,, 누가 결정하는 것인지 궁금합니다. 감사합니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
주신ppt자료 사용에대하여
안녕하세요! 영상 너무 잘 보고있습니다.다름이 아니라, 제가 블로그 포스팅을하려고하는데요. 주신 pdf자료로 사진 올리면서 하고싶은데,자료출처밝히고 사진 올리는 형식이면 포스팅 가능한지에 대해 여쭤보려 질문드립니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
UDP개념을 듣다가 질문좀 드립니다.
안녕하세요. 김영한강사님. 수업이 너무 유익하여 감사히 잘 듣고 있습니답. 다름이 아니라 강의를 듣다가 강사님께서 TCP에는 손을 못대고 자기가 직접 최적화 하고 싶은것은 애플리케이션 레벨에서 UDP에다가 내가 원하는걸 만들어 내면 된다고 하셨는데 이미지를 보면 UDP는 전송계층이라고 되어있는데 왜 UDP라는 곳에 내가 원하는 데이터를 담을때 애플리케이션 레벨에서 담는다고 표현을 하신걸까요..?
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
L2 스위치 관련 질문 드립니다.
안녕하세요, 틈틈히 유익한 강의 잘 보고 있습니다.스위치가 MAC소를 기반으로 Frame을 전달 하는 장치라고 배웠습니다. 그러면 이러한 스위치에서 맥 테이블 조회를 하여 각각의 스위치 포트들이 아래의 두가지 사항을 찾을 수 있는지 질문드립니다. 1. 각 포트들이 어디에 연결되어 있는지 알 수 있는지 2. 업링크 포트는 따로 표시 되는지(안된다면 기본적인 규칙이 있는지) 위의 두개 항목이 궁굼합니다..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
기본 세팅 질문드립니다!
수업 너무 잘듣고 있어요! 다만 하다보니 궁금점이 생기는데 저랑 쌤이랑 hello world! 출력하는 화면이 조금 다른 것 같은데 세팅문제인지 아니면 신경안써도 되는 건지 궁금해요!
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
wstring값에 대해서 질문있습니다.
이전 강의 실습까지는 모두 결과가 잘 나왔는데 이번 강의에서는 Read할때 값이 모두 0으로 바뀌어서 전달되었습니다... imbue를 사용하기 전, 후 모두 0이라 다른 문제 인 것 같은데 어느 부분이 문제인지 잘 모르겠습니다ㅜㅜ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
세션 = 유저, 서버
세션은 user 또는 연결되는 서버라 생각하면 될까요? 세션 하나당 user나 서버 연결 하나 라고 생각하면 될까요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Completion Port모델 질문드립니다.
IOCP강의를 듣고 실습을 하는 중에 이상현상?이 생겨서 질문 드립니다. 정상적으로 실행되거나 밑에 현상이 생기거나 반복이 되고 있는데 뭐가 문제일까요... 코드는 올려주신것과 똑같습니다! 1) accept만 뜨고 client connected가 안뜨는 경우 (클라에서 송신은 계속 하고있다.) 2) server에서 break point를 잡고 실행하면 client connected도 잘뜨고 수신도 잘합니다. (처음 한두번은 800, 200 이렇게 한꺼번에 데이터를 수신합니다.) 3) 다시 break point를 해제하면 1번과 같은 상황이거나, 정상적으로 처음부터 100씩 수신받는 상황이 랜덤으로 발생
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Connector.Connect 질문입니다.
클라에서 Connector를 통해서 연결시도를 할 때, Connector에게 endPoint를 전달합니다 Connector에서는 socket에 endPoint.AddressFamily를 전달하는데, 제가 생각하는 것은 IP주소 '만' 전달합니다. 뒤에 SocketAsyncEventArgs args 변수를 선언하고 args.RemoteEndPoint에 endPoint를 한 번 더 전달합니다. socket.ConnectAsync할 때 args를 전달합니다. 헷갈리는 부분은 endPoint를 두번 전달하는 것입니다. socket에는 IP주소'만' 들어있어서 포트번호를 모르니 args.RemoteEndPoint에 port번호 포함 주소를 다시 준 것 인가요?