CS

CS

웹을 지탱하는 기술3 - HTTP

HTTP란 REST의 중요한 특징인 Uniform 인터페이스, 스테이트리스, 서버, 캐시 등을 구현하고 있는 Web의 기반이 되는 프로토콜 HTTP는 TCP/IP를 기본으로 하는 프로토콜입니다. 그 말은 TCP/IP의 4계층(네트워크 계층, 인터넷 계층, 트랜스포트 계층, 애플리케이션 계층) 중 인터넷 계층에서 IP를, 트랜스포트 계층에서는 TCP를 사용하고 있다는 것을 말합니다. handshake TCP 3 handshake(연결시) 연결할래(SYN) 응, 연결해!(ACK, SYN) 응, 한다(ACK) SYN은 '연결요청'을 말합니다. 결국 둘다 ACK를 받아야 Connection이 이루어지는 것입니다. TCP 4 handshake(종료시) 종료할래(FIN) 응, 알겠어(ACK). 나도 ..

CS

프로세스와 쓰레드

프로세스와 쓰레드의 차이는? 프로세스(Process) 프로세스는 실행 중인 프로그램을 말하며, 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말합니다. 이러한 프로세스에 대한 정보는 프로세스 제어블록(PCB, Process Control Block)이라는 자료구조를 통해 관리가 되며 이를 통해 CPU가 각각의 프로세스를 교체해가면서 일할 때 어디에서 시작해야할지 알 수 있는 것입니다. PCB에 저장되는 정보는 다음과 같습니다. 프로세스 식별자(Process ID, PID) : 프로세스 식별번호 프로세스 상태 : new, ready, running, waiting, terminated 등의 상태를 저장 프로그램 카운터 : 프로세스가 다음에 실행할 명령어의 주소 CPU 레지스터 CPU 스..

CS

프로세서와 코어의 차이점

프로세서와 코어의 차이점은? 프로세서와 쓰레드를 공부하다가 컴퓨터 시스템 정보를 살펴보게 되었고 프로세서는 1개인데 코어가 여러 개인 것을 보면서 그 차이가 궁금해졌습니다. 컴퓨터 공부하게 되면서 주변에서 컴퓨터 살 때 저에게 좀 물어보는데(부담;;) 생각난 김에 다시 정리해야겠다는 생각이 들었습니다. CPU(Central Processing Unit, 중앙 처리 장치) 컴퓨터는 크게 CPU, RAM, 하드디스크 정도로 구분할 수 있겠는데요. 이 요소를 사람에 비유하면 RAM은 단기기억, 하드디스크는 장기기억, CPU는 사고를 담당한다고 볼 수 있습니다. CPU의 사고는 중요한 3가지 기능을 말하는 것인데요. 그것은 기억, 연산, 제어를 말합니다. 컴퓨터를 뜯어보면 쿨러 근처에 아주 작은 칩(마이크로프로..

CS

Sync Async Block Non-Block

Sync Async Block Non-Block Sync, Async / Blocking, Non-Blocking Introduction 보통 입출력에서(네트워크 통신 포함) 많은 시간과 비용이 소요됩니다. 그렇기 때문에 이것을 어떻게 처리할 것에 대해 논의하면서 이 주제가 부각되었습니다.C10K 문제와도 관련이 있는데요. 하나의 서버에서 1만명의 클라이언트를 처리할 수 있는가입니다. 멀티쓰레드에서 쓰레드 수가 그만큼 있다고 해도 메모리가 너무 많이 차지하고 문맥 교환비용이 많이 발생하기 때문에 힘듭니다. 블록킹과 논블록킹의 구분은 비교적 명확하지만 동기, 비동기의 구분은 명확하진 않은 편입니다. 호출하는 함수가 제어권을 가지고 있는지 유무 → blocking, non-blocking 호출되는 함수의 완..

CS

TCP/IP

Today's Dev Notes(2019-01-28) TCP / IP 인터넷에 사용되는 각종 표준 프로토콜의 집합 네트워크 컴퓨터들이 서로 정보(데이터)를 주고 받을 수 있도록 연결된 통신망 TCP/IP 4계층 택배를 부치는 것에 비유할 수 있습니다. 프로토콜 오른쪽에 명시하였습니다. 프로토콜마다 헤더가 존재하며 애플리케이션 → 트랜스포트 → 인터넷 → 네트워크 헤더가 붙어 보내어졌다면 받는 쪽에서는 이 역순으로 헤더를 받아 해석하게 됩니다. 물건을 보낸다(애플리케이션 계층) : HTTP, SMTP, DNS 포장한다(트랜스포트 계층) : TCP, UDP 송장을 붙인다(인터넷 계층) : IP 부친다(네트워크 인터페이스 계층) : Ethernet 계층으로 왜 나누는 것일까(Layered Architectur..

Brad Lee
'CS' 카테고리의 글 목록