-
Notifications
You must be signed in to change notification settings - Fork 262
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
LDH9327
wants to merge
20
commits into
woowacourse:main
Choose a base branch
from
LDH9327:LDH
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
주요 내용 - 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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
안녕하세요.
3주차 미션 제출합니다.
이번 미션의 목표는 '여러 개의 클래스를 분리한 후 서로 관계를 맺어 하나의 프로그램을 완성하는 경험'이며, 이를 위해서 더 극단적인 연습도 필요할 것이라 하셨습니다.
아니나 다를까 README를 작성하며 프로그램을 어떻게 설계할지 고민하고 공부하는 데에만 일주일 중 절반이 흘렀습니다.
이전 미션에서는 처리해야 할 데이터의 양이 적기 때문에 굳이 체계적인 구조가 없더라도 구현이나 리팩토링에 큰 어려움이 없었습니다.
그러나 이번 미션에서는 처리해야 할 데이터의 양이 많아지면서 더 이상 주먹구구식으로 해결할 수 없었습니다.
MVC 구조를 구글링하고 이번 미션 패키지 구성과 클래스 분리에 적용해보았습니다.
아직은 흉내 내는 수준이지만, 비지니스 로직과 UI 로직을 분리한 것만으로도 이전과는 확연히 차이가 있었습니다.
또한, 반복을 피하기 위해 enum과 stream, Functional Interface를 적용해 보았습니다.
학습한 내용을 바로 미션에 적용하며 개선할 때면 재미를 느낄 수 있었습니다.
그러나 무엇이 잘못되었는지조차 알 수 없는 문제들에 부딪힐 때도 있었습니다.
과제를 제출하는 시점까지도 해결책은 찾지 못하였습니다.
좌절감을 느꼈지만, 이러한 감정은 더 잘하고자 하는 욕구로 바뀐다는 것은 프리코스에서 얻은 중요한 교훈 중의 하나입니다.
3주간의 프리코스에서 느낀점을 요약하자면 '더 잘하고 싶다' 입니다.
프리코스를 마치며, 3주 전의 제 모습을 떠올려보았습니다.
프리코스가 자바로 진행된다는 것을 듣고 1달 속성으로 주요 문법만 학습한 상태였습니다.
단순히 책의 목차별로 학습하며 의욕보다는 의무감으로 진도를 나갔습니다.
그러나 3주간의 프리코스에서는 항상 욕심이 생겼습니다.
1주차보다 더, 2주차보다 더, 내가 알고 있는 것보다 더.
짧은 시간이었지만 고생이 아닌 즐거움으로 기억하고 있습니다.
마지막 테스트를 통과하고 우아한 테크코스에 꼭 합격하고 싶습니다.
감사합니다.