-
Notifications
You must be signed in to change notification settings - Fork 272
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
[지하철 노선도 미션] 이주혁 미션 제출합니다. #107
Open
JuHyuk-Lee
wants to merge
60
commits into
woowacourse:main
Choose a base branch
from
JuHyuk-Lee:JuHyuk-Lee
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
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주라는 시간이 정말 빨랐습니다. 그동안 스스로 고민할 수 있게 재미있는 주제로 과제들을 제출해주셔서 감사했습니다.
제 3주간의 여정은 다음과 같습니다.
1주차의 요구사항의 핵심은 기능을(함수)를 분리해라였습니다. 해당 내용을 참고하기 위해 [클린코드]라는 책을 참고해 미션을 진행하면서 함수의 분리 방법과, 이점을 배울 수 있었습니다.
다음으로 1주차에서 어려웠던 건, 기본적인 룰을 숙지하는 부분이었습니다.
Google Java Coding Style Guild를 지켜라, 커밋은 기능단위로 진행하라, 커밋 메세지 Convention을 지켜라의 요구 사항을 숙지하기 위해 2일이라는 시간이 필요했습니다.
또한, 처음에 기능 단위로 커밋을 진행하기 위해 처음부터 완벽한 기능 명세서를 작성하고, 완벽한 커밋 메세지를 남겨야 한다고 생각을 해서 모든 기능을 완벽하게 추출하기 전까지 선뜻 시작을 못해서 첫 시작까지 시간이 많이 필요했던 한 주였습니다. 그리고 이왕 배우는김에 Intellij도 배워보자라는 마음으로 첫 주차를 마무리했고, 함수를 분리하는 법, 코드의 가독성을 높이기 위한 방법에 대해서 많이 배울 수 있었습니다.
2주차의 요구사항의 핵심은 클래스(역할)을 분리해라였습니다.
해당 내용을 참고하기 위해 [객체지향의 사실과 오해]라는 책과 배달의 민족 블로그 생각하라, 객체지향처럼 이라는 포스팅을 참고해 미션을 진행했습니다.
해당 미션을 통해서 클래스는 단일 책임의 원칙을 지켜야 한다는 목표를 가지고 진행했으며, 클래스 분리에 대해서 진지하게 고민해볼 수 있어서 재미있는 미션이였습니다. 클래스를 적당히 추상화 후, 기능을 가지게 설계를 하다보니, 클래스의 단일 책임의 원칙을 지키기가 어려웠습니다. 그래서 참고 자료를 통해 메세지가 객체를 선택해야 한다는 방법으로 객체가 메세지를 선택하는게 아닌 메세지가 적절한 객체를 선택하도록 이라는 말에 대해 공감을 할 수 있었습니다.
추가로 기본 자바 api를 활용하기 위해 java stream에 대해서 공부를 진행했습니다.
3주차는 요구사항처럼 클래스를 분리하고, 관계를 맺는데 집중을했습니다. 처음에는 객체들을 추상화 후, 메세지를 인터페이스화해 구현을 진행했었습니다. 그러다가 인터페이스를 enum으로 변환하기 위해 enum을 공부했습니다.
또한 enum이 기능을 담당하도록 하기 위해 함수형 인터페이스를 마찬가지로 공부하고 적용했습니다.
해당 부분은 [모던 자바 인 액션] 책과 인터넷 블로그들을 참조했습니다.
온라인 코딩 테스트 후기 https://lee1535.tistory.com/143?category=822163
프리코스 1주차 회고 https://lee1535.tistory.com/144?category=822163
프리코스 2주차 회고 https://lee1535.tistory.com/147?category=822163