diff --git "a/1\354\243\274\354\260\250/git \353\252\205\353\240\271\354\226\264.md" "b/1\354\243\274\354\260\250/git \353\252\205\353\240\271\354\226\264.md"
new file mode 100644
index 00000000..c9bee55c
--- /dev/null
+++ "b/1\354\243\274\354\260\250/git \353\252\205\353\240\271\354\226\264.md"
@@ -0,0 +1,184 @@
+# git 명령어 정리
+## 1. git의 repository 구조
+- 작업 폴더(Working Directory)
+- 인덱스(Staging Area)
+- 저장소(Head-Repository)
+
+|작업 폴더|인덱스|저장소|
+|------|------|------|
+|실제 파일들로 이루어짐|준비 영역
(add)|최종 확정본
(commit)|
+
+## 2. git 명령어
+### - git init
+: 새로운 git 저장소(repository)를 생성
+- 현재 디렉토리를 기준으로 git 저장소 생성
+ -> 디렉토리 내부에 .git 디렉토리가 생성됨
+
+### - git config
+: 설정 내용을 확인 또는 변경
+- user.name과 user.email을 전역(--global)으로 설정
+```
+$ git config --global user.name "username"
+$ git config --global user.email "useremail"
+```
+- 전역(--global)으로 설정된 user.name과 user.email을 삭제
+```
+$ git config --unset --global user.name
+$ git config --unset --global user.email
+```
+- 전체 config 리스트 보기
+```
+$ git config --list
+```
+
+### - git status
+: 파일의 상태(작업 폴더와 인덱스의 상태)를 확인
+
+### - git add
+: 작업 폴더상의 변경을 인덱스에 추가
+- 작업 폴더의 변경 내용의 일부만 인덱스에 넘김
+```
+$ git add <파일/디렉토리 경로>
+```
+- 현재 폴더의 모든 변경 내용을 인덱스로 넘김
+```
+$ git add .
+```
+- 작업 폴더 내의 모든 변경 내용을 인덱스로 넘김
+```
+$ git add -A
+```
+> - **git add -A** 는 작업 폴더 상에 어디에 위치하든 항상 동일하게 모든 변경 내용을 인덱스로 넘김
+- **git add .** 는 명령어를 실행한 폴더 이하에서 발생한 변경 내용만 포함하며, 해당 폴더 기준으로 상위 폴더의 변경 내용을 포함하지 않고 넘김
+
+- 각 변경 사항을 터미널에서 직접 눈으로 하나씩 확인하면서 인덱스로 넘기거나 또는 제외함
+```
+$ git add -p
+```
+
+### - git rm
+: 파일을 삭제
+- 작업 폴더에는 파일을 남겨두고 인덱스에서만 파일 제거
+```
+$ git rm --cached
+```
+
+### - git commit
+: 변경된 내용을 저장소에 추가
+- 에디터를 열지 않고 터미널에서 바로 메시지를 입력
+```
+$ git commit -m "설명"
+```
+- 신규 파일을 제외하고 트래킹하는 모든 파일의 변경사항을 인덱스에 넘김과 동시에 저장소에 넘김
+```
+$ git commit -am "설명"
+```
+- 이전 commit에 현재 변경 내용 추가
+ -> 에디터가 뜨면서 마지막 커밋 메시지를 수정하는 화면이 나오면 저장하고 에디터를 닫으면(:wq) 이전 커밋에 변경내용이 추가됨
+```
+$ git commit --amend
+```
+
+### - git log
+: 커밋 기록 조회
+-> 가장 위에 나오는 내역이 가장 최근 내역
+
+### - git reset
+: 특정 지점의 과거 커밋으로 이동하고 이동된 이후의 커밋 삭제
+- 돌아가려는 커밋으로 돌아가서 그 이후의 모든 내용을 삭제
+```
+$ git reset --hard "돌아가려는 커밋"
+```
+- 돌아가려는 커밋으로 돌아가서 그 이후의 내용이 지워지지 않고, 해당 내용의 인덱스도 지워지지 않음
+```
+$ git reset --soft "돌아가려는 커밋"
+```
+- git reset의 default값으로, 돌아가려는 커밋으로 돌아가서 그 이후의 내용들은 남아있지만 인덱스는 초기화됨
+```
+$ git reset --mixed "돌아가려는 커밋"
+```
+
+### - git revert
+: 특정 지점의 과거 커밋으로 이동하고 변경 내역을 유지
+- 커밋을 되돌림**(이력이 남음)**
+```
+$ git revert "되돌릴 커밋"
+```
+
+### - git branch
+: 현재 내가 위치한(로컬에서의) 브랜치 확인
+- 브랜치 생성
+```
+$ git branch "브랜치명"
+```
+- 브랜치 삭제
+```
+$ git brach -d "브랜치명"
+```
+- 로컬+원격 브랜치 확인
+```
+$ git branch -a
+```
+
+### - git checkout
+: 브랜치로 이동
+- 해당 브랜치로 이동
+```
+$ git checkout "브랜치명"
+```
+- 브랜치 생성 후 해당 브랜치로 바로 이동
+```
+$ git checkout -b "브랜치명"
+```
+
+### - git merge
+: 브랜치의 변화 가져옴
+```
+$ git merge "가져올 브랜치명`
+```
+
+### - git rebase
+: 현재 브랜치의 base를 합칠 브랜치가 가리키는 커밋을 가리키게 하고 저장해두었던 변경사항을 차례대로 적용
+```
+$ git rebase "합칠 브랜치명"
+```
+
+### - git remote
+: 원격 저장소 관리
+- 원격 저장소 주소 등록
+```
+$ git remote add "원격저장소명" "주소"
+```
+- 원격 저장소 주소 삭제
+```
+$ git remote remove "원격저장소명"
+```
+
+### - git push
+: 원격저장소에 커밋을 저장
+- 폴더의 현 브랜치에 커밋된 내용을 "원경저장소명"의 "브랜치명"에 올림
+```
+$ git push "원격저장소명" "브랜치명"
+```
+- 원격저장소의 브랜치 삭제
+```
+$ git push -d "원격저장소명" "브랜치명"
+```
+
+### - git pull
+: 원격저장소의 커밋들을 로컬저장소로 가져와서 merge
+- "원격저장소명"의 내용이 "브랜치명"으로 복사됨
+```
+$ git pull "원격저장소명" "브랜치명"
+```
+
+### - git clone
+: 원격저장소의 프로젝트를 내려받음
+- 저장소의 내용을 다운로드받고 자동으로 init됨
+```
+$ git clone "저장소주소"
+```
+
+### - git fetch
+: 원격저장소의 커밋들을 로컬저장소로 가져옴
+-> 원래 내용과 바뀐 내용과의 차이를 알 수 있음
\ No newline at end of file
diff --git "a/1\354\243\274\354\260\250/\353\247\210\355\201\254\353\213\244\354\232\264 \354\236\221\354\204\261\353\262\225.md" "b/1\354\243\274\354\260\250/\353\247\210\355\201\254\353\213\244\354\232\264 \354\236\221\354\204\261\353\262\225.md"
new file mode 100644
index 00000000..87c18b18
--- /dev/null
+++ "b/1\354\243\274\354\260\250/\353\247\210\355\201\254\353\213\244\354\232\264 \354\236\221\354\204\261\353\262\225.md"
@@ -0,0 +1,214 @@
+# 마크다운 작성법
+## 1. 마크다운이란
+Markdown은 텍스트 기반의 마크업언어로 2004년 존그루버에 의해 만들어졌으며 쉽게 쓰고 읽을 수 있으며 HTMLFH 변환이 가능하다. 특수기호와 문자를 이용한 매우 간단한 구조의 문법을 사용하여 웹에서도 보다 빠르게 컨텐츠를 작성하고 보다 직관적으로 인식할 수 있다. 마크다운이 최근 각광받기 시작한 이유는 깃허브([https://github.com](https://github.com)) 덕분이다. 깃허브의 저장소 Repository에 과한 정보를 기록하는 README.md라는 깃허브를 사용하는 사람이라면 누구나 가장 먼저 접하게 되는 마크다운 문서였다. 마크다운을 통해서 설치방법, 소스코드 설명, 이슈 등을 간단하게 기록하고 가독성을 높일 수 있다는 강점이 부각되면서 점점 여러 곳으로 퍼져가게 된다.
+
+### 1-1.마크다운의 장점
+```
+1. 간결하다.
+2. 별도의 도구없이 작성 가능하다.
+3. 다양한 형태로 변환이 가능하다.
+4. 텍스트(Text)로 저장되기 때문에 용량이 적어 보관이 용이하다.
+5. 텍스트파일이기 때문에 버전관리 시스템을 이용하여 변경 이력을 관리할 수 있다.
+6. 지원하는 프로그램과 플랫폼이 다양하다.
+```
+### 1-2. 마크다운의 단점
+```
+1. 표준이 없다.
+2. 표준이 없기 때문에 도구에 따라서 변환방식이나 생성물이 다르다.
+3. 모든 HTML 마크업을 대신하지 못한다.
+```
+
+## 2. 마크다운 문법
+### 2-1. 헤더
+- 글머리 : 1~6까지 지원
+```
+# 헤더1
+## 헤더2
+### 헤더3
+#### 헤더4
+##### 헤더5
+###### 헤더6
+```
+>
+# 헤더1
+## 헤더2
+### 헤더3
+#### 헤더4
+##### 헤더5
+###### 헤더6
+
+### 2-2. 블럭인용
+```
+> 블럭인용
+```
+> 블럭인용
+
+블럭인용은 연쇄적으로도 가능하다.
+```
+> 블럭인용
+>> 블럭인용
+>>> 블럭인용
+```
+> 블럭인용
+>> 블럭인용
+>>> 블럭인용
+
+또한 이 안에서 다른 마크다운 요소를 포함할 수도 있다.
+```
+> ### 헤더3
+ - 리스트
+ ```
+ 코드
+ ```
+```
+
+> ### 헤더3
+- 리스트
+```
+코드
+```
+
+### 2-3. 목록
+- 순서있는 목록(번호)
+ 순서있는 목록은 숫자와 점을 사용한다.
+```
+1. 첫 번째
+2. 두 번째
+3. 세 번째
+```
+1. 첫 번째
+2. 두 번째
+3. 세 번째
+
+현재까지는 어떤 번호를 입력해도 순서는 내림차순으로 정의된다.
+
+- 순서없는 목록(*, +, -)
+```
+* 안녕
+ * 잘가
+ * 그래
+
++ 안녕
+ + 잘가
+ + 그래
+
+- 안녕
+ - 잘가
+ - 그래
+```
+* 안녕
+ * 잘가
+ * 그래
+
++ 안녕
+ + 잘가
+ + 그래
+
+- 안녕
+ - 잘가
+ - 그래
+
+혼합해서 사용하는 것도 가능하다.
+
+### 2-4. 코드
+코드블럭을 다음 2가지 방식으로 사용할 수 있다.
+- ```
{code}
```를 이용
+```
+
+
+public class practice {
+ public static void main(String [] args){
+ System.out.println("Pull Request Test");
+ }
+}
+
+
+```
+
+
+public class practice {
+ public static void main(String [] args){
+ System.out.println("Pull Request Test");
+ }
+}
+
+
+- 코드블럭코드(```)를 이용
+
+### 2-5. 수평선
+```
+
+* * *
+***
+*****
+- - -
+-----------------------------------------
+```
+
+### 2-6. 링크
+- 참조링크
+```
+[link keyword][id]
+
+[id]: URL "Optional Title here"
+```
+링크 : [velog@minide][minidelink]
+
+[minidelink]: https://velog.io/@minide "Go minide"
+
+- 외부링크
+```
+[Title](link)
+```
+링크 : [velog@minide](https://velog.io/@minide "Go minide")
+- 자동연결
+ 일반적인 URL 혹은 이메일주소인 경우 적절한 형식으로 링크를 형성한다.
+```
+외부링크 :
+이메일링크 :
+```
+
+### 2-7. 강조
+```
+*single asterisks*
+_single underscores_
+**double asterisks**
+__double underscores__
+~~cancelline~~
+```
+*single asterisks*
+_single underscores_
+**double asterisks**
+__double underscores__
+~~cancelline~~
+> 문장 중간에 사용할 경우 **띄어쓰기**를 사용하는 것이 좋다.
+
+### 2-8. 이미지
+```
+
+
+```
+
+
+
+
+- 이미지에 링크 삽입
+```
+[](URL)
+```
+> 이미지 URL : https://github.com/jeongyuneo/2021-Java-Study/blob/jeongyun/image/testimg.jpeg
+
+[](https://github.com/jeongyuneo/2021-Java-Study/blob/jeongyun/image/testimg.jpeg)
+
+- 이미지 사이즈 조절
+```
+
+```
+
+
+```
+
+
+```
+
+참고 : [마크다운 markdown 작성법](https://gist.github.com/ihoneymon/652be052a0727ad59601)
\ No newline at end of file
diff --git "a/2\354\243\274\354\260\250/intelliJ IDEA Live Template.md" "b/2\354\243\274\354\260\250/intelliJ IDEA Live Template.md"
new file mode 100644
index 00000000..bef89e64
--- /dev/null
+++ "b/2\354\243\274\354\260\250/intelliJ IDEA Live Template.md"
@@ -0,0 +1,63 @@
+# [Java] intelliJ IDEA Live Template
+
+## 1. Live Template이란
+특정 **Abbreviation(축약형)**값을 입력하면 자주 쓰는 코드 구성을 불러오는 기능이다.
+
+## 2. Live Template 확인하기
+1. 우측 상단에 [IntelliJ IDEA] - [Preferences...]를 클린한다.
+
+[](https://github.com/jeongyuneo/2021-Java-Study/blob/jeongyun/image/preferences.jpeg)
+
+2. [Editor] - [Live Templates]를 선택하거나 우측 검색창에 'Live Templates'를 검색한다.
+
+[](https://github.com/jeongyuneo/2021-Java-Study/blob/jeongyun/image/livetemplates.jpeg)
+
+3. 원하는 언어를 찾아 Live Template를 확인한다.
+
+## 3. 자주 쓰이는 Java Live Template
+### 3-1. psvm + Tab
+```java
+public static void main(String[] args){
+
+}
+```
+### 3-2. main + Tab
+```java
+public static void main(String[] args){
+
+}
+```
+### 3-3. sout + Tab
+```java
+System.out.println();
+```
+### 3-4. soutf + Tab
+```java
+System.out.printf("");
+```
+### 3-5. soutp + Tab
+```java
+System.out.println(method parameter names and values);
+```
+### 3-6. soutm + Tab
+```java
+System.out.println("curren class and method names");
+```
+### 3-7. soutv + Tab
+```java
+System.out.println(values);
+```
+### 3-8. serr + Tab
+```java
+System.err.println();
+```
+### 3-9. St + Tab
+```java
+String
+```
+### 3-10. fori + Tab
+```java
+for (int i = 0; i < ; i++) {
+
+}
+```
\ No newline at end of file
diff --git "a/2\354\243\274\354\260\250/intelliJ IDEA \353\213\250\354\266\225\355\202\244.md" "b/2\354\243\274\354\260\250/intelliJ IDEA \353\213\250\354\266\225\355\202\244.md"
new file mode 100644
index 00000000..3b939552
--- /dev/null
+++ "b/2\354\243\274\354\260\250/intelliJ IDEA \353\213\250\354\266\225\355\202\244.md"
@@ -0,0 +1,84 @@
+# intelliJ IDEA 단축키 정리 - Mac
+## 1. Run and Debug
+### - Control + Option + R
+: 코드 실행
+### - Control + R
+: 현재 코드 실행
+### - Control + Option + D
+: 코드 디버깅
+### - Control + D
+: 현재 코드 디버깅
+### - Option + Enter
+: 오류 해결 솔루션 제시
+
+## 2. Focus
+### - Command + 방향키(좌, 우)
+: 라인 맨 왼쪽 혹은 오른쪽으로 이동
+(= Fn + 방향키(좌, 우))
+### - Option + 방향키(좌, 우)
+: 단어 맨 왼쪽 혹은 오른쪽으로 이동
+### - Option + 방향키(위, 아래)
+: 포커스 확장 및 축소
+### - Option + Option + 방향키(위, 아래)
+: 멀티 포커스
+
+## 3. Editor
+### - Fn + 방향키(위, 아래)
+: 페이지 위 혹은 아래로 이동
+### - Option + Shift + 방향키(위, 아래)
+: 라인 단위로 위 혹은 아래로 이동
+### - Command + Shift + 방향키(위, 아래)
+: 구문 단위로 위 혹은 아래로 이동
+### - Command + Shift + 방향키(좌, 우)
+: 커서부터 맨 왼쪽 혹은 오른쪽까지 선택
+### - Command + Shift + J
+: 라인 합치기
+### - Command + Backspace
+: 라인 삭제
+### - Command + N
+: 생성자/getter/setter 자동완성
+### - Control + Option + O
+: import 정리
+
+## 4. Finder
+### - F2
+: 오류난 곳으로 이동
+### - Command + F
+: 현재 파일에서 검색
+### - Command + R
+: 현재 파일에서 교체
+### - Command + Shift + F
+: 전체에서 검색
+### - Command + Shift + R
+: 전체에서 교체
+### - Shift + Control + N
+: 파일 검색
+### - Command + Option +O
+: 메소드 검색
+### - Command + Shift + A
+: 액션 검색
+### - Command + E
+: 최근 열었던 파일 목록
+### - Command + Shift + E
+: 최근 수정한 파일 목록
+### - Command + Control +G
+: 일치하는 단어 전체 선택
+### - Command + Shift + R
+: 일치하는 단어 전체 교체
+
+## 5. Refactor
+### - Fn + Shift + F6
+: 파일 이름 변경
+### - Command + Option + M
+: 메소드 분리
+### - Command + Option + c
+: 상수 분리
+### - Command + Option + F
+: 필드(객체변수) 분리
+### - Command + Option + V
+: 지역변수 분리
+### - Command + Option + L
+: 코드 컨벤션 체크
+> ### 코드 컨벤션(code convention)이란?
+
+가독성을 높이기 위한 코드를 작성하는 방법에 대한 규칙
\ No newline at end of file
diff --git "a/2\354\243\274\354\260\250/\354\236\220\353\260\224 \352\270\260\354\264\210.md" "b/2\354\243\274\354\260\250/\354\236\220\353\260\224 \352\270\260\354\264\210.md"
new file mode 100644
index 00000000..d3c4f4ec
--- /dev/null
+++ "b/2\354\243\274\354\260\250/\354\236\220\353\260\224 \352\270\260\354\264\210.md"
@@ -0,0 +1,98 @@
+# [Java] Java 기초
+## 1. JVM이란
+JVM이란 Java Virtual Machine의 줄임말로 Java Byte Code를 OS에 맞게 해석해주는 역할을 한다.
+> ### Java Byte Code
+자바 가상 머신(JVM)이 이해할 수 있는 언어로 변환된 자바 소스 코드
+- 운영체제별로 프로그램을 실행하고 관리하는 방법이 다르기 때문에 운영체제와 자바 프로그램을 중계하는 JVM을 두어 자바 프로그램이 **여러 운영체제에서 동일한 실행 결과**가 나오게 한다.
+- Java Byte Code의 확장자는 .class
+
+따라서 OS에 종속적이지 않고 Java 파일 하나만 만들면 어느 디바이스든 JVM 위에서 실행할 수 있다는 것이 Java의 큰 장점이다.
+
+## 2. JVM 구성 요소
+JVM은 크게 4가지 구성으로 나누어진다.
+1. Class Loader
+2. Execution Engine
+3. Garbage Collector
+4. Runtime Data Area
+
+
+### 2-1. Class Loader
+: Java 컴파일러에 의해 Byte Code로 변환된 클래스를 읽어들여 Runtime Data Area에 적재한다.
+### 2-2. Execution Engine
+: Class Loader에 의해 Runtime Data Area에 적재된 클래스(Byte Code)를 기계어로 변환하고 실행한다.
+### 2-3. Garbage Collector
+: Garbage Collector(GC)는 Heap 영역에 생성되어 있는 객체들 중 참조되지 않은 객체를 찾아 제거한다.
+- GC가 실행되는 시간은 정해져 있지 않다. 특히 Full GC가 발생하는 경우, GC를 제외한 모든 스레드가 중지되기 때문에 장애가 발생할 수 있다.
+### 2-4. Runtime Data Area
+: JVM의 메모리 영역으로, Java 애플리케이션을 실행할 때 사용되는 데이터들을 적재한다.
+- Method Area
+ : 클래스 정보가 저장되는 공간
+- Heap Area
+ : new 키워드에 의해 생성되는 클래스와 배열 등이 저장되는 공간
+- Stack Area
+ : 지역 변수, 파라미터, 리턴 값, 연산에 사용되는 임시 값 등이 생성되는 영역
+- PC Register
+ : 스레드가 생성될 때마다 생성되며, 현재 실행 중인 주소와 명령을 저장하는 영역
+- Native Method Stack
+ : Java 이외의 코드(JNI)가 저장되는 공간
+
+## 3. 컴파일하는 방법
+terminal창에서 자바 코드를 실행해보기 위해 "hello, world!"를 출력하는 간단한 예제를 작성하였다.
+먼저, javaTest파일이 존재하는 디렉토리로 이동해야하기 때문에 경로를 복사해준다.
+
+> 복사한 파일 경로 : /Users/eojeong-yun/IdeaProjects/javastudy/src/main/java/javaTest.java
+
+복사한 파일의 경로로 이동할때는 마지막에 있는 javaTest.java는 디렉토리가 아니기 때문에 지워야한다.
+
+해당 디렉토리로 옮겨서 하위 목록을 보면 javaTest.java라는 파일이 하나 존재한다.
+아래 코드를 입력해주고 다시 목록을 봤을 때 javaTest.class라는 파일이 생성됐으면 컴파일에 성공한 것이다.
+```
+$ javac 파일명.java
+```
+
+
+## 4. 실행하는 방법
+### 4-1. 컴파일한 후 실행하는 방법
+디렉토리 하위 목록을 보면 .java 파일과 .class 파일이 있는 걸 알 수 있다.
+
+
+아래 코드를 입력하면 코드가 실행된다.
+```
+$ java 파일명
+```
+
+
+### 4-2. 컴파일하지 않고 실행하는 방법
+컴파일을 하지 않았을 때도 자바 코드를 실행해볼 수 있다.
+컴파일을 하지 않았을 때는 아래와 같이 Java Byte Code가 없다는 걸 확인할 수 있다.
+
+이럴 때는 아래와 같이 코드 파일에 확장자명까지 추가해주면 된다.
+```
+$ java 파일명.java
+```
+
+
+## 5. JIT 컴파일러
+### 5-1. JIT 컴파일러란
+JIT란 Just In Time의 약자로, JIT 컴파일러는 **프로그램을 실행하는 시점에(실시간으로) 기계어로 번역**하는 컴파일러이다.
+- "한 번 작성하면 어디에서나 실행"이라는 자바의 장점의 핵심인 Byte Code는 애플리케이션에 대한 적절한 기본 명령어로 변환되는 방식에 따라 애플리케이션의 속도에 큰 영향을 미친다.
+ - JVM의 표준 구현인 Byte Code로 해석하면 프로그램 실행 속도가 느려진다. 따라서 성능을 향상시키기 위해 JIT 컴파일러는 런타임에 JVM과 상호 작용하고 적절한 Byte Code 시퀀스를 반복적으로 해석하고 상대적으로 긴 변환 프로세스의 패널티를 초래하는 것과는 반대로 원시 코드를 실행할 수 있어 실행 속도의 성능 향상으로 이어질 수 있다.
+ - 메소드가 덜 자주 실행되지 않는 한, JIT 컴파일러가 Byte Code를 컴파일하는 데 걸리는 시간은 전체 실행 시간에 추가되며, JIT에 의해 컴파일된 메소드가 자주 호출되지 않으면 Byte Code를 실행하는 인터프리터보다 실행 시간이 길어질 수 있다.
+- JIT 컴파일러는 Byte Code를 Native Code로 컴파일할 때 특정 최적화를 수행한다. JIT 컴파일러는 일련의 Byte Code를 Native Code로 변환하므로 몇 가지 간단한 최적화를 수행할 수 있다.
+ - JIT 컴파일러가 수행하는 일반적인 최적화 중 일부는 데이터 분석, 스택 작업에서 레지스터 작업으로의 변환, 레지스터 할당에 의한 메모리 액세스 감소, 공통 하위 표현식 제거 등이다.
+ - JIT 컴파일러가 수행하는 최적화 수준이 높을 수록 실행 단계에서 더 많으 시간을 소비한다. 따라서 JIT 컴파일러는 실행 시간에 추가되는 오버 헤드와 프로그램에 대한 제한된 보기만 가지고 있기 때문에 정적 컴파일러가 수행하는 모든 최적화를 수행할 여유가 없다.
+
+> JIT 컴파일러는 같은 코드를 매번 해석하지 않고 실행할 때 컴파일하면서 해당 코드를 캐싱해버린 후, 바뀐 부분만 컴파일하고 나머지는 캐싱된 코드를 사용한다.
+**따라서, 인터프리터의 속도를 개선할 수 있다.**
+
+### 5-2. JIT 동작 원리
+JIT 컴파일러는 런타임 시 Java 애플리케이션의 성능을 향상시키는 JRE(Java Runtime Environment)의 구성요소이다. Java 프로그램은 Byte Code를 포함하는 클래스로 구성되는데, 런타임에 JVM은 클래스 파일을 로드하고 각 개별 Byte Code의 의미를 결정하고 적절한 계산을 수행한다. 해석 중 추가 프로세서 및 메모리 사용량은 Java 애플리케이션보다 느리게 수행됨을 의미한다. JIT 컴파일러는 런타임에 Byte Code를 Native Code로 컴파일하여 Java 프로그램의 성능을 향상시킨다.
+
+
+## 6. JDK와 JRE의 차이
+- JDK(Java Development Kit)는 자바 개발 키트이다.
+ JDK = JVM + 라이브러리 API + 컴파일러
+- JRE(Java Runtime Environment)는 자바 실행 환경이다.
+ JRE = JVM + 라이브러리 API
+
+> 자바 프로그램을 개발하려면 JDK를 사용하면 되고, 개발된 프로그램을 실행만 한다면 JRE만 설치하면 된다.
\ No newline at end of file
diff --git a/README.md b/README.md
index e0939477..fa26737c 100644
--- a/README.md
+++ b/README.md
@@ -11,4 +11,4 @@
## 결과
-### 1주차
+### 1주차
\ No newline at end of file
diff --git a/image/livetemplates.jpeg b/image/livetemplates.jpeg
new file mode 100644
index 00000000..72df1649
Binary files /dev/null and b/image/livetemplates.jpeg differ
diff --git a/image/preferences.jpeg b/image/preferences.jpeg
new file mode 100644
index 00000000..60ee8f20
Binary files /dev/null and b/image/preferences.jpeg differ
diff --git a/image/testimg.jpeg b/image/testimg.jpeg
new file mode 100644
index 00000000..c09473f6
Binary files /dev/null and b/image/testimg.jpeg differ