네트워크는 이용하는 기술 등을 바탕으로 다양한 관점에서 분류할 수 있다.
그중에서도 누가 이용할 수 있는 네트워크인가라는 관점에서 볼 때, 크게 다음 2가지로 분류하면 이해하기 쉽다.
📡 네트워크는 일부 그룹, 조직 또는 커뮤니티가 소유한다고 하지만 인터넷은 개인 소유가 아닌 모든 사용자에게 개방되어 있다.
사내 네트워크나 가정 네트워크처럼 접속할 수 있는 사용자를 직원이나 가족으로 한정하는 사설 네트워크가 있다. 사내 네트워크는 원칙적으로 그 기업의 직원만 이용할 수 있고, 가정 네트워크는 가족만 이용할 수 있다.
🌐 반면에 인터넷은 접속할 사용자를 제한하지 않고, 누구든 이용할 수 있는 네트워크다. 인터넷에 접속하면, 다른 사용자와 자유롭게 데이터를 주고받을 수 있다.
⚖️ 네트워크와 인터넷의 근본적인 차이점은 네트워크가 물리적으로 연결되어 있고 개인용 컴퓨터로 사용되며 서로 정보를 공유 할 수있는 컴퓨터로 구성되어 있다는 것이며, 반대로 인터넷은 이러한 크고 작은 네트워크를 서로 연결하고 더 광범위한 네트워크를 구축하는 기술이다.
네트워크가 포함하는 지리적 영역은 한 국가까지 확장될 수 있는 반면, 인터넷은 국가나 대륙, 그 이상을 연결할 수 있다.
네트워크 = LAN, 인터넷 = WAN 으로 이해하면 된다.
https 에서 데이터의 통신 흐름은 암호화, 복호화, 대칭키, 비대칭키(공개키)와 관련되어 있다.
⭐️ 결론 : 대칭키는 암호화와 복호화에 동일한 키를 사용하고, 비대칭키는 암호화와 복호화에 서로 다른 키 쌍을 사용한다. 비대칭키는 공개키와 개인키로 구성되며, 공개키는 공개되어 안전한 통신에 사용되고, 개인키는 비밀로 유지되어 데이터의 복호화나 디지털 서명에 사용된다.
IPv6는 IPv4의 한계를 극복하기 위해 개발된 새로운 인터넷 프로토콜이다. IPv4은 32비트 주소 체계로 약 42억 개의 주소를 가지고 있지만, 인터넷의 급속한 발전으로 인해 이 주소 체계의 한계가 드러나게 되었다.
IPv4에서는 주소 부족 문제를 해결하기 위해 NAT을 사용하여 여러 기기를 하나의 공용 IP 주소로 연결해야 했다. 하지만 IPv6에서는 주소가 충분하므로 NAT을 사용하지 않아도 되고 이는 네트워크 관리를 단순화하고 성능을 향상시키는데 도움을 준다.
⭐️ 즉, IP가 부족해서. 자동차 번호판 숫자가 늘어난 것과 같이 생각하면 된다.
🔥요청이 들어가는 시점(와이파이 비밀번호를 입력하면 요청이 들어가는데 그 때!)🔥
NAT은 네트워크 주소 변환(Network Address Translation)의 약어로, 주로 사설 네트워크에서 공인 IP 주소와 통신하기 위해 사용된다. NAT은 주로 사설 네트워크와 공인 네트워크 간의 통신을 중개하고 주소 변환을 수행하는 기능을 가지고 있다.
유저 모드의 응용 프로그램은 커널 모드의 기능에 직접 접근할 수 없으며, 커널 모드를 통해 제공되는 인터페이스를 통해 필요한 작업을 요청한다.
🤷🏻♀️ 그렇다면 유저 모드와 커널 모드를 나누는 이유는?
1. 보안 : 모드를 분리해서 악의적인 응용 프로그램이 커널에 직접 침입하는 것을 방지, 시스템의 안전성을 높임
2. 안정성 : 커널 모드의 오류나 충돌은 전체 시스템에 영향을 미치기 때문에, 유저모드를 따로 둠으로써 유저 모드에서 실행되는 프로그램의 오류/충돌은 해당 프로세스에만 영향을 미치게 해 안정성을 높임
3. 호환성 : 커널 모드는 변화가 적고 상대적으로 안정적. 유저 모드는 응용 프로그램의 다양한 변화에 더 유연하게 대응할 수 있음. 따라서 모드의 분리는 커널 모드를 변경하지 않고도 응용 프로그램을 업그레이드하거나 새로운 응용 프로그램을 추가할 수 있도록 함
디스크 → 메모리 → CPU
아니다!
하드웨어 캐시는 컴퓨터 시스템 내부에 위치한 메모리다.
CPU와 같은 프로세서와 함께 동작하며, 데이터를 빠르게 접근할 수 있도록 하며 하드웨어 캐시는 접근 시간이 빠르고 처리 속도를 향상시키는 역할을 한다.
반면에 웹 캐시는 인터넷 환경에서 웹 페이지나 웹 리소스에 대한 임시 저장소이다. 웹 캐시는 웹 브라우저, 프록시 서버 또는 콘텐츠 전송 네트워크(CDN)와 같은 시스템에서 사용된다. 웹 캐시는 이전에 요청된 웹 페이지의 사본을 저장하여 동일한 내용의 요청이 발생할 때 웹 서버로부터 다시 다운로드하지 않고 캐시된 데이터를 사용한다. 이는 웹 페이지 로딩 속도를 향상시키고 네트워크 트래픽을 줄이는 데 도움이 된다.
⭐️ 하드웨어 캐시와 웹 캐시는 서로 다른 용어이며, 다른 목적과 동작 방식을 갖고 있다.
컴파일러 언어 | 인터프리터 언어 |
---|---|
코드 실행 전, 컴파일 타임에 소스 코드 전체를 한번에 기계어로 변환 후 실행 | 코드가 실행 단계인 런타임에 코드 한 줄씩 중간 코드인 바이트코드로 변환 후 실행 |
실행 파일 생성 | 실행 파일 생성 X |
컴파일 단계와 실행 단계가 분리 | 인터프리트 단계와 실행 단계 분리 X 한 줄씩 바이트코드로 변환 후 즉시 실행 |
컴파일은 한번만 수행 | 코드 실행시마다 인터프리트 과정 반복 수행 |
컴파일과 실행단계가 분리되어 있어, 실행시에는 실행만 하면 되므로 코드 실행 속도 빠름 | 인터프리트 단계와 실행 단계가 분리되어 있지 않아 반복 수행하므로 실행 속도가 느림 |
C, C++, C#, JAVA 등 | Python, Javascript, Ruby |
📍 보면 좋을 사이트
https://eun-jeong.tistory.com/27
[Authentication] 암호화의 종류