[우아한테크코스 6기 프리코스] 2주차 회고

osohyun0224·2023년 11월 1일
0

1. 목표 : 테스트 코드 작성하기

이번 주 미션에는 함수를 분리하고, 각 함수별로 테스트를 작성하는 것 이 저의 가장 큰 목표였습니다.
지난 주차에서 기본적으로 제공되는 테스트 코드를 분석해보았습니다. 이때 "아 이런식으로 테스트코드가 실행되는 거구나!"라고 이해했지만, 제가 실제로 테스트코드를 작성해보려니 쉽지 않았습니다.

이번 주차에서 제공해주신 예시 테스트 코드 파일(StringTest)를 보면서 전체적으로 자동차 경주 게임의 기능을 하나씩 분리해서 작성해보고, 분리한 기능 별로 하나씩 테스트 코드를 작성해보기 시작했습니다.

이때, mission-utils 패키지 레포지토리를 보면서 테스트코드를 작성하는데 많은 도움이 되었습니다.

하지만 지난 주 미션 소감에서 작성하였던 TDD 방식을 통해 기능 구현 전, 테스트 코드를 작성해보겠다는 목표를 달성하기에는 쉽지 않았습니다. 하지만 먼저 테스트 코드를 작성해보려고 2-3일 정도를 노력하면서 제가 구현해야하는 기능 목록의 예외 처리를 상세하게 나눌 수 있었습니다.

여러가지 예외처리의 경우의 수를 많이 생각하면서 다양한 예외 처리의 기능을 구현하였습니다. 구현을 하고 이에 대해 테스트 코드를 작성하는 것은 어렵지 않았습니다. 그래서 한 기능 씩 차근차근 구현하고, 그에 대한 테스트 코드를 바로 작성하여 테스트를 해보기 시작했습니다.

2-3가지 기능을 구현 한 후에는 TDD방식을 부족하지만 시도해보고 싶어서 랜덤 값에 따라 전진하는 기능의 테스트 코드를 작성해보고, 이를 통과하도록 기능을 구현해보았습니다. TDD 방식이 처음 성공하고 정말 기뻤습니다. 개인적으로 이 방식이 성공할 수 있었던 요인은 테스트 코드를 많이 분석해보는 것이 중요하다고 생각합니다. 따라서 앞으로도 다양한 문제의 테스트 코드를 접하면서 이해하고, 다음 주에는 더 많은 기능을 구현하는 과정에서 TDD 방식을 도입할 수 있도록 노력할 것입니다.

또한 도움이 되었던 다른 방법은 이미 구현된 기능에 대해 테스트 코드를 작성해보면서 테스트 코드가 어떻게 작성되는 지 이해하기 쉬웠던 것 같습니다. 지난 주차에 구현한 기능에 대하여 테스트 코드를 작성해본 경험도 이번 미션에 도움이 되었습니다.

2. prettier/eslint 적용

1주 차 프론트엔드 공통 피드백에서 prettier/eslint 적용해보라는 말씀이 있었습니다. 저는 이 글을 보고 package.json을 수정하지 않고 prettier/eslint 적용이 가능한가?라는 의문을 가지며 방법을 찾기 시작했습니다. 열심히 노력하다가 상위 폴더에 적용하는 방법을 찾아내었고, 성공적으로 적용할 수 있었습니다. 이때 이렇게 적용을 하고, 꾸준히 커밋을 할 때마다 이 스타일 문법을 지키면서 구현을 했어야 했는데, 구현에 집중 하다 보니 스타일 코드에 신경 쓰지 못한 것 같아 아쉬웠습니다. 다음 주차부터는 자주 스타일 코드를 신경 쓰면서 구현을 할 수 있도록 노력할 것입니다.

3. 기능 단위의 커밋

지난 주차에 커밋 메세지를 작성하는 습관이 잘 잡혀서 이번 주부터는 기능 단위로 커밋을 진행하려고 노력했습니다. 기능 단위로 커밋을 할려면 구현도 중요하지만, 기능 목록을 초반에 잘 작성하는 것이 중요하다는 것을 느꼈습니다. 지난 주차에는 미션을 구현해나가면서 기능 목록 수정이 빈번했었는데, 이번 주차에서는 기능 목록을 작성하는데 초반에 많은 시간을 들여 고민하면서 작성하였습니다. 이때 게임 진행 "순서도"를 작성한 것이 매우 큰 도움이 되었습니다. 따라서 다음 주 차 미션 에서도 먼저 구현하려고 하지 말고 신중하게 문제를 분석하고 순서도를 그려보며 로직을 잘 이해하는 것이 중요하다고 생각하였습니다. 초반에서부터 잘 작성한 기능 목록을 토대로 큰 수정 없이 이번 주 미션을 마무리한 것 같아 성취감을 느꼈습니다.

4. MVC 패턴을 적욯

지난주에 커뮤니티에서 MVC 패턴에 대한 글을 학습했습니다. 글을 읽고 더 잘 이해하고 싶어 제리님의 테코 톡 영상을 여러 번 학습하며 MVC 패턴을 적용해 구현하는 방법을 이해했습니다. 이번 주차 미션 초반 기능 목록을 작성할 때 Model / View / Controller 의 역할을 생각하며 기능 목록을 작성해 나갔습니다. 이를 바탕으로 코드를 리팩토링 해나아가며 점차 MVC 패턴으로 구현된 제 미션 코드를 만날 수 있었습니다. 다음 주 미션에서도 해당 패턴을 적용해나갈 수 있도록 더 공부할 예정입니다.

전체적인 소감

이번 주차에는 MVC 패턴, 리팩토링, 그리고 테스트 코드 작성까지 배우고 이를 적용하려고 노력했던 한 주였습니다. 다음 주에는 이번 주차보다 더 헤메지 않고 TDD 방식을 많이 적용해서 구현 할 수 있도록 노력할 것입니다. 이번 주도 많이 배울 수 있어서 정말 행복했습니다.

profile
학부생 Frontend Developer

0개의 댓글