우테코 최종 코테를 치고 나서야 쓰는 프리코스 4주차 회고글.
그래서 기억이 많이 휘발되었지만, 코테 망치고 이것도 미뤄둔 내가 한심해서 제출했던 소감위주로 늦게라도 써본다.
4주차 미션 안내
4주차 미션은 오징어 게임의 징검다리 건너기 게임을 구현하는 것이다.
그동안의 모든 피드백을 더 잘 반영할 수 있도록 제한사항이 더 구체적으로 주어져서 어떻게 구현할지 고민하는것이 진짜 어려웠다.
(미션은 오픈되어 있어서 링크를 공유합니다. 자세한 내용이 궁금하시다면 링크를 참고 바랍니다.)
4주차 미션 회고
배우고 적용한 것
1) 객체스럽게 객체 사용하기, 로직 분리와 MVC패턴
이 두가지가 너무 어려우면서도 서로 연관되어 있어서 함께 작성한다. 지난주 공통 피드백 내용들이 프리코스 기간 내내 고민했던 부분들에 대한 내용이였고, 그 내용이 결국 이번주 제한사항에도 반영이 되어 있어서 이 모든 것을 꼭 잘 적용하고 싶었다. 구현은 성공해서 다행이지만 아쉬움이 많이 남는다.
- 로직을 분리하고, 제한 사항에 객체에 대한 세부 요구사항도 있어서 어떤 구조로 설계할지를 고민하는데 정말 오랜 시간이 걸렸다.
- 로직 분리와 제한 사항을 지키는 것이 결국 MVC 패턴과도 유사한 것 같아서 MVC 패턴을 학습하고 적용했다. 서로 의존성을 고려해서 설계하는 것이 특히 어려웠다. 그래서 사실 완벽한 MVC 패턴은 되지 못한것 같아 아쉬웠다.
- Model 이 Controller와 View에 의존하지 않게 구현했다.
- Controller가 Model과 View를 의존하도록 구현했다.
- 객체스럽게 객체를 사용하기 위해 많이 노력했습니다. private 필드를 사용하고, 필드의 수를 줄였다.
[문제 발생 및 해결]
InputView 에서만 readLine을 사용해야해서 처음에 여기저기에서 InputView의 메서드를 불러서 사용했더니 순환 참조가 되었고, 평가 순서 문제로 오류가 발생했다. 처음에는 콜백함수를 썼다가 콜백지옥에 빠질 것 같아서 MVC 패턴과 JS의 순환 참조 등을 공부하면서 파일을 분리했다. 그래서 Controller를 따로 만들고 거기에서만 InputView와 OutputView 메서드를 사용하도록 하여 해결했다.
2) 커스텀 에러
try…catch를 사용하면서, 사용자 입력 에러와 다른 에러를 구분해주기 위해 커스텀 에러에 대해 학습하고 적용했다.
- 적용이유: 입력 에러 외의 다른 에러에도 다시 입력받는 함수가 실행되는 문제를 해결하기 위해 적용했다.
2. 아쉬운 점 / 앞으로 할 일
- 무분별한 getter 사용을 최대한 하지 않으려고 했으나, 마지막에 결국 해결되지 않는 부분이 있어서 getter를 많이 사용하게 되었다. 클래스의 private 필드를 객체로 선언했더니 this 바인딩에 문제가 생기면서 해당 객체 내부의 값을 사용하기 어려웠다. 전체 구조를 바꿔야 할 것 같았는데 시간 부족으로 getter를 사용하게 되서 아쉬웠다. 추후 이 부분을 다시 리팩토링 해봐야겠다.
- 단위 테스트 코드를 먼저 고려하면서 비즈니스 로직을 작성했었어야 했는데, 일단 작성후 테스트 코드를 고민했더니, 작성하기 어려운 부분들이 많았다. 이제 프리코스가 끝났으니 앞으로는 TDD도 공부해보고, 테스트 코드 작성에 대해서도 더 많이 고민하고 공부해야겠다
- 객체 지향 프로그래밍에 대해서 더 학습하고 적용해봐야겠다.
3. 미션 진행 소감
정말 고통스러운 한주였다. 제출을 할 수 있어서 다행이란 생각이 들었다. 공통 피드백과 요구사항을 통해 객체스럽게 쓰는 것을 더 깊이 고민해보고 사용해 볼 수 있어서 좋았다.
이번 프리코스를 통해 얻은 가장 큰 것은 먼저는 혼자 학습하면서 방향과 방법을 설정하는 것이 어려웠는데 많은 힌트를 얻을 수 있었다는 것이다. 한달전과 비교해보면 정말 많이 성장한 것 같아서 프리코스에 참여하길 잘했다는 생각이 들었다.
'회고 > 우아한 테크코스 5기 프리코스' 카테고리의 다른 글
우테코 최종코딩테스트 회고 (0) | 2022.12.19 |
---|---|
우테코 프리코스 프론트엔드 3주차 회고 (0) | 2022.11.16 |
우테코 프리코스 프론트엔드 2주차 회고 (0) | 2022.11.11 |
우테코 프리코스 프론트엔드 1주차 회고 (0) | 2022.11.10 |
댓글