CS 21

HTTP

HTTPHTTP는 애플리케이션 게층으로서 웹 서비스 통신에 사용된다. HTTP/1.0부터 시작해서 발전을 거듭하여 지금은 HTTP/3이다.1. HTTP/1.0HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었다. 이는 RTT(패킷 왕복 시간) 증가를 불러오게 되었다.서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점이 있다. 매번 연결할 때마다 RTT가 증가하니 서버에 부담이 많이 가고 사용자가 응답 시간이 길어졌다. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용하곤 했다.이미지 스필리팅 : 많은 이미지를 다운로드 받게되면 과부하가 걸리기 때문에 많은 이미지가 합쳐 있는 하나의 이미지..

CS/네트워크 2025.09.07

CPU 스케줄링 알고리즘

CPU 스케줄링 알고리즘CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당한다.프로그램이 실행될 때는 CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정한다. 이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐(ready queue)에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 한다.1. 비선점형 방식비선점형 방식(non-preemptive)은 프로세스가 스스로 CPU 소유권을 포기하는 방식이며, 강제로 프로세스를 중지하지 않는다. 따라서 컨텍스트 스위칭으로 인한 부하가 적다.FCFS(First Come, First Served) : 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘..

CS/운영체제 2025.09.03

프로세스와 스레드

프로세스와 스레드프로세스(process)는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. 스레드는 프로세스 내 작업의 흐름을 지칭한다.앞의 그림처럼 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다.1. 프로세스와 컴파일 과정프로세스는 프로그램이 메모리에 올라간 인스턴스화된 것을 말한다. 예를 들어 프로그램은 구글 크롬 프로그램(chrome.exe)과 같은 실행 파일이며, 이를 두 번 클릭하면 구글 프로세스로 변환되는 것이다. 프로그램을 만드는 과정은 만드는 언어마다 다를 수 있으며 컴파일 언어인 C 언어 기반의 프로그램을 기준으로 설명하..

CS/운영체제 2025.09.03

메모리

메모리1. 메모리 계층메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성되어 있다.레지스터 : CPU 안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 적다캐시 : L1, L2 캐시를 지칭한다. 휘발성, 속도 빠름, 기억 용량이 적다.주기억장치 : RAM을 가르킨다. 휘발성, 속도 보통, 기억 용량이 보통이다.보조기억장치 : HDD, SDD를 일컬으며 비휘발성, 속도 낮음, 기억 용량이 많다.램은 하드디스크로부터 일정량의 데이터를 복사해서 임시 저장하고 이를 필요 시마다 CPU에 빠르게 전달하는 역할을 한다. 계층 위로 올라갈수록 가격은 비싸지는데 용량은 작아지고 속도는 빨라지는 특성이 있다. 이러한 계층이 있는 이유는 경제성과 캐시때문이다. 캐시캐시(cache)는 데이터를 미리 복사..

CS/운영체제 2025.08.29

운영체제와 컴퓨터

운영체제와 컴퓨터운영체제(OS, Operating System)는 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 한정된 메모리나 시스템 자원을 효율적으로 분배하는 역할을 한다.1. 운영체제의 역할과 구조운영체제의 역할CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리디스크 파일 관리 : 디스크 파일을 어떠한 방법으로 보관할지 관리I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리 운영체제의 구조유저 프로그램이 맨 위에 있고 그 다음으로 GUI, 시스템 콜, 커널, 드라이버가 있으며 가장 밑에 하..

CS/운영체제 2025.08.19

IP 주소

IP 주소1. ARP(Adress Resolution Protocol)컴퓨터와 컴퓨터 간의 통신은 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신한다. ARP란 IP주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜이다.ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환한다. 이와 반대로 RARP를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환하기도 한다. 장치 A가 ARP Request 브로드캐스트를 보내서 IP 주소인 120.70.80.3에 해당하는 MAC 주소를 찾는다. 그리고 나서 해당 주소에 맞는 장치 B가 ARP Reply 유니캐스트를 통해 MAC 주소를 반환하는 과정을 거쳐 IP 주소에 맞는 MAC ..

CS/네트워크 2025.08.17

네트워크 기기

네트워크 기기네트워크는 여러 개의 네트워크 기기를 기반으로 구축된다.1. 네트워크 기기의 처리 범위네트워크 기기는 계층별로 처리 범위를 나눌 수 있다. 물리 계층을 처리할 수 있는 기기와 데이터 링크 계층을 처리할 수 있는 기기 등이 있다. 그리고 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가하다. 예를 들어 L7 스위치는 애플리케이션 계층을 처리하는 기기로, 그 밑의 모든 계층의 프로토콜을 처리할 수 있다. 하지만 AP는 물리 계층밖에 처리하지 못한다.애플리케이션 계층 : L7 스위치인터넷 계층 : 라우터, L3 스위치데이터링크 계층 : L2 스위치, 브리지물리계층 : NIC, 리피터, AP 2. 애플리케이션 계층 처리 기기애플리케이션 계층을 처리하는 기기는 L7 스위치가 ..

CS/네트워크 2025.08.14

TCP/IP 4계층 모델

TCP/IP 4계층 모델인터넷 프로토콜 스위트(Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합이며, 이를 TPC/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 한다. TCP/IP 계층 모델은 네트워크에서 사용되는 통신 프로토콜의 집합으로 계층들은 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성된다.1. 계층 구조TCP/IP 계층과 달리 OSI 계층은 애플리케이션 계층을 세 개로 쪼개고 링크 계층을 데이터 링크 계층, 물리 계층으로 나눠서 표현하는 것이 다르며, 인터넷 계층을 네트워크 계층으로 부른다는 점이 다르다. 이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계되었다. 예를들어 ..

CS/네트워크 2025.08.14

네트워크의 기초

네트워크의 기초네트워크란 노드(node) 와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다. 여기서 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미한다.ㅣ 1. 처리량과 지연시간네트워크를 구축할 때는 '좋은' 네트워크로 만드는 것이 중요하다. 좋은 네트워크란 많은 처리량을 처리할 수 잇으며 지연 시간이 짧 장애 빈도가 ㅈ넉으며 좋은 보안을 갖춘 네트워크를 말한다. 처리량 (throughput) : 링크 내에서 성공적으로 전달된 데이터의 양. 단위는 bps(bits per second)를 쓴다. 처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향..

CS/네트워크 2025.08.11

MVC / MVP / MVVM 패턴

MVC 패턴MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴이다. 애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있다. 재사용성과 확장성이 용이하다는 장점이 잇고 애플리케이션이 복잡해질수록 모델과 뷰의 관게가 복잡해지는 단점이 있다.MVC 패턴을 이용한 대표적인 프레임워크로는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크인 스프링이다. 스프링의 WEB MVC는 웹 서비스를 구축하는 데 편리한 기능들을 많이 제공한다.더보기Model : 모델은 애플리케이션의 데이터인 데이터베이스, 상수 변수 등을 뜻한다. 뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신한다...

CS/디자인 패턴 2025.08.10