CS35 운영체제의 역할과 구조 ✏️ 운영체제의 역할과 구조 운영체제란 컴퓨터 하드웨어와 소프트웨어 리소스를 관리하며, 사용자와 컴퓨터 사이의 인터페이스 역할을 하는 시스템 소프트웨어입니다. 이를 통해 사용자와 애플리케이션에 안정적이고 효율적인 컴퓨팅 환경을 제공합니다. 🤔 운영체제의 역할 1️⃣ CPU 스케줄링과 프로세스 관리 CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리합니다. 2️⃣ 메모리 관리 한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리합니다. 3️⃣ 디스크 파일 관리 디스크 파일을 어떠한 방법으로 보관할지 관리합니다. 4️⃣ I/O 디바이스 관리 I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리합니다. 더보기 💡 I/O I/O는 Inp.. ComputerScience/운영체제와 컴퓨터 2023. 11. 17. HTTPS ✏️ HTTPS HTTP/2는 HTTPS 위에서 동작합니다. HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청을 말합니다. SSL/TLS SSL(Secure Socket Layer)은 SSL 1.0부터 시작해서 SSL 2.0, SSL 3.0, TLS(Transport Layer Security Protocol) 1.0, TLS 1.3까지 버전이 올라가며 마지막으로 TLS로 명칭이 변경되었으나, 보통 이를 합쳐 SSL/TLS로 많이 부릅니다. SSL/TLS는 전송 계층에서 보안을 제공하는 프로토콜입니다. 클라이언트와 서버가 통신할 때 SSL/TLS를 통해 제 3자가 메시지를 도청하거나 변조하지 못하도록 합니다. 위의 그림처럼 SSL/TL.. ComputerScience/HTTP 2023. 11. 16. HTTP/2 ✏️ HTTP/2 HTTP/2는 SPDY 프로토콜에서 파생된 HTTP/1.x보다 지연시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며, 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜입니다. 더보기 💡 SPDY 프로토콜 웹의 퍼포먼스 향상을 목표로 Google에 의해 개발된 개방형 네트워킹 프로토콜입니다. SPDY 프로토콜은 기본적으로 HTTP의 대안으로 고안되었으며, 웹 페이지의 로드 시간을 줄이기 위한 여러 최적화 및 기능을 제공합니다. 🔁 멀티플렉싱 멀티플렉싱이란 하나의 통신채널을 통해서 여러 개의 스트림을 사용하여 송수신한다는 것입니다. 더보기 💡 스트림 (Stream) 스트림은 연속적인 데이터의 흐름을 의미합니다. 프로그래밍에서 스트림은 파일, 네트워크 연결, 입.. ComputerScience/HTTP 2023. 11. 16. HTTP/1.0, HTTP/1.1 ✏️ HTTP/1.0 기본적으로 HTTP는 전송 계층 위에 있는 애플리케이션 계층으로 웹 서비스 통신에 사용됩니다. HTTP/1.0부터 시작해서 발전을 거듭하여 지금은 HTTP/3입니다. HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었습니다. 하지만 서버로부터 파일을 가져올 때마다 TCP의 3-Way Handshake를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점이 있습니다. 더보기 💡 RTT (왕복 지연 시간) 네트워크에서 특정 목적지까지의 신호를 보내고 그 응답이 돌아오는 데 걸리는 전체 시간을 나타냅니다. 🤔 RTT의 증가를 해결하기 위한 방법 매번 연결할 때마다 RTT가 증가하니 서버에 부담이 많이 가고 사용자 응답 시간이 길어졌습니다. 이를 해결하기 위해 이미지 .. ComputerScience/HTTP 2023. 11. 16. IP 주소 체계와 할당 방식 ✏️ IP 주소 체계 IP 주소는 IPv4와 IPv6로 나뉩니다. IPv4는 32비트를 8비트 단위로 점을 찍어 표기하며, 123.45.67.89 같은 방식으로 IP 주소를 나타냅니다. IPv6는 64비트를 16비트 단위로 점을 찍어 표기하며, 2001:db8::ff00:42:8329 같은 방식으로 IP 주소를 나타냅니다. 🗂️ 클래스 기반 할당 방식 IP 주소 체계는 과거를 거쳐 발전해오고 있으며 처음에는 A, B, C, D, E 다섯 개의 클래스로 구분하는 클래스 기반 할당 방식(Classful Network Addressing)을 썼습니다. 앞에 있는 부분을 네트워크 주소, 그 뒤에 있는 부분을 컴퓨터에 부여하는 주소인 호스트 주소로 놓고 사용합니다. 클래스 A, B, C는 1:1 통신으로 사용하고.. ComputerScience/IP 주소 2023. 11. 16. 홉바이홉 통신 ✏️ 홉바이홉 통신 IP주소를 통해 통신하는 과정을 홉바이홉(Hop by Hop) 통신이라고 합니다. 여기서 홉이란 영어 뜻 자체로 건너뛰는 모습을 의미합니다. 이는 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한 것입니다. 위의 그림처럼 서브네트워크에 있는 라우터의 라우팅 테이블 IP를 기반으로 패킷을 전달하고 또 전달하며 라우팅을 수행하여 최종 목적지까지 패킷을 전달합니다. 즉, 홉바이홉 통신은 통신 장치에 있는 라우팅 테이블의 IP를 통해 시작 주소부터 시작하여 다음 IP로 계속해서 이동하는 라우팅 과정을 거쳐 패킷이 최종 목적지까지 도달하는 통신을 말합니다. 👉 라우팅 테이블 💡 라우팅 테이블 라우팅 테이블(Routing Table)은 송신지에서 수신지까지 도달하기 위해.. ComputerScience/IP 주소 2023. 11. 15. ARP ✏️ ARP 컴퓨터와 컴퓨터 간의 통신은 흔히들 IP 주소 기반으로 통신한다고 알고 있지만 정확히는 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신합니다. ARP(Address Resolution Protocol)란 IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜입니다. ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환합니다. 이와 반대로 RARP(Reverse Address Resolution Protocol)를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환하기도 합니다. ❓ ARP의 주소를 찾는 과정 위의 그림처럼 장치 A가 ARP Request 브로드캐스트를 보내서 IP 주소인 120.70.80... ComputerScience/IP 주소 2023. 11. 15. 네트워크 기기 및 처리 범위 ✏️ 네트워크 기기의 처리 범위 네트워크 기기는 계층별로 범위를 나눌 수 있습니다. 물리 계층을 처리할 수 있는 기기와 데이터 링크 계층을 처리할 수 있는 기기 등이 있습니다. 그리고 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 반대로 하위 계층에서는 상위 계층을 처리할 수 없습니다. 🟢 애플리케이션 계층을 처리하는 기기 애플리케이션 계층을 처리하는 기기로는 L7 스위치가 있습니다. 🔁 L7 스위치 스위치는 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비입니다. L7 스위치는 로드밸런서라고도 하며, 서버의 부하를 분산하는 기기입니다. 클라이언트부터 오는 요청들을 여러 서버로 나누는 역할을 하며 시스템이 처리할 수 .. ComputerScience/네트워크 기기 2023. 11. 15. TCP/IP 4계층 구조 ✏️TCP/IP 4 계층 구조 TCP와 IP는 TCP/IP 프로토콜 스택 내의 두 주요 프로토콜로, 서로 다른 목적과 기능을 가지고 있습니다. 아래는 두 프로토콜의 주요 차이점을 비교한 내용입니다. TCP (Transmission Control Protocol) ✅ 정의 연결 지향적이며, 신뢰성 있는 데이터 전송을 보장하는 전송 계층의 프로토콜입니다. 데이터의 정확한 순서와 에러 없이 도착함을 보장합니다. 🛠 기능 데이터의 신뢰성 있는 전송 데이터의 순서 보장 흐름 제어 (송신자와 수신자 간의 데이터 전송 속도 조절) 혼잡 제어 (네트워크 혼잡 시 전송 속도 조절) 🎯 사용 용도 신뢰성이 요구되는 데이터 전송에 주로 사용됩니다. 예를 들면, 웹 브라우징, 이메일 전송, 파일 전송 등에 사용됩니다. IP .. ComputerScience/네트워킹 및 통신 2023. 11. 15. 네트워크 성능 분석 명령어 ✏️ 네트워크 성능 분석 명령어 애플리케이션 코드상에는 전혀 문제가 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 상황이 발생되기도 하며, 이는 네트워크 병목 현상일 가능성이 있습니다. 네트워크 병목 현상의 주된 원인을 아래와 같습니다. 1️⃣ 네트워크 대역폭 2️⃣ 네트워크 토폴로지 3️⃣ 서버 CPU, 메모리 사용량 4️⃣ 비효율적인 네트워크 구성 이때는 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 네트워크로부터 발생한 문제점인 것을 확인한 후 네트워크 성능 분석을 해야 합니다. 이때 사용되는 명령어들을 알아보겠습니다. 🔴 Ping Ping(Packet INternet Groper)은 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어입니다. 이를 통해 .. ComputerScience/네트워크 기초 2023. 11. 14. 네트워크 분류 ✏️ 네트워크 분류 네트워크는 규모를 기반으로 분류할 수 있습니다. 사무실과 개인적으로 소유 가능한 규모인 LAN(Local Area Network)과 서울시 등 시 정도의 규모인 MAN(Metropolitan Area Network), 그리고 세계 규모의 WAN(Wide Area Network)으로 나뉩니다. 🏢 LAN LAN(Local Area Network)는 근거리 통신망을 의미하며 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영됩니다. 전송 속도가 빠르고 혼잡하지 않습니다. 🏙 MAN MAN(Metropolitan Area Network)은 대도시 지역 네트워크를 나타내며 도시 같은 넓은 지역에서 운영됩니다. 전송 속도는 평균이며 LAN보다는 더 많이 혼잡합니다. 🌎 WAN WAN(Wide Are.. ComputerScience/네트워크 기초 2023. 11. 14. 네트워크 토폴로지와 병목 현상 ✏️ 네트워크 토폴로지 네트워크 토폴로지(Network Topology)는 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태를 의미합니다. 🌲 트리 토폴로지 트리(Tree) 토폴로지는 계층형 토폴로지라고 하며 트리 형태로 배치한 네트워크 구성을 말합니다. 노드의 추가, 삭제가 쉬우며 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있습니다 🚌 버스 토폴로지 버스(Bus) 토폴로지는 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성을 말하며 근거리 통신망(LAN)에서 사용합니다. 더보기 💡 LAN(Local Area Network) LAN은 한정된 지역 내에서 컴퓨터와 기타 디바이스들이 상호 연결되어 통신할 수 있게 하는 네트워크 시스템을 말합니다. 설치 .. ComputerScience/네트워크 기초 2023. 11. 14. 이전 1 2 3 다음