묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨네트워크, 그림으로 이해하자
사설, 공인 IP의 클래스별 차이
사설 IP, 공인 IP의 A,B,C 클래스로 나누는 이유 또는 목적과 관련해서 강의 후반부에서 혹시 다루시나요? 강의 커리큘럼에 포함되지 않는다면 혹시 추천해 주실만한 자료가 있을까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
로그인 로그아웃에서 쿠키, 세션
항상 좋은 수업을 해주시는 영한님과 좋은 답변을 달아주시는 서포터님들에게 감사의 말씀을 전합니다. 쿠키, 세션에 관해 궁금증이 생겨 다른 분들의 질문을 읽어보고 검색도 해봤는데, 제가 이해한게 맞는지와 궁금한 점이 있어서 질문을 남기게 되었습니다!! 로그인 로직에 대해 제가 제대로 이해한게 맞나요?? 1. 로그인 1) (최초 로그인) 브라우저에서 id, password를 담아 서버에 로그인을 요청한다. 2) 서버는 id, password를 검증하여 해당 사용자에 대한 sessionId를 생성하고 서버에 저장하고 Set-Cookie:sessionId(쿠키) 로 로그인 성공 응답을 보낸다. 3) 브라우저는 브라우저의 쿠키 저장소에 sessionId(쿠키)를 저장한다. 4) 이후 매핑된 쿠키가 있는 URL로 서버에 요청을 보낼 때, 브라우저가 자동으로 쿠키 저장소에서 꺼낸 쿠키를 Cookie:sessionId(쿠키)를 함께 보낸다. 5) 서버는 sessionId의 유효성 검사를 통해 클라이언트를 식별하여 로그인 상태를 유지한다. 2. 로그아웃 사용자가 로그아웃을 하면, 브라우저의 쿠키와 서버의 세션이 모두 삭제된다고 알고 있습니다. https://www.inflearn.com/questions/495180 F12 > Application > Cookies를 살펴보니 위 글의 답변처럼 브라우저는 각 사이트에서 생성한 쿠키를 URL과 매핑하여 관리하고 있다는 것을 알게되었습니다. (실제로 google 로그인을 하면 Cookie에 SSID가 생성되었다가 로그아웃하면 자동으로 사라지는 것을 확인할 수 있었습니다.) 1) 사용자1 구글 로그인->로그아웃->사용자2 구글 로그인 을 했다고 가정합니다. 어떠한 URL(google.com)에 매핑된 쿠키 정보에 다른 유저의 SSID가 동시에 존재할 수 는 없는게 맞나요?? "위 상황에서는 같은 URL로 로그인 요청이 두번 일어났지만 사용자1은 로그아웃을 하면서 쿠키 저장소에 사용자 1의 SSID는 삭제되고 사용자 2의 SSID가 새로 저장되었기 때문에 현재 브라우저의 쿠키 저장소에 google.com과 매핑된 쿠키는 사용자2의 ssid이다" 이 해석이 맞나요?? 2) 그렇다면, 사용자가 로그아웃 요청을 서버에 보내게 되면 서버단에서 세션을 삭제하는 코드를 작성하고 프론트단에서 브라우저의 쿠키를 삭제하는 코드를 작성하는 건가요???
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
AAA인증 관련 질문입니다.
안녕하세요. 강의 잘 듣고 있습니다. AAA인증 단계 교육 듣고 있는데요. 강의와 함께 실습을 따라해보던 중 PC쪽에서는 서버까지 핑이 잘 나가는데 반대로 서버쪽에서는 PC쪽으로 핑이 안나가는데요. 서버/라우터1/라우터2 쪽에서 AP까지의 핑이 막힙니다. 이게 정상인지 궁금하구요.. 만약 그렇다면 그 이유가 궁급합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
_sendQueue 질문입니다.
강의 마지막에 와서 뒤늦게 질문하는 느낌이 적지 않게 있는데, 재수강하면서도 여전히 긴가민가한 느낌이 있어서 질문드립니다. #_sendQueue에는 버퍼가 언제 쌓이는가. 쓰레드 A가 제일 처음으로 Send 함수를 호출했다. _sendQueue에 버퍼를 집어넣는다. _pendingList.Count ==0 이라 RegisterSend가 호출된다. 이후 RegisterSend 안에 있는 SendAsync 함수로 pendingList를 송신한다. 그런데 SendAsync 함수가 true 떠서, 즉 송신을 실패했다면? 쓰레드 A는 Lock을 풀고 사라지고, 이어서 다른 쓰레드 B가 Send를 호출했을 때 PendingList의 Count는 0이 아니므로, _ sendqueue에 버퍼만 집어넣고 쓰레드 B는 사라진다. 그 이후에 실패로 끝났던 SendAsync 함수가 콜백으로 OnSendCompleted 함수를 호출하면, _sendQueue에 쌓인 버퍼가 한꺼번에 송신된다. 이런 흐름이라고 이해하면 될까요? 만약 이게 맞다면 SendQueue는 SendAsync 가 실패로 끝났을 때를 위한 안전 장치라고 생각해도 될까요? 마침 질문글 답변 중에 이런 부분이 있기는데 한데 확신이 없네요. 멀티쓰레드보다는 비동기 네트워크 쪽과 관련이 있는데,SendAsync를 한다고 무조건 상대방이 받아준다는 보장이 없습니다.로컬 환경에서야 pending이 거~~의 대부분 false로 뜨고 바로 완료 되겠지만저 지구 반대편에 있는 사람이 접속했다면 이런저런 이유로SendAsync가 바로 완료되지 않고 pending = true로 설정될 확률도 높습니다.물론 말씀하신대로 Latency 뿐 아니라 Recv할게 너무 많아서 상대쪽에서 처리를 못해서 그럴 수도 있구요.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
애플리케이션을 포트 번호로 구분
안녕하세요? 음악도 들으면서 게임도 하는 경우를 예시로 들으시면서 하나의 IP에 있는 애플리케이션들을 포트 번호로 구분한다고 하셨는데요 제가 스프링부트로 서버 애플리케이션을 개발해서 구동할 때는 8080 포트로 지정할 수도 있고 8081 포트로 지정할 수도 있고리액트로 웹 사이트를 개발할 때도 3000번 포트로 지정할 수도 있고 4000번 포트로 지정할 수 있는데요 그냥 자바나 파이썬이나 C++로 프로그램을 짜도 이런 프로그램에도 포트번호가 있나요? (그리고 통신 기능이 없는 프로그램에도 포트 번호가 있나요?) 만약 있다면 다른 애플리케이션이 해당 애플리케이션의 포트 번호를 모르는데 어떻게 통신을 하나요? (포트번호를 명시적으로 지정한 적이 없는데 있다면)
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
API URL 설계
안녕하세요. API URI 설계에 대해서 궁금한점이 있습니다. 멤버 도메인과 주문 도메인이 있을 때 (JPA강의 예) 만약 해당 멤버의 주문을 검색하고자 하여 요청을 할 때 API URI는 어떻게 해야할까요? 1번. GET /members/{id}/orders 2번. GET /orders 이 둘중에서 어떤 URI로 설계해야 할지 궁금합니다. 인터넷 서칭 결과 관련있는 리소스는 1번처럼 사용한다고 나오는데 jwt를 사용할 경우 2번이 더 적합한게 아닌가라는 생각이 듭니다. 어떤 기준을 적용하여 1번과 2번 중 어떤 API URI 설계를 사용해야할 까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
멱등, 고려하지 않는다는 것의 의미가 헷갈립니다.
사용자1이 GET요청을 하고 사용자 2에 의해 리소스가 변경되면 다시 사용자 1이 GET요청을 했을때 결과가 다르니까 멱등이 아닌걸로 이해하면 될까요? 아니면 중간에 POST가 없었다면 GET요청 후 재요청했을때 값이 같을거니까 멱등하다라고 이해하면 되나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
재귀적 락 허용
재귀적 락을 허용 하지 않았을때 ReaderWriterLock은 Write할때 Read가 같이 일어나면 Write하기 전에 있던 데이터와, Write한 후의 데이터가 공존해서 Read해가기 때문에, ReaderWriterLock을 사용 하는거 같은데(Read만 해갈때는 문제 없어서 Read는 공용으로 가능) 어떤 경우에 재귀적 락을 허용하는지 잘 모르겠습니다. 재귀적 락을 허용했을때는 한 쓰레드가 여러개의 데이터를 write,read할때 사용 되는건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
lock 질문입니다
제가 혼자 만들어보면서 느꼈던 점은, "session에서 lock을 걸지 않고 recvbuffer의 writesegment를 가져오거나 DataSegment를 읽어올 때 lock을 걸면 최소한의 범위로 할 수 있을 것 같다" 입니다. 강사님께선 Session의 Send, RegisterRecv, OnRecvCompleted에 하나의 _lock 오브젝트로 전부 잠구셨는데 이렇게 되면 예를 들어 OnRecvCompleted를 호출해서 _lock 범위 내에서 처리하는 동안 Send를 호출하면 Send는 OcRecvCompleted가 끝날 때 까지 대기해야하는 상황이 발생하지않나라는 걱정이 조금 됩니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
강의에서 Non으로 설명하신 이유가 따로 있을까요 ?
김영한님께서도 항상 Non으로 이해하면 헷갈린다고 말씀하셨듯이.. Non으로 굳이 설명 하신 이유가 있을까요 ? If-match , If-Modified-Since 를 사용하는게 좀 더 직관적이고 이해하기 쉬운 것 아닌가요 ?? 추가로 쿠키와 캐시의 차이가 무엇인지도 궁금합니다
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTML form으로는 데이터 수정 못하는건가요 ?>
GET과 POST밖에 못 쓴다고 알려주시는데 PUT이나 DELETE를 못쓰면 기존의 데이터를 수정할 수 없는 것 아닌가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
궁금한 점이 있습니다.
강의 초반부에서 Session::Send()를 수정해주셨는데 { WRITE_LOCK; _sendQueue.push(sendBuffer); } if(_sendRegistered.exchange(true) == false) RegisterSend(); 이렇게 작성하면 안되는 것일까요? 별도로 스택 변수를 사용해야 되는 이유가 있는지 궁금합니다. 멀티스레드 개념이 잘 안잡혀서 번거롭게 사소한 것까지 여쭤봐서 죄송합니다..
-
해결됨네트워크, 그림으로 이해하자
안나오는 동영상이 있어요..
ICMP 랑, 전송 계층 개요 동영상이 인코딩 중이라며 나오질 않습니다 확인 부탁드릴게요 ㅠㅠ
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
10:18초 SYN, SYN+ACK, ACK 색깔 의미가 있나요 ?
3-way handshake를 해서 보장된다고 설명할 때 1.SYN 주황색 2. SYN + ACK 초록색 3. ACK 주황색 이렇게 색칠을 해 주셨는데요 3:51보면 IP패킷은 주황색, TCP세그먼트는 초록색 이렇게 되어 있는데 이것과 관련이 있다는 것을 표현한건가요 ? 맞다면 추가 설명 부탁드립니다. 처음은 IP패킷만 가고 2번째는 TCP세그먼트만가고 마지막 ACK에서ㅏ 다시 IP패킷만 이용한다는건가요??.. 무슨 말인지를 모르겠어서요
-
해결됨네트워크, 그림으로 이해하자
IP 주소 클래스 설명하는 그림에 오타 있어요
B 클래스 부터 처음 8Bit 의 표기된 숫자의 개수가 7개입니다
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
tcp가 connection을 생성하는 이유가 뭔가요?
tcp가 ip 프로토콜에서는 제공하지 않는 오류제어, 흐름제어, 혼잡제어를 제공하는 신뢰성있는 연결지향 프로토콜이라는 것을 알았습니다. tcp가 handshake과정을 통해 연결설정을 하는 것이 결국 오류제어, 흐름제어, 혼잡제어를 제공하기 위한것인가요? 연결설정과정 없이는 신뢰성 있는 서비스를 제공하지 못하는 것인지 궁금합니다. 그리고 왜 tcp는 비용을 감수하면서 연결설정 과정을 거치는 것인지 명확한 설명을 듣고 싶습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP 메서드의 안전성을 따지는 목적이 무엇인가요???
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 안녕하세요! 매번 좋은 강의 감사드립니다. 강의를 듣다가 안전 속성에 대한 의문점이 생겨서 질문 남깁니다. 메소드가 안전한지 아닌지 자체가 무엇을 위해 제시된 속성인지 잘 모르겠습니다. 멱등과 캐시가능한 속성은 그 특성과 필요성을 잘 알겠습니다. 그러나 안전이라는 속성은 조금 이해가 가지않는것이 있는데, 강의에서는 안전하면 좋은것이다 아니다를 따지는 것이 아닌것같아서요! 안전하지 않다고해서 POST 를 안쓸수도 없고.. 개발 과정에서 메소드의 안전성을 고려해야하는 사례가 있나요?? 그냥 리소스를 건드리지않는 GET은 안전, 나머지는 리소스를 건드리기때문에 안전하지 못하다 로 "굳이" 나눈 목적이 궁금합니다. 제가 검색한바로는 안전한 메서드의 목적은 서버에 어떤 영향을 줄 수 있는 안전하지 않은 메서드가 사용될 때 사용자들에게 그 사실을 알려줄 수 있도록 하는 것이라고 하더라구요 이 설명 중에서도 "사용자들에게 그 사실을 알려줄 수 있도록 한다"는 것도 어떤 알림을 주는지 잘 와닿지가 않아서 아예 여기다가 질문을 남기게 되었습니다. 늘 좋은 강의 감사합니다!
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
좋은강의자료 정말 감사합니다.(저작권 관련 블로그 게시 가능 여부 문의)
안녕하세요 넷가이버님 좋은 강의 잘 듣고 있습니다. 개인적으로 네트워크를 공부하고 있는 직장인인데, 다음과 같이 정리한 자료를 블로그에 게시해도 되는지 궁금해서 문의남깁니다.(상업성 블로그x) 블로그에 출처 명확히 표기할 예정이구요. 만약 문제가 된다면 개인적으로만 소장하겠습니다.
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
수업자료에 걸려있는 암호 알려주실 수 있나요?
수업자료에 걸려있는 암호 알려주실 수 있나요? 암호가 걸려있어서 프린트를 할 수 없습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
Last-Modifed 값은 서버에서 어떻게 갱신이 될 수 있나요?
안녕하세요! 좋은 강의 감사합니다. 캐시부분을 쭉 듣다 막연한 궁금증이 생겨 질문드립니다. Last-Modifed은 따로 개발자가 구현하는게 아니면 서버에서 자동으로 설정해준다는데.. 리소스가 마지막으로 수정된 시간을 서버는 어떻게 알 수 있는건지 궁금합니다.. 보통 데이터베이스에 데이터를 저장할때 거의 항상 update_dttm 같은 컬럼을 만들어두고 넣던데 이런 컬럼값을 자동으로 체크하는걸까요??;; 좀 쌩뚱맞은 질문같단 느낌이 드는데 구글링해도 잘 안나와서요.. 너무 궁금해서 여쭤봅니다. 읽어주셔서 감사합니다!!