diff --git a/docs/chapter1/Ch01Keyword.md b/docs/chapter1/Ch01Keyword.md
new file mode 100644
index 0000000..077c07a
--- /dev/null
+++ b/docs/chapter1/Ch01Keyword.md
@@ -0,0 +1,196 @@
+# Chapter 1. 서버란 무엇인가
+
+## 🔍 미리 알아둬야 할 선행 내용
+
+### 1. 시스템 콜
+
+ - ✅ 개념
+ 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다.
+
+
+
+ - ✅ 특징
+ - 시스템 콜은 여러 종류의 기능으로 나누어진다.
+
+ - 시스템 콜 인터페이스는 시스템 콜 번호와 시스템 콜 핸들러 함수 주소로 구성되는 시스템 콜 테이블을 유지한다.
+
+ - 운영체제는 자신의 커널 영역에서 해당 인덱스가 가리키는 주소에 저장되어 있는 루틴을 수행한다.
+
+ - 작업이 완료되면 CPU에게 인터럽트를 발생시켜 수행이 완료 되었음을 알린다.
+
+
+
+ - ✅ 유형
+ - 프로세스 컨트롤 / 파일 매니지먼트 / 디바이스 매니지먼트 / 정보 관리/ 통신 / 보안
+
+
+
+### 2. 프로세스와 스레드
+
+ - ✅ 프로세스 (Process)란?
+ - 실행중에 있는 프로그램 / 운영체제로부터 지원을 할당받은 작업의 단위
+
+ - ✅ 프로세스의 상태
+ - Running : CPU를 잡고 instruction을 수행중인 상태
+ - Ready : CPU를 기다리는 상태
+ - Blocked : CPU을 주어도 당장 instructin을 수행할 수 없는 상태
+ - New : 디스크에서 메모리로 프로그램이 올라가 실행준비를 하는 상태
+ - Terminated : 수행이 끝난 상태
+
+ - ✅ PCB (Process Control Block)
+ - 운영체제가 프로세스를 표현한 자료구조
+
+ - ✅ 문맥교환 (Context Switch)
+ - 하나의 프로세스가 이미 CPU 를 사용중인 상태에서 다른 프로세스가 CPU 를 사용하기 위해 이전 프로세스의 상태를 저장하고 새로운 프로세스의 상태를 적재하는 것
+
+ - ✅ 스레드 (Thread)
+ - 스레드는 프로세스와 다르게 스레드 간 메모리를 공유하며 작동한다
+
+ - ✅ 프로세스와 스레드의 차이점
+ - 프로세스 : 다른 프로세스의 변수나 자료에 접근할 수 없다.
+ - 스레드 : 별도의 스택을 가지고 있지만 힙 메모리는 서로 읽고 슬 수 있게 된다.
+
+
+
+### 3. TCP / UDP 차이
+ - ✅ TCP(Transmission Control Protocl)
+ - 연결형 서비스 / 흐름제어 / 혼잡제어 / 신뢰성이 높은 전송 / 전이중, 점대점 방식
+
+ - ✅ UDP(User Datagram Protocol)
+ - 비연결형 프로토콜 / 데이터 경계 구분 / 비신뢰성 있는 데이터 전송 / 일대일. 다대다 통신
+
+
+
+### 4. OSI 7계층과 TCP/IP 4계층 모델
+
+ - ✅ OSI 7계층
+ - 응용 계층(7) : 웹 서비스의 UI부분, 사용자의 입출력을 담당
+ - 표현 계층(6) : 계층 간 데이터를 적절히 표현하는 부분을 담당
+ - 세션 계층(5) : 통신 세션 구성
+ - 전송 계층(4) : 컴퓨터로 들어온 네트워크 데이터를 어느 포트로 보낼지 담당
+ - 네트워크 계층(3) : IP주소를 사용하여 네트워크 데이터를 어느 컴퓨터로 보낼지 담당
+ - 데이터 링크 계층(2) : MAC 주소를 사용해 네트워크 데이터를 어느 컴퓨터로 보낼지 담당
+ - 물리 계층(1) : 디지털 데이터를 아날로그적인 전기적 신호로 변환하여 네트워크 전선에 흘려보냄.
+
+ - ✅ TCP/IP 4계층 모델
+ - 응용 계층(4) : HTTP, Telent, SSH, FTP와 같은 프로토콜이 여기에서 사용
+ - 전송 계층(3) : 프로세스 간의 신뢰성 있는 데이터 전송을 담당
+ - 인터넷 계층(2) : OSI 7계층 모델의 3(네트워크) 계층과 같다. 컴퓨터 간 라우팅을 담당
+ - 네트워크 인터페이스 계층(1) : 네트워크 통신의 물리적인 부분들을 주로 포함
+
+---
+
+## ✏️ 하드웨어 인터럽트
+
+- ✅ 인터럽트란?
+ - CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말함,
+
+ - 하는 이유 : 입출력 연산이 CPU 명령 수행속도보다 느리기 때문
+
+ - 🎈 하드웨어 인터럽트
+ : 하드웨어가 발생시키는 인터럽트로, CPU가 아닌 다른 하드웨어 장치가 cpu에 어떤 사실을 알려주거나 cpu 서비스를 요청해야 할 경우 발생
+
+---
+
+## ✏️ 리눅스 파일과 파일 디스크립터
+
+- ✅ 파일 디스크립터
+ - 개념 : 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값
+ - 파일 디스크럽터는 일반적으로 0이 아닌 정수값을 갖는다.
+ - 프로세스가 실행 중에 파일을 Open하면 커널은 해당 프로세스의 파일 디스크립터 숫자 중 사용하지 않는 가장 작은 값을 할당해준다
+ - 그 다음 프로세스가 열려있는 파일에 시스템 콜을 이용해서 접근할 때, 파일 디스크립터(FD)값을 이용해서 파일을 지칭
+
+---
+
+## ✏️ socket() 시스템 콜
+
+- ✅ socket(domain, type, protocol);
+ - domain : IPv6, IPv6 중 무엇을 사용할지 결정
+ - type : stream, datagram 소켓 중 선택
+ - protocol : 0, 6, 17 중 0을 넣으면 시스템이 프로토콜 선택, 6이면 tcp, 17이면 udp
+
+
+
+ - 🔍 socket()의 리턴 값은 파일 디스크립터이다.
+ - 🎈 파일 디스크립터가 소켓의 파일 디스크립터인 경우 송수신 동작을 함
+ - ➡️ socket() 시스템 콜은 domain, prtocol을 사용하는 틀을 만들어는 것
+
+---
+
+## ✏️ bind() 시스템 콜
+
+- ✅ bind(sockfd, sockaddr, socklen_t);
+ - sockfd : 바인딩을 할 소켓의 파일 디스크립터
+ - sockaddr : 소켓에 바인딩 할 아이피 주소, 포트번호를 담는 구조체
+ - socklen_t : 위 구조체의 메모리 크기
+
+
+
+ - 생성한 소켓에 실제 아이피 주소와 포트번호를 부여하는 시스템 콜
+ - 서버에서만 사용!
+
+---
+
+## ✏️ listen() 시스템 콜
+
+- ✅ listen(sockfd, backlog)
+ - sockfd : 소켓의 파일 디스크립터
+ - backlog : 연결요청을 받아줄 크기 = TCP 백로그 큐의 크기
+
+
+
+ - 시스템 콜에서 설정하는 backlog가 TCP에서의 backlog queue의 크기이다.
+ - lient가 클라이언트 소켓을 통해 처음으로 서버에 요청을 하여 백로그 큐에 들어갈 때 syn 요청을 보내게 됨.
+
+---
+
+## ✏️ accept() 시스템 콜
+
+- ✅ int accept(sockfd, sockaddr, socklen_t)
+ - sockfd : 백로그 큐의 요청을 받아들이기 위한 소켓의 파일 디스크립터
+ - sockaddr : 선입선출로 빼온 연결 요청에서 알아낸 클라이언트의 주소 정보
+ - socklen_t : 위 구조체의 메모리 크기
+
+
+
+ - backlog queue에서 syn을 보내와 대기 중인 요청을 선입선출로 하나씩 연결에 대한 수립을 해줌.
+ - 🔍 TCP 3 -way handshake
+ - 클라이언트와 서버간에 서로 신뢰성있는 통신을 위한 과정
+ - 새로 만든 소켓은 데이터 송수신을 담당함 (자식 소켓), 응답후 exit(0)으로 종료
+ - 부모 소켓은 연결 요청만 받아서 자식소켓으로 넘김 → 병렬처리
+
+---
+
+## ✏️ 멀티 프로세스와 멀티 스레드
+
+- ✅ 멀티 프로세스
+ - 개념 : 두개 이상 다수의 프로세서가 협력적으로 하나 이상의 작업을 동시에 처리(병렬처리)
+ - 장점
+ - 독립된 구조로 안정성 높음
+ - 다른 프로세스에 영향을 주지 않아, 문제 발생 확률이 낮음
+ - 문제점
+ - 작업량이 많을 수록 오버헤드 발생
+
+- ✅ 멀티 스레드
+ - 개념 : 하나의 프로세스에 여러 스레드로 자원을 공유하며 작업을 나누어 수행
+ - 장점
+ - 시스템 자원소모 감소
+ - 시스템 처리율 향상
+ - 문제점
+ - 하나의 스레드에 문제가 생기면 전체 프로세스에 영향
+ - 자원을 공유하기에 동기화 문제 발생 가능성
+ - 동시성 문제
+
+---
+
+## ✏️ 병렬 처리
+
+- ✅ 병렬 시스템(Parallel System)
+ - 개념 : 다중 프로세스 시스템으로 2개 이상의 CPU가 각자 맡은 역할을 수행
+ - 구조
+ - 대칭 구조 : 각각의 프로세서가 동일한 운영체제 사본을 가지고 수행
+ - 비대칭 구조 : 각각의 프로세서가 각자의 역할이 존재한다.
+
+
+
+
diff --git a/docs/chapter1/Ch01Keyword.txt b/docs/chapter1/Ch01Keyword.txt
new file mode 100644
index 0000000..e69de29