diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 000000000..54e72b8a1
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,33 @@
+# Change Log
+
+이 프로젝트의 주목할만한 변화들은 모두 이곳에 기입합니다.
+작성 기준은 [AngularJS Commit Message Conventions](https://gist.github.com/stephenparish/9941e89d80e2bc58a153) 를 따르도록 합니다.
+
+---
+# 지하철 프로젝트
+
+feat(MainMenu.java): 초기 역과 노선 등록 기능 추가
+
+feat(MainMenu.java): 지하철 노선도 출력 기능 추가
+
+feat(SectionMenu.java): 구간 삭제 기능 추가
+
+feat(SectionMenu.java): 구간 추가 기능 추가
+
+feat(LineMenu.java): 노선 출력 기능 추가
+
+feat(LineMenu.java): 노선 삭제 기능 추가
+
+feat(LineMenu.java): 노선 추가 기능 추가
+
+feat(StationMenu.java): 역 출력 기능 추가
+
+feat(StationMenu.java): 역 삭제 기능 추가
+
+feat(StationMenu.java): 역 추가 기능 추가
+
+feat(Menu.java): 메뉴 입력 확인 기능 추가
+
+feat(Menu.java): 메뉴 순환 기능 추가
+
+docs(README.md): 구현할 기능 목록 추가
\ No newline at end of file
diff --git a/README.md b/README.md
index 00410ae50..5046bba2a 100644
--- a/README.md
+++ b/README.md
@@ -3,6 +3,26 @@
+## 구현할 기능 목록
+ - ~~메뉴 순환 기능~~
+ - ~~메뉴 유효 입력 확인 기능~~
+ - ~~메뉴 선택 기능~~
+
+ - ~~역 추가~~
+ - ~~역 삭제~~
+ - ~~역 출력~~
+
+ - ~~노선 추가~~
+ - ~~노선 삭제~~
+ - ~~노선 출력~~
+
+ - ~~구간 추가~~
+ - ~~구간 삭제~~
+
+ - ~~지하철 노선도 출력~~
+
+ - ~~초기 역과 노선 등록 기능~~
+
## 🚀 기능 요구사항
### 초기 설정
diff --git a/src/main/java/subway/Application.java b/src/main/java/subway/Application.java
index 0bcf786cc..053ccdd86 100644
--- a/src/main/java/subway/Application.java
+++ b/src/main/java/subway/Application.java
@@ -3,8 +3,10 @@
import java.util.Scanner;
public class Application {
+
public static void main(String[] args) {
final Scanner scanner = new Scanner(System.in);
// TODO: 프로그램 구현
+
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java
index f4d738d5a..fffcd30fb 100644
--- a/src/main/java/subway/domain/Line.java
+++ b/src/main/java/subway/domain/Line.java
@@ -10,6 +10,4 @@ public Line(String name) {
public String getName() {
return name;
}
-
- // 추가 기능 구현
}
diff --git a/src/main/java/subway/domain/Section.java b/src/main/java/subway/domain/Section.java
new file mode 100644
index 000000000..e45a9b285
--- /dev/null
+++ b/src/main/java/subway/domain/Section.java
@@ -0,0 +1,13 @@
+package subway.domain;
+
+public class Section {
+ private String name;
+
+ public Section(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/src/main/java/subway/domain/SectionRepository.java b/src/main/java/subway/domain/SectionRepository.java
new file mode 100644
index 000000000..bd1290bed
--- /dev/null
+++ b/src/main/java/subway/domain/SectionRepository.java
@@ -0,0 +1,22 @@
+package subway.domain;
+
+import java.util.*;
+
+public class SectionRepository {
+ private static final Map> sections = new HashMap<>();
+
+ public static Map> sections() {
+ return Collections.unmodifiableMap(sections);
+ }
+
+ public static void addSection(String lineName, Section section) {
+ if (!sections.containsKey(lineName)) {
+ sections.put(lineName, new ArrayList<>());
+ }
+ sections.get(lineName).add(section);
+ }
+
+ public static boolean deleteSectionByLineAndStation(String line, String station) {
+ return sections.get(line).removeIf(section -> Objects.equals(section.getName(), station));
+ }
+}
diff --git a/src/main/java/subway/domain/Station.java b/src/main/java/subway/domain/Station.java
index bdb142590..6df2edada 100644
--- a/src/main/java/subway/domain/Station.java
+++ b/src/main/java/subway/domain/Station.java
@@ -10,6 +10,4 @@ public Station(String name) {
public String getName() {
return name;
}
-
- // 추가 기능 구현
}