HTTP 버전 : http1, http1.1, http2, http3

http 버전

HTTP/1은 1996년에 도입된 HTTP 프로토콜의 첫 번째 버전입니다. 모든 요청에 별도의 TCP 연결이 필요 했습니다. HTTP/1.1은 네트워크 리소스의 비효율적인 사용 및 대기 시간과 같은 문제를 해결하는 것을 목표로…

동시성 병렬성 : 멀티 태스킹의 비밀

동시성 병렬성

모든 사람들이 멀티 태스킹이라고 하면 직관적으로 병렬 작업을 생각할 것 같습니다. 하지만 멀티 태스킹을 공부하다 보면 동시성 병렬성 개념이 등장 합니다.

프로세스 vs 스레드 : IPC, 주소 공간, 멀티 프로세스, 멀티 스레드

멀티 프로세스 vs 멀티 스레드

프로젝트를 진행 하다가 처리 시간이 긴 프로세스를 만난 적이 있었습니다. 그때 바로 생각난 개념이 “멀티 프로세싱” 이였습니다. 그런데 공부를 하다 보니 “스레드”라는 개념이 튀어나옵니다. “프로세스 vs 스레드” 끝인가? 아닙니다… 동시성, 병렬성, 뮤텍스…

파이썬 zip 함수 : 반복자 쌍들을 가지고 노는 함수

파이썬 zip() 함수

Python에서 zip() 함수는 여러 iterable 항목(예: 리스트, 튜플 또는 문자열)을 튜플의 반복자로 결합하는 데 사용됩니다. zip 함수는 이런 기능을 이용해서 병렬 반복이나 데이터 쌍과 같은 작업에 유용하게 사용 할 수 있습니다

멀티 태스킹 : 스케줄러, Dispatch, Context Switching, PCB

멀티 태스킹

“Context Switching”에서 Context는 프로세스의 상태를 의미합니다. 기본적으로 Context Switching은 프로세스 상태를 바꾸는 것을 말하며,다시 말하면 프로세스를 일시 중지하고 다시 시작할 수 있도록 프로세스/스레드 상태를…

프로세스 생명주기 : 대기열, 스케줄링, 가상 메모리 스와핑

프로세스 생애주기

어찌보면 당연한거지만 프로세스에도 생애주기가 있었습니다. 사람도 세포도, 여러 대사 작용들도 모두 cycle이 있습니다. SDLC 개념도 처음 들으면서 재밌다 생각했는데, “프로세스 생명주기”도 있다는 걸 깨닫지 못한 게 오히려 신기한 건가 싶기도 합니다.