스터디 중 나온 질문 정리 - 네트워크
서브넷 마스크와 클래스리스 주소 체계의 관계는?
서브넷 마스크는 클래스리스 주소체계를 구현하는 데 핵심적인 도구임. 클래스리스 주소체계는 서브넷 마스크를 활용하여 IP 주소를 더 효율적이고 유연하게 할당하고 관리할 수 있게 해줌.
과거에는 IP 주소가 클래스 A, B, C, D, E로 나뉘는 클래스 기반 주소 체계가 사용되었음. 클래스별로 고정된 네트워크와 호스트 비트를 가지고 있어, IP 주소를 효율적으로 관리하기 어렵다는 단점이 있었음.
이에 따라 등장한 것이 클래스리스 주소 체계로, 이 체계에서는 고정된 클래스 없이 필요한 만큼의 비트를 네트워크 부분으로 사용할 수 있어 더 유연하고 효율적으로 IP 주소를 할당할 수 있음. 예를 들어, IP 주소가
192.168.1.0/24
로 표기되면 /24
는 서브넷 마스크의 비트를 나타내며, 앞의 24비트는 네트워크를 나타내고 나머지 비트는 호스트 부분으로 사용할 수 있음을 의미함.예를 들어 회사에서
192.168.1.0/24
대역을 할당받았다면 최대 256개의 IP주소를 사용할 수 있음. 이를 서브넷으로 나누어 부서별로 사용할 수 있음. (192.168.1.0
은 네트워크 주소, 192.168.1.255
는 브로드캐스트 주소이기 때문에 실제 사용 가능한 주소는 254개) 1. 요구 사항
- 경영팀과 개발팀이 반반 나눠서 사용할 수 있도록 호스트 수를 절반으로 나누기
1. 첫 번째 서브넷
- 서브넷:
192.168.1.0/25
- 서브넷 마스크:
255.255.255.128
- 네트워크 주소:
192.168.1.0
- 브로드캐스트 주소:
192.168.1.127
- 사용 가능한 호스트 주소:
192.168.1.1
~192.168.1.126
- 호스트 수: 126개
2. 두 번째 서브넷
- 서브넷:
192.168.1.128/25
- 서브넷 마스크:
255.255.255.128
- 네트워크 주소:
192.168.1.128
- 브로드캐스트 주소:
192.168.1.255
- 사용 가능한 호스트 주소:
192.168.1.129
~192.168.1.254
- 호스트 수: 126개
웹사이트에 방문했을 때, 쿠키 수집에 동의하지 않으면 어떻게 되는가?
쿠키의 생성자는 서버. 보관은 일반적으로 클라이언트 측, 즉 사용자의 브라우저에 저장됨.
서버의 응답
Set-Cookie
헤더에 포함된 정보를 받아 이를 저장할지 말지는 클라이언트가 정할 수 있음. 따라서 이후 요청에 쿠키 정보를 담지 않고 요청을 보낼 수 있음.즉, 쿠키 수집에 동의하지 않으면 브라우저가 이를 저장하지 않아, 서버로 자동 전송하지 않기 때문에, 서버에서 개인화된 정보나 상태를 추적하기 어려워짐
구글에서 컴퓨터 검색을 하다가 쿠팡에 들어가면 컴퓨터 추천을 해주는데, 어떻게 이게 가능한가?
도메인 별 쿠키 제한 때문에, 구글의 쿠키를 쿠팡에서 사용할 수 없음. 하지만 서드파티 쿠키와, 구글 광고 스크립트를 통해 가능함.
쿠키는 서버에 저장되지 않지만, 브라우저(클라이언트)에 저장되며 이 과정에서 브라우저가 중간에서 중요한 역할을 하게 됨. 쿠팡에 있는 구글 광고 스크립트가 사용자 프로파일을 확인해서 이런 추천이 가능한 것
- 서드파티 쿠키 저장과 동작 원리:
- 사용자가 구글 사이트(예: Google 검색, 유튜브)를 방문할 때, 구글은 사용자의 브라우저에 구글 도메인과 연관된 서드파티 쿠키를 생성하여 저장함. 이 서드파티 쿠키에는 사용자의 활동 기록이나 관심사에 관한 정보가 포함될 수 있음
- 이 쿠키는 사용자의 브라우저에만 저장되며, 구글의 도메인에서만 접근할 수 있음. 즉, 다른 사이트들은 이 쿠키를 직접적으로 읽거나 수정할 수 없음.
- 구글 광고 스크립트를 통한 쿠키 접근:
- 사용자가 쿠팡을 방문할 때, 쿠팡 웹 페이지에는 구글 광고 스크립트가 포함되어 있음. 이 스크립트는 쿠팡 도메인이 아닌 구글의 도메인에 의해 실행됨.
- 브라우저는 구글 도메인에서 요청이 들어오면 구글의 서드파티 쿠키를 자동으로 전송하게 됨. 이는 브라우저가 도메인별로 쿠키를 자동으로 처리하는 방식 때문임. 구글의 스크립트는 구글 서버와 통신할 때, 브라우저가 알아서 구글의 서드파티 쿠키를 함께 전송함.
- 사용자 프로파일 확인 및 맞춤 광고 노출:
- 구글 서버는 쿠팡에서 들어온 요청을 통해 해당 사용자 브라우저에 저장된 구글의 서드파티 쿠키를 확인함.
- 쿠키에 포함된 정보를 바탕으로 구글 서버는 사용자의 관심사나 검색 기록에 맞춰 적합한 광고를 선택함. 구글 서버는 선택된 광고를 쿠팡 페이지에 전달하고, 사용자는 자신의 관심사에 맞는 광고를 볼 수 있게 됨.
소켓, 웹소켓, TCP 소켓은 무엇인가?
- 소켓은 프로세스 간의 통신을 위한 공유 공간 또는 엔드포인트 역할 → 호스트 A와 B가 통신한다고 할때 호스트 A의 IP주소:port번호와 호스트 B의 IP주소:port번호 통로임 → 전송 계층 이상의 개념임
- TCP를 주로 사용하므로 TCP 소켓이라고 하는 것임, UDP 소켓도 있음
- TCP 소켓을 통해 다양한 프로토콜을 이용해서 통신할 수 있음. 우리가 일반적으로 웹 개발을 할때 HTTP 프로토콜을 이용해서 TCP 소켓으로 통신하는 것임. 얼마든지 다른 프로토콜을 사용해서 통신할 수 있음.
- HTTP는 요청-응답 구조로, 클라이언트가 요청을 보내야 서버가 응답을 보낼 수 있음 → 실시간으로 서버에서 클라이언트로 데이터를 푸시해야 하는 기능(예: 채팅, 알림)에는 한계가 있음
- 따라서 WebSocket이라는 다른 프로토콜을 사용해서 TCP 소켓을 이용해서 통신하는 것임 → HTTP 보다 자유로운 실시간 양방향 통신 가능
- WebSocket은 초기 핸드셰이크 과정에서만 HTTP를 사용하고, 그 후에는 WebSocket 프로토콜로 전환되어 실시간, 양방향 데이터 전송을 가능하게 함.