풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
도메인이 A,B,C 이런식으로 여러개의 독립된 사이트를 만들어 보려고 합니다. 이럴때 docker compsose 안에 nginx:80 을 여러개 만들어야 되는건지 아니면 docker compose를 여러개 만들어야 되는걸까요? 기존 아파치에서는 virtual host에 여러개의 도메인을 셋팅하면 되었는데요 도커에서는 어떻게 해야 될지 난감합니다. 구글 검색을 해봐도 이해가 잘 가는 내용이 많지가 않네요.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 둘 다 요청 접수 후 처리중 혹은 처리대기중인 상태인거 같은데 어떤 차이가 있는지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의 내용처럼 다른 부가정보를 클라이언트가 다 입력하고 등록했을 때, key 값이 되는 id를 서버가 알려주는 회원가입 시스템보다는 현실에는 id 부터 유저가 입력하는 경우가 많은데 본 강의는 회원가입시스템은 보통 이렇다 라기보단 말그대로 POST 기반 등록 설계의 예시는 이런게 있다 를 보여주기 위한 것일까요? 아니면 보통 유저가 id를 넣더라도 중복방지체크하는 부분이 있는데 이런 부분이 서버가 id를 알려주는거라고 봐야할까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 본 강의에 나온 예시로는 클라이언트A 와 클라이언트B 가 서로 같은 이름이지만 내용은 다른 파일을 등록한다면 한쪽 데이터가 완전 날라갈텐데, 그런것은 고려안한 단순 예시일뿐인가요? 아니면 사실 /files 앞에 클라이언트A 만의 유니크한 URI 가 더 존재함을 가정한것일까요? 혹은 본문의 클라이언트와 실제 사용 유저는 분리되고, 클라이언트에서 서로 다른 유저간 충돌방지를 위한 어떤 로직이 있다는 전제가 있는 것일까요?
안녕하세요. 궁금한게 있습니다. 원 서버보다 리버스 프록시가 정적 파일 서빙해주는 역할이나 압축 같은 것을 더 잘한다 하셨는데 이때 각각 특화된 프록시를 사용하는 것인가요? 아니면 프록시에서 압축, 정적파일 서빙 등 모든 일을 다 하는데 원 서버보다 더 빠른것인지 궁금합니다. 또한 API Gateway도 Proxy라 하셨는데 관련 내용을 못찾고 있어서요ㅠㅠ 혹시 어떻게 검색하면 관련 문서를 볼수 있을지도 궁금합니다. 항상 감사합니다.
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
아래의 코드처럼 main안에서 EnterLobby()를 호출하고 그 밑에도 EnterLobby() 함수 내용이 작성되어있는데 메인 상단에 void EnterLobby(); 를 또 해주는 이유는 int num; int main() { num = 10; } 이런식으로 작성할때처럼 EnterLobby() 함수 공간을 미리 할당해주기 위해서 하는게 맞을까요?! void EnterLobby(); int main() { while (true) { //입력 //로직 //출력 } EnterLobby(); } void EnterLobby() { while (true) { cout << "-------------------------" << endl; cout << "로비에 입장했습니다!" << endl; cout << "-------------------------" << endl; //플레이어 직업 선택 SelectPlayer(); } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 예를들어 본문에서 form action ="/save" 에 대해 method="get" 일 때랑 method="post" 일 때랑 서버쪽에서 처리하는 결과가 같나요? 아니면 결과 자체도 달라질 수 있어서 주의해야하는건가요? 주의! GET은 조회에만 사용! 이 부분이 그냥 암묵적 룰에 의해 GET 은 조회에만 쓰자 라는 말인지. 아니면 결과 자체가 달라질 수 있으니 주의하라는건지 궁금합니다.
패킷이 인터넷 세계로 나온 다음 remote host로 전달되기 까지 정말 수 많은 라우터들을 만나게 될텐데, 거미줄처럼 엮여있는 수많은 라우터를 헤치고 어떻게 remote 까지 도착하게 될까요?? 라우터는 L3이고 그 다음 라우터로 도착할때까지 오직 IP 주소만으로 식별하여 해당 라우터에 패킷을 보낼 수 있는 건가요?? 이 라우터들은 서로 물리적으로 연결되어 있지 않을 텐데 그렇다면 어떻게 상대방의 라우터의 위치를 식별할 수 있는 것인가요?? L2 수준에서 ARP를 사용해 mac 주소를 파악했던것과 같은 이치일까요??
지금까지 제가 이해한 네트워크 흐름은 이렇습니다. 로컬 프로세스에서 Socket에 IO를 통해 Stream data 생성 (브라우저라면 HTTP Request를 Stream으로 TCP에 전달하겠군요) OS 수준인 TCP에서 일련의 Stream data를 Segment들로 분할하며, 이때 TCP 헤더에 Remote Endpoint의 Port 번호가 추가 TCP에서 받은 Segment를 Packet에 캡슐화. 이때 Source IP와 Remote IP가 Packet 헤더에 추가 L4에서 Packet을 Frame으로 캡슐화. 이때 자신이 속한 사설망의 L2 Switch의 mac 주소가 Frame 헤더에 추가 Frame이 pc의 NIC를 출발하여 L2 access에 도착 L2 access에서 L2 Distribution으로 Frame 전달 (없을 수도 있겠네요) L2 Distribution에서는 Frame을 디캡슐화하여 패킷을 확인하고 해당 패킷의 Source IP를 자신의 public IP로 변환 후 인터넷 세계로 패킷을 전송 ... 8번 과정부터 머릿속에 잘 그려지지 않는데, 인터넷 세계에서 해당 패킷이 가고자 하는 remote host로 가기 위해서는 어떤 과정을 거치게 되나요??? 이 세상에는 ipv4 갯수만큼 엄청나게 많은 라우터들이 존재할텐데 말입니다... ARP가 그러했듯 라우터들끼리 미리미리 주변 라우터가 어디에 있는지 broadcast로 파악을 해두고 있는 것일까요?? 그리고 인터넷에서는 remote host가 속한 사설망에 패킷이 도착할때 까지는 L3 끼리만 스위칭을 하게될까요?? 각 라우터들도 자신만의 사설망에 속해 있을 것이고 그렇다면 자신이 관리하는 L2 스위치도 있을 것인데, 패킷이 remote host로 전달되느 ㄴ과정에서 L2, L3, L2, L3 로 번갈아가면서 전달되지 않을까라는 생각이 듭니다.
안녕하세요. 강의 잘 듣고 있습니다. 다름이 아니라, pyinstaller 대부 modulegraph.py 에서 오류가 있어서 이것저것 인코딩을 바꿔줘도 문제가 사라지지 않습니다. pyinstaller가 문제가 없다고 한다면 제 쪽 환경에서 문제가 있는건데 아무리 서치를 해도 compat.py ? 쪽에 문제가 있는 분들은 많으신데 modulegraph에 문제가 있다는 분은 안보이네요.. 명쾌한 해결책을 가지신 분들 꼭 해답을 알려주세요..
라우터가 MTU 용량을 다 받을 수 없을때 단편화가 이루어져서 보내지고 단편화 현상을 해결하기위해 보낼때부터 사이즈를 낮춰서 보낸다고 하셨는데, 그러면 처음부터 라우터(패킷의 이동경로)의 경로를 알고 있는걸까요? 아니라면 어떻게알고 다음 라우터로 넘어갈때 사이즈를 낮춰서 보낼수 있을까요?
안녕하세요! 좋은강의 감사드립니다. 한가지 궁금한게, 웹 브라우저 요청 흐름 강의에서 클라이언트에서 보낸 tcp/port 정보를 벗어낸 뒤 '구글'에서 처리하고, 다시 클라이언트로 보내는데요. 이때 데이터를 전송할때 보내는 tcp/port 정보 (처리하기 위해 벗겨낸 정보)는 전송받을때 보낸 정보랑 같은건가요 다른건가요? 감사합니다!
안녕하세요 선생님 다름이 아니라 콘솔창에 값이 나온는데 너무 오래 걸려서 질문남깁니다.. 구글링을 며칠간 해보면서 보안프로그램 충돌 의심 => 보안프로그램 삭제 비주얼 스튜디오 재설치 를 해봤는데도 해결이 안되고 정보가 없어서 여기에 질문을 남깁니다.. 이 상태로 30초 정도 기다려야지 값이 나오더라구요 실습 동안에 계속 이 현상이 나타납니다. 저 화면은 그냥 std::cout만 했는데 30초 이상 기다려야되네요... 혹시 이런 상황을 겪어보신적이 있나요?? 감사합니다
안녕하세요 한번에 aws 강의 두개를 신청했다가 업무일정때문에 바빠서 이제야 듣기 시작했는데요 ^^.. solution architect 강의는 저번에 연장신청을 했지만 다듣기전에 이 강의도 기간이 만료될거 같아서 연장 부탁드립니다.. 열심히 듣겠습니다..! 꼭 완강하고 수강평 작성토록 하겠습니다!
안녕하세요. Interlocked 과목 중 경합 조건Race Condition에 대한 수업 잘 들었습니다. 과거 네트워크와 운영체제 시간에 배웠던 임계 영역과 경합 조건에 대한 개념이 헷갈려서 질문 드리고 싶습니다. 말씀해주셨던 다수의 쓰레드들이 하나의 데이터 혹은 그러한 영역에 접근하고자 할 때 생기는 문제를 저는 경합 조건이라고 이해했는데요. 이 개념이 혹시 임계 영역을 제가 잘 못 이해하고 있는지, 혹은 경합 조건에 대해 제대로 이해하고 있는지 궁금합니다. 또 선생님께서 생각하시는 임계영역과 경합조건의 차이는 어떠한 것인지도 궁금합니다.
이전 강의 중 Stream에 대해 설명해주셨을때 크기가 큰 Stream을 TCP에 넘겨줄때 MSS에 따라 segmentation이 된다라고 이해했습니다. 그런데 "TCP 연결 과정"에서도 Client와 Server의 MSS가 다를 때에도 낮은 MSS에 맞춘다고 이해했습니다. 강의 예시처럼 Client의 MSS가 1460, Server의 MSS가 1400일때 Server의 MSS에 맞춰버린다고 하면 이때 어느 부분에서 일어나는 건가요? SYN+ACK를 통해 server의 MSS를 받고 L2->L3->L4(TCP)로 가서 한번 더 segmentation이 일어나는 건가요? 3-way handshaking을 할때에도 en/decapsulation이 일어나는게 맞는가요?