-
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
[지하철 노선도 미션] 박승한 미션 제출합니다. #114
Open
KOREAparksh
wants to merge
24
commits into
woowacourse:main
Choose a base branch
from
KOREAparksh:KOREAparksh
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주차 과제시기와 기말고사 시기가 곂쳐버렸습니다.
오늘 오전에서야 시작하게 되서 다른 분들과 달리 미션을 완성하지 못한 채 내버리네요.... 개인적으로도 수치스럽다고 생각합니다.😵
그래도!
주어진 시간 내에서 최선을 다했다고 생각합니다.
태어나서 이런 집중력은 처음 느껴봤습니다. 근 10시간을 코딩하고 있었군요.
그래도 완성하지 못했다는 것이 정말 속상합니다...
현재 진행상황
더 이야기하면 끝없을 것 같아 각설하고,
우선 완성된 코드가 아니기 때문에 어디까지 진행되었는지 말씀드려야 할 것 같습니다.
현재 비즈니스 로직을 제외한 역/노선/구간 뷰는 제대로 출력이 됩니다.
역과 관련된 비즈니스 로직은 구현완료하였습니다.
노선의 경우 노선등록과 삭제, 조회까지 가능하긴 하지만 구간을 생각하지 않고 작성한 코드여서,
상하종점지점 및 노선 내 역들은 저장이 되지 않습니다.
구간의 경우 새로운 클래스를 작성하여 진행하려 했으나 불필요한 코드 증가 및 데이터 저장이 있다고 생각되어 삭제하였습니다.
노선 클래스 내에서 다시 구현하기 위해 함수 등의 틀만 작성되어 있습니다. 내부 로직은 구현하지 못했습니다.
자바 컨벤션을 지키려 노력했으나 나중에 시간에 쫓겨 조급한 마음에 전부 지키지는 못했던 것 같아 매우 아쉽습니다.
특히 남들이 제 코드를 보면 "한번에 이해가 되고, 중복코드 없고, 흐름 있는 코드를 작성했구나"라고 느낄 수 있게 작성하고 싶었습니다.
이번 3주차 미션은 그러지 못한 것 같아 송구스럽습니다.
그래도
그래도 최대한 제가 바라는 코드스타일을 지키고자 여러 방법을 사용했습니다.
enum
2주차 때 사실 enum을 배워 써보고자 했지만 , FAQ에서
public static final
을 사용하는 문구가 있길래 그대로 상수처리해서 사용했었습니다.이번 3주차에서는 메인 뷰와 더불어 역/노선/구간 출력물들이 대부분 비슷한 것을 보고, 중복을 방지하고자 enum을 사용해보았습니다. 확실히 기존 상수처리보다 훨씬 편하고, 특히 자바 IDE에서 enum을 지원하여 작성하기 편했다는 생각이 들었습니다.
추상클래스
2주차에서 상속을 사용했었지만 중복코드 감소에 큰 이득을 보지는 못했었습니다.
이번에는 추상클래스를 활용해서 중복코드를 감소해보고자 하였고, 몇 개의 함수를 상속시킴으로써 이득을 보았습니다.
특히 추상메소드를 활용해서 여러 클래스들을 한번에 정리하는 이점도 확인했습니다.
3주동안..
짧은 시간이었지만 지키고자 했던 점, 아쉬운 점, 배운 점들을 작성해보고자 합니다.
정리를 하고 적는 것은 아니다보니 순서가 뒤죽박죽일 수 있습니다.
ㅁ 가이드(요구사항)
프리코스 미션을 진행하면서 "실무에서 개발자들에게 주어지는 요구사항명세서 혹은 기능명세서는 어떻게 적혀있을까?"라는 궁금증이
수시로 들었습니다. 만약 지금까지 진행한 프리코스 미션 요구사항처럼 주어진다면, 많은 문제점이 있지 않을까라는 생각이 들었기 때문입니다.
실무를 겪어본 적이 없어 모르겠지만 기능구현에 있어 중요한 예외처리, 이번 미션으로 예를 들자면 구간 등록 시 입력하는 역은 기존에 저장되어 있는 역 한정인지 아니면 새 역을 입력하면 자동으로 역에 저장까지 되어지는지에 대한 정보가 없어서 사실 초반에 주춤했습니다. 이런 점까지 보기 위해 미션을 일부러 짠 것이면 모르겠지만, 실무에서 이러한 문제가 생기면 사람들마다 해석하는 기준이 달라 문제가 생길 것 같았습니다. 이러한 예외처리 결정사항에 있어 어떤 프로세스로 대비하는지 알아보고 싶습니다.
ㅁ 최대한 주어진 것 그대로 활용하자
이번 3주간 기본으로 주어진 클래스를 거의 건들지 않고 사용해보려 했었습니다. 이전 자바 수업때 캡슐화 부분을 배우면서, 여러 팀원과 협업하여 진행하는 경우 상대의 코드가 입출력만 제대로 된다면 그 코드를 믿고 사용해보라는 교수님의 조언이 떠올랐기 때문입니다. 물론 추가사항이 발생하였지만 최대한 변경없이 해보고 싶었습니다. 이번 미션은 혼자 하는 미션이다보니 이점을 느끼지는 못했지만 다음에 팀 프로젝트가 생기면 다시 지켜보고자 합니다.
ㅁ 아이폰과 안드로이드
아이폰은 설정을 바꾸기 위해서는 설정 아이콘으로 들어가야 합니다. 모든 설정은 그 안에서 이루어집니다. 설정 내에서 원하는 것을 찾기엔 양이 많아 힘들 수 있지만, 어쨋든 그 안에 있기에 다른 곳을 살필 필요는 없습니다.
안드로이드는 이곳저곳에서 설정을 할 수 있습니다. 기본적인 설정은 설정 탭 내에 있지만, 심화된 설정, 예를 들어 통화 녹음 관련 설정 등은 통화에 들어가야 나오는 경우도 있습니다. 통화 설정은 통화 내에 들어가면 있다는 것은 알지만 여러 설정들을 같이 보고자 할 때는 굉장히 번거롭습니다.
저는 아이폰 설정 같은 코드를 짜보고자 했습니다. 가장 보기 좋은 예로 Constant가 있습니다. 우리가 작성한 미션의 입력 범위 등과 같이 설정 부분과 출력문장들은 전부 Constant 내에 넣었습니다. Constant 클래스는 매우 커질 수 있지만, 어쨋든 그 안에서만 해결하면 다른 코드를 볼 필요 없이 설정변경이 가능하게끔 작성해 보았습니다.
배운 점도 많고 아쉬운 점, 속상한 점도 많았던 3주였습니다.
힘들게 달려왔다고 생각합니다.
이번 시험 마무리 잘 해서 후회 없는 시간으로 만들어야겠습니다.
감사합니다.