Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[지하철 노선도 미션] 임동혁 미션 제출합니다. #97

Open
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

LDH9327
Copy link

@LDH9327 LDH9327 commented Dec 15, 2020

안녕하세요.

3주차 미션 제출합니다.

이번 미션의 목표는 '여러 개의 클래스를 분리한 후 서로 관계를 맺어 하나의 프로그램을 완성하는 경험'이며, 이를 위해서 더 극단적인 연습도 필요할 것이라 하셨습니다.

아니나 다를까 README를 작성하며 프로그램을 어떻게 설계할지 고민하고 공부하는 데에만 일주일 중 절반이 흘렀습니다.

이전 미션에서는 처리해야 할 데이터의 양이 적기 때문에 굳이 체계적인 구조가 없더라도 구현이나 리팩토링에 큰 어려움이 없었습니다.

그러나 이번 미션에서는 처리해야 할 데이터의 양이 많아지면서 더 이상 주먹구구식으로 해결할 수 없었습니다.

MVC 구조를 구글링하고 이번 미션 패키지 구성과 클래스 분리에 적용해보았습니다.

아직은 흉내 내는 수준이지만, 비지니스 로직과 UI 로직을 분리한 것만으로도 이전과는 확연히 차이가 있었습니다.

또한, 반복을 피하기 위해 enum과 stream, Functional Interface를 적용해 보았습니다.

학습한 내용을 바로 미션에 적용하며 개선할 때면 재미를 느낄 수 있었습니다.

그러나 무엇이 잘못되었는지조차 알 수 없는 문제들에 부딪힐 때도 있었습니다.

과제를 제출하는 시점까지도 해결책은 찾지 못하였습니다.

좌절감을 느꼈지만, 이러한 감정은 더 잘하고자 하는 욕구로 바뀐다는 것은 프리코스에서 얻은 중요한 교훈 중의 하나입니다.

3주간의 프리코스에서 느낀점을 요약하자면 '더 잘하고 싶다' 입니다.

프리코스를 마치며, 3주 전의 제 모습을 떠올려보았습니다.

프리코스가 자바로 진행된다는 것을 듣고 1달 속성으로 주요 문법만 학습한 상태였습니다.

단순히 책의 목차별로 학습하며 의욕보다는 의무감으로 진도를 나갔습니다.

그러나 3주간의 프리코스에서는 항상 욕심이 생겼습니다.

1주차보다 더, 2주차보다 더, 내가 알고 있는 것보다 더.

짧은 시간이었지만 고생이 아닌 즐거움으로 기억하고 있습니다.

마지막 테스트를 통과하고 우아한 테크코스에 꼭 합격하고 싶습니다.

감사합니다.

DH Lim added 20 commits December 10, 2020 12:33
주요 내용
- Run(): 지하철 노선도 기능 실행
- startMain(): 메인화면 관리
- startStationManagement(): 역 관리
- startLineManagement(): 노선 관리
- startSectionManagement(): 구간 관리
주요 내용
- 구간의 집합(sections)을 line 객체의 멤버변수로 생성함
- addSectionByStation(): 역 이름으로 구간을 추가
- addSectionByOrderAndStation(): 순서와 역 이름으로 구간을 추가
-deleteSectionByName(): 역 이름으로 구간을 삭제
- 지하철역 추가: 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역
- 노선 추가: 2호선, 3호선, 신분당선
- 노선에 역 추가
  - 2호선: 교대역 - 강남역 - 역삼역
  - 3호선: 교대역 - 남부터미널역 - 양재역 - 매봉역
  - 신분당선: 강남역 - 양재역 - 양재시민의숲역
주요내용
- 메인, 역 관리, 노선 관리, 구간 관리 화면 Enum 생성
- 각 Enum마다 유효성 검사 메소드 생성
주요 예외 내용
이름 - 2글자 미만
이름 - 한글과 숫자 조합이 아닌 경우
이름 - '-역' 또는 '선'으로 끝나지 않는 경우
역, 노선 - 저장소에 없는 경우
역, 노선 - 이미 저장소에 있는 경우
구간순서 - 숫자가 아닌 경우
구간순서 - 구간의 길이를 벗어난 순서일 경우
구간의 집합(sections)에서 처음과 끝이 각각 상행, 하행 종점을 의미하므로 불필요한 중복 삭제
getNewLine(): 노선 등록시 등록중인 노선 호출
deleteStationInLine(): 모든 노선에서 역 삭제
isDuplicate(): 이미 저장되어있는 역인지 검사
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant