diff --git a/README.md b/README.md
index 536908281e34472ae085df7e30ebd800e152273c..4e4a3811e52bb1a6f4b234bf358e973923e1aea6 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,33 @@
 
 실전코딩2 실습
 
+## 목차
+
+- [printf](#printf)
+  * [stdio.h](#stdioh)
+    + [stderr](#stderr)
+    + [stdout](#stdout)
+    + [stdin](#stdin)
+  * [redirections](#redirections)
+- [three files](#three-files)
+- [GNU compiler options](#gnu-compiler-options)
+  * [1. compiler and interpreter difference](#1-compiler-and-interpreter-difference)
+  * [2. gcc command options](#2-gcc-command-options)
+- [make](#make)
+  * [Makefile](#makefile)
+  * [Internal Macro](#internal-macro)
+- [cmake](#cmake)
+- [Tips](#tips)
+- [Tools](#tools)
+- [Reference README.md](#reference-readmemd)
+  * [mutex folder README.md](#mutex-folder-readmemd)
+  * [pointer folder README.md](#pointer-folder-readmemd)
+  * [sw testing folder README.md](#sw-testing-folder-readmemd)
+  * [thread folder README.md](#thread-folder-readmemd)
+
+
+
+
 ## printf
 
 ### stdio.h
@@ -22,7 +49,7 @@
 * 표준 입력 스트림
 * stream number 0
 
-### 리디렉션
+### redirections
 | 방향 | 기호 | 방법 | 설명 |
 | ---- | ---- | ---- | ---- |
 | 표준출력 | > | 명령어>파일 | 명령어의 표준 출력 스트림을 파일로 설정(파일로 내용을 출력) |
@@ -35,7 +62,7 @@
     $ man printf (예시)
 ```
 
-## three_files
+## three files
 
 PRINT_ID가 정의되어 있으면 학번을 출력, 아니면 이름을 출력
 
@@ -54,9 +81,9 @@ PRINT_ID가 정의되어 있으면 학번을 출력, 아니면 이름을 출력
     #ifdef blabla : blabla가 정의되어 있다면 해당 코드 컴파일
 ```
 
-## GNU 컴파일러 옵션 활용
+## GNU compiler options
 
-### 1. compiler, interpreter 차이점
+### 1. compiler and interpreter difference
 * 정의
 
 interpreter는 프로그래밍 언어의 소스코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말함
@@ -75,7 +102,7 @@ compiler는 전체소스코드를 보고 명령어를 수집하고 재구성하
 | 효율성 | 함께 번역되면 계속 사용가능하므로 효율성 좋음 | 실행할때마다 번역해야하므로 효율성 좋지 않음 |
 | 기억 장소 | 많이 필요함 | 적게 필요함 |
 
-### 2. gcc 명령어 옵션
+### 2. gcc command options
 * (1) -E : 전처리만 실행하며 컴파일이나 어셈블 하지 않음
 
 ```
@@ -182,7 +209,7 @@ make란?
     <tab> command
 ```
 
-### 내장 매크로 (Internal Macro)
+### Internal Macro
 * 현재의 target 파일명
 ```
     $@
@@ -239,7 +266,7 @@ $ cmake -H. -Bbuild
 ```
 
 
-### 추가 Tips & 기억해야할 사항
+## Tips
 * touch의 기능 두가지
 1. 빈파일 만들기
 2. 이미 존재하는 파일은 수정시간을 업데이트
@@ -275,9 +302,17 @@ int main()
 위 코드는 Nayoung이라고 인쇄하는 프로그램입니다.
 
 
-### 추가 README.md !
-### mutex folder README.md->(https://git.ajou.ac.kr/NaYoung/battle_c/-/tree/master/mutex)
-### pointer folder README.md->(https://git.ajou.ac.kr/NaYoung/battle_c/-/tree/master/pointer)
-### sw_testing folder README.md->(https://git.ajou.ac.kr/NaYoung/battle_c/-/tree/master/sw_testing)
-### thread folder README.md->(https://git.ajou.ac.kr/NaYoung/battle_c/-/tree/master/thread)
+## Reference README.md
+
+### mutex folder README.md
+* (https://git.ajou.ac.kr/NaYoung/battle_c/-/tree/master/mutex)
+
+### pointer folder README.md
+* (https://git.ajou.ac.kr/NaYoung/battle_c/-/tree/master/pointer)
+
+### sw testing folder README.md
+* (https://git.ajou.ac.kr/NaYoung/battle_c/-/tree/master/sw_testing)
+
+### thread folder README.md
+* (https://git.ajou.ac.kr/NaYoung/battle_c/-/tree/master/thread)