Skip to content

Conversation

@ddongule
Copy link

✏️3주차 미션 후기

아쉬웠던 점

코드에 중복이 되면 안된다는 강박에 처음부터 중복 코드를 예상해 하나의 메소드로 만들었지만, 중간에 발생하는 예외 상황(달라지는 매개변수 등)에 유연하게 대처하기가 어려웠습니다. 지난 과제들로부터 처음부터 모든 기능 명세를 하는 것이 어렵다고 깨달았고, 이번 과제에서는 최대한 큰 기능부터 생각하여 새로 생기는 작은 기능들을 조금이나마 손쉽게 만들 수는 있었지만 위에 언급한 코드의 중복과 관련해 아직 더 많은 연습과 노력이 필요하다고 생각합니다. 비록 프리코스의 과제는 이번으로 마지막이지만, 앞으로 있을 수많은 프로젝트에서는 이번 프리코스를 통해 느낀 점들을 항상 유념하며 개발하려고 합니다.

잘한 점

함수가 한 가지 일만 잘 할 수 있도록 만들었고, 왜 이런 형태로 함수를 만들어야 하는지 이유에 대해 스스로 깨달았습니다. 주어진 가이드에서 함수를 작게 만들라는 점(15라인을 넘어가지 않도록 구현해라)을 강조했지만, 처음부터 그것이 저에게 와닿았던 것은 아닙니다. 코드 한 두줄이 전부인 함수가 저에게는 너무나 어색하게 보였습니다. 하지만 이번 과제들을 진행하면서 최대한 작은 함수를 만들고자 노력했고, 그 예로 document element 들을 손쉽게 만들어 주는 한두줄짜리 함수들을 만들어 utility의 형태로 사용했습니다. 이렇게 최대한 작고, 한 가지의 기능만을 잘 수행하는 함수를 만들어 사용하다 보니 스스로 느끼기에도 개발 속도가 눈에 띄게 빨라졌다고 느꼈습니다. 이러한 개발 방법론에 대해 직접 개발을 하며 몸으로 체감해 스스로 깨달았다는 점이 매우 뿌듯합니다.

🌿프리코스 미션을 진행하며 느낀 소감

1. 스스로 학습

먼저, 일주일에 한 개의 미션이 주어지고, 주어진 요구사항에 맞추어 스스로 학습해나가는 미션 형식의 프리코스 학습 방식이 굉장히 흥미로웠습니다. 공부를 위한 지식을 통으로 전달해주는 방식이 아니라, 배우는 사람이 스스로 깨닫고 올바른 방향으로 학습할 수 있는 바탕을 만들어준다는 점 또한 인상깊었습니다. 혼자 개발을 하면서 갈팡질팡 하는 일이 잦았는데, 가이드라인과 피드백이 있어 미션을 구현하며 조금 더 객관적으로 코드를 살필 수 있었고, 또 생각의 방향을 올바르게 잡을 수 있었다고 생각합니다.

2. 피드백

주어지는 미션 그 자체로도 정말 재미있었지만, 일주일 전의 제가 알지 못했던 내용들을 새로이 깨우치는 즐거움이 가장 컸습니다. 피드백을 통해 이전의 미션에서 제가 구현한 코드를 살피며 어떤 점에서 부족했고, 어떤 점에서 잘 했는지 알 수 있었습니다. 또 제가 짠 코드에 대한 피드백 뿐만 아니라, 다른 사람들의 코드에 대한 피드백도 함께 받을 수 있어 미처 생각하지 못했던 부분을 깨닫기도 했습니다.

3. 고민

매 주마다 점점 복잡해지는 하나의 기능을 구현하기 위해 어떻게 체계적으로 기능을 나누고 개발해야 하는지, 읽기 좋은 코드를 짜기 위해서는 어떻게 코드를 만들어야 할 지 고민했습니다. 무엇보다 좋은 코드를 만들기 위해 어떻게 노력해야 할까? 를 고민하는 데 많은 시간을 할애한 것 같습니다. 스스로 아직 완성되지 않은 개발자라고 느끼지만, 고민을 거듭해 나가며 조금씩 더 단단한 개발자가 되고 싶습니다.

3주간의 미션을 진행하며 배움을 통해 매주 더 성장하는 제 자신의 모습을 볼 수 있어 즐거웠고, 앞으로도 더 발전하는 저의 모습을 볼 수 있기를 기대하며 프리코스를 마칩니다.

감사합니다.

- 주어진 요구사항, 참고사항 정리
- 2주차 피드백 정리
- 구현할 화면의 구성에 대한 정리
- 구현할 기능에 대한 정리
역 관리, 노선 관리, 구간 관리, 지하철 노선도 출력을 위한 각각의 div 생성
- 유저가 공백으로 시작하거나 끝나는 이름을 입력했을 때
- 유저가 연속적인 공백이 들어간 이름을 입력했을 때
- 유저가 특수문자가 포함된 이름을 입력했을 때
생성자를 가진 Station Class의 기본 코드 작성
- 역 이름을 1글자만 입력
- 역 이름을 입력하지 않음
- 완성되지 않은 역 이름 입력
- 공백으로 시작하거나 끝나는 이름 입력
- 연속적인 공백이 들어간 이름 입력
- 특수문자가 포함된 이름 입력
- 유저가 역을 입력하면 그에 따라 역 이름 table data 생성
- 유저가 입력한 역에 따라 delete 버튼 생성
- 기존의 localstorage에 있는 data를 가져와 table 생성 후 보여주는 기능
- 유저의 입력을 받아 localstorage에 저장하고 table에 data를 생성하는 기능
- 역 이름을 입력하는 html
- 역 목록에 대한 표를 출력하는 html
- Station Class에 id 추가
- Station이 만들어질 때 id 생성하는 기능 추가
- delete 버튼에 Station의 id를 찾아 삭제하는 기능 추가
- initStationManagement -> loadStations 네이밍 변경
- 노선 이름을 입력하는 html
- 상행 종점/하행 종점을 선택하는 html
- 노선 목록에 대한 표를 출력하는 html
생성자를 가진 SubwayLine Class의 기본 코드 생성
- appendHTMLToParent 메소드 분리
- section input 유효성 검사
- deleteStationFromLine 메소드 분리
- updateAddedIndex 메소드 분리
- updateDeletedIndex 메소드 분리
- showTableItems 메소드 분리
- 숫자 앞에 0이 들어가는 숫자가 입력되었을 때
- 중복된 역을 추가하려고 할 때
- printAllLineAndStations 기능 분리
- printLineName 기능 분리
- printStation 기능 분리
- showNewRow 안에 중복으로 쓰이는 모듈들을 make-elements.js로 분리
- station-name-validator.js와 line-name-validator.js를 name-validator.js로 합침
아래 나열된 기능 분리
- indexOfNewElement
- addSectionInput
- makeSelectOptions
- makeSectionManager
- makeTdDeleteButton
- makeTrWithDataset
- makeOneRow
- showTableItems
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