diff --git a/mission/chapter02/java_mission.md b/mission/chapter02/java_mission.md
new file mode 100644
index 0000000..58fe9f1
--- /dev/null
+++ b/mission/chapter02/java_mission.md
@@ -0,0 +1,59 @@
+## ✅ static
+static 키워드는 클래스 멤버(변수 & 메서드)에 대해 사용되는 키워드로,
+특정 객체가 아닌 클래스 자체에 속하는 것을 의미한다.
+static을 사용하면 클래스 로딩 시점에 메모리 할당이 이루어지며,
+해당 클래스의 모든 인스턴스에 의해 공유된다.
+
+### ✔️ 특징
+* 클래스 수준의 변수 및 메소드
+ * 'static' 변수와 메소드는 클래스 레벨에 존재하므로 클래스의 모든 인스턴스에 공유된다.
+ * 인스턴스를 따로 생성하지 않고도 클래스 이름만으로 직접 호출할 수 있다.
+* 인스턴스화 없이 사용 가능
+ * 인스턴스를 따로 생성하지 않고도 직접 접근하거나 사용할 수 있다.
+ * ex, System.out.println(); 에서 'out' 은 'System' 클래스의 'static' 멤버이기 때문에
+ 따로 'System' 이라는 객체를 생성할 필요 없이 바로 클래스 단위에서 사용할 수 있다.
+
+### ✔️ 주의사항
+* 'static' 변수는 모든 인스턴스에 의해 공유되므로, 여러 스레드에서 동시에 접근 시 동기화 문제가 발생할 수 있다.
+* 너무 많은 'static' 멤버를 사용하면 객체 지향의 장점을 잃을 수 있다.
+---
+
+## ✅ JVM 메모리 & Class Loader
+### ✔️ JVM이란❓
+* JVM은 Java Virtual Machine의 약자로, 자바 가상 머신이라고 부른다.
+* 자바와 운영체제 사이에서 중개자 역할을 수행하며, 자바가 운영체제에 구애 받지 않고 프로그램을 실행할 수 있도록 도와준다.
+* 가비지 컬렉터를 사용한 메모리 관리도 자동으로 수행되며, 다른 하드웨어와 다르게 레지스터 기반이 아니라 스택 기반으로 동작한다.
+
+### ✔️ 자바 프로그램 실행 단계
+Java Code(.java) ➡️ JAVAC compiler ➡️ Byte Code(.class) ➡️ JVM ➡️ 각 운영체제
+* 먼저, 자바 컴파일러에 의해 자바 소스 파일은 바이트 코드로 변환된다.
+* 이러한 바이트 코드를 JVM에서 읽어들인 다음에, 내부 과정을 거쳐서 어떤 운영체제 간에 프로그램을 실행할 수 있도록 만들어 준다.
+
+### ✔️ Class Loader
+* JVM 내로 클래스 파일을 로드하고, 링크를 통해 배치하는 작업을 수행하는 모듈.
+* 런타임 시에 동적으로 클래스를 로드한다.
+
+### ✔️ Class Loader 와 static 간의 관계
+* 클래스 로더는 프로그램 실행 중 클래스가 처음 참조될 때 메모리에 클래스를 로드하고 Method 영역에 저장된다.
+* 이 과정에서 'static' 변수는 초기화 되고, 'static' 초기화 블록이 생성된다.
+
+❓그러면 static이 아닌 인스턴스 멤버의 메모리 할당 과정은 어떻게 될까?
+* 객체는 Heap 영역에 할당된다. Heap은 동적으로 생성되는 객체들이 저장되는 영역이다.
+* 즉, 각 객체마다 자신만의 인스턴스 변수 공간을 가진다.
+---
+
+## ✅ Collection 인터페이스
+```collection```인터페이스는 자바에서 데이터를 저장하고 관리할 수 있도록 설계된 상위 레벨의 인터페이스이다.
+다양한 타입의 컬렉션을 만들 수 있도록 다른 인터페이스나 클래스를 확장하고 구현하는 기본 인터페이스이다.
+
+### ✔️ Collection 종류
+1. List (ArrayList, LinkedList, Vector)
+ * 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
+ * ArrayList: 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어서 조회 기능에 성능이 뛰어나다.
+2. Map (HashMap, HashTable, TreeMap)
+ * 키 (key), 값 (value)의 쌍으로 이루어진 데이터 집합이다.
+ * 순서가 유지되지 않으며, 키의 중복을 허용하지 않으나 값의 중복은 허용된다.
+ * HashMap: 중복과 순서가 허용되지 않으며 null 값이 올 수 있다.
+3. Set (HashSet, TreeSet)
+ * 순서를 유지하지 않는 데이터의 집합으로, 데이터의 중복을 허용하지 않는다.
+ * HashSet: 가장 빠른 임의 접근 속도, 순서를 예측할 수 없다.
\ No newline at end of file
diff --git a/mission/chapter02/mission.md b/mission/chapter02/mission.md
new file mode 100644
index 0000000..29d897b
--- /dev/null
+++ b/mission/chapter02/mission.md
@@ -0,0 +1,45 @@
+### ✅ 내가 진행 중, 진행 완료한 미션 모아서 보는 쿼리
+
+```sql
+SELECT m.reward, m.deadline, mission_spec
+FROM mission as m
+JOIN member_mission as mm ON m.id = mm.mission_id
+JOIN member as mem ON mm.member_id = mem.id
+WHERE mm.status = 'IN_PROGRESS' OR mm.status = 'DONE'
+LIMIT 15 OFFSET 0 * 15;
+```
+
+### ✅ 리뷰 작성하는 쿼리
+
+```sql
+INSERT INTO review VALUES ('{member_id}', '{store_id}', '{body}', '{score}');
+```
+
+### ✅ 홈 화면 쿼리
+
+```sql
+SELECT s.name, m.mission_spec, m.deadline
+FROM mission as m
+ JOIN store as s ON m.store_id = s.id
+ JOIN region as r ON s.region_id = r.id
+ JOIN member_mission as mm ON m.id = mm.mission_id
+WHERE r.name = '미추홀구'
+ AND mm.member_id = '{해당 멤버 id}'
+ AND mm.status = 'NOT_STARTED';
+AND m.deadline > NOW()
+ORDER BY m.deadline
+LIMIT 15 OFFSET 0;
+```
+
+### ✅ 마이페이지 화면 쿼리
+
+```sql
+// 이름, 이메일 휴대폰 번호, 포인트 조회 쿼리
+SELECT
+ name,
+ email,
+ COALESCE(phone_num, '미인증') as phone_num,
+ point
+FROM member;
+WHERE id = '{해당 멤버 id}';
+```
\ No newline at end of file