우아한테크코스 프리코스 3주차 - 로또 회고

_sw_·2023년 11월 9일
post-thumbnail

다사다난했던 3주차 미션이 끝났다.

3주차 미션은 로또 프로그램을 만드는 미션이었다.

3주차 미션을 진행하면서 주말에 본가도 다녀오기도 했고, 집중이 잘 안되어서 일요일까지는 많은 시간을 할애하지 못했고, 주말 지나고 월, 화, 수 동안 제출을 위해서 미친듯이 했던 것 같다.

3주차에서 가장 많이 신경쓰려고 했던 부분은 크게 테스트 코드 다양화, 함수/파일 분리, README, 소감문 잘쓰는 것에 중점을 두려고 했다.

여기에 다른 동료분들 처럼 MVC 패턴도 적용해보려고 노력했지만 설계하는 부분에서 어려움이 있어서 차칫 더 깊이 신경쓰다가는 기능 구현에까지 영향을 줄 것 같아서 디자인 패턴을 적용하는 것에는 크게 신경쓰지 않으려고 노력했고, 위 사항들은 공통 피드백, 코수타에서 코치분들이 강조한 부분들이었기에 최대한 노력하는 것이 맞다고 생각했다.


테스트 코드

2주차에서부터 테스트 코드도 요구사항에 포함되어 있었는데, 지난 미션에서 다양한 테스트 케이스를 고려하지 않은게 많이 느껴져서 요구사항 단계를 철저히 해야겠다고 생각했다. 평소에도 요구사항에서 빠뜨리는게 꽤 많다고 느끼고 있었기 때문에 요구사항을 파악하는 여러방법들을 테스트하면서 최대한 내가 빼먹지 않고 잘 챙길 수 있는 방법을 찾고 있다.이번 주차에서는 요구사항에서 사용자 동작 단위로 시나리오를 만들어보고, 완성된 시나리오를 한줄 씩 따라가며, 필요한 Class, 메서드, 상수, 예외 케이스들을 확인해보았다.

위 캡처한 사진처럼 해봤는데 보기에 중구난방처럼 보일 수 있지만, 생각보다 기능 요구사항에 대해서는 확실하게 인지를 할 수 있었고, 어떤 부분들을 테스트하고, 구현해야할지 명확해지는 효과를 느낄 수 있었던 것 같다.

그리고 테스트 코드하면 TDD를 적용해야하는 고민도 잠깐했었다. 완벽하게 TDD로 개발했다라고 할 수는 없지만 앞서 먼저 뽑아낸 테스트 케이스에 대해서는 테스트 코드를 먼저 작성하고 기능 구현을 하려고 애썼다. 테스트 코드를 잘 짜지 못해 구현과 동시에 테스트 코드를 수정하는 경우가 빈번했지만 이번에는 TDD를 준수하려고 노력했다는 것에 만족하려고 한다…


README 작성

다른 분들과 비교 하면 끝도 없지만, 다른 분들의 README를 보면 구현 과정이나 구현하면서 했던 고민들이 잘 녹아있는 README를 봤었다.

이번에는 나도 이런 내용을 정리해서 보여드리고 싶어서 노션에 따로 정리도 하고 했었는데, 마지막에 바보같이 빼고 업로드를 했다.

깜빡하고 빼먹은 건 아니고, 고민한 내용이 너무 얄팍한 것 같아 쓸데없는 자기검열이 그 순간에 발동해서 자체적으로 뺐다…

좀 후회가 된다. 너무 나를 낮추지 말자.

수요일의 악몽 🤮

수요일, 제출 마감일은 너무너무 후회가 많이 되는 날이었다.

한 줄로 요약하자면 내가 요구사항을 제대로 안읽어서 문제가 생겼다.

몇 번을 읽었는데!!!!! 그걸…!!!!

수요일에 미처 처리하지 못한 요구사항이 몇가지 되어서 거의 코드를 갈아 엎다시피 했다.

덕분에(?) 분리한 파일들이나 함수들까지 미처 깔끔하게 정리할 시간이 없어서 급하게 마무리했다.

그런 순간에도 긍정적인 요소를 찾아보자면…

테스트 코드를 짜놓음으로서 리팩토링이 한결 수월헀던 것 같다.

기존 코드에서 구조를 바꾸면서 함께 여러 번 기존 테스트 코드를 돌렸고, 실패한 케이스에 대해서는 다시 한 번 수정하는 과정을 거쳤다.

확실히 사용하던 테스트 코드가 있으니 내가 수정한 부분이 정상적으로 동작하는지 확신을 얻을 수 있었다.

왜 이런 큰 실수를 했는지 돌아보니 이번 미션을 수행할때 너무 기능 요구사항을 잘 분석해서 테스트 코드 더 잘짜 봐야곘다!하는 생각을 더 많이 했던 것 같다.

테스트 코드도 중요하지만 실제 사용될 서비스, 프로그램을 만드는 것이 더 중요한데 너무 지난 미션에서 부족했던 걸 보완하는 것에만 집중해서 다른 요구사항도 봤지만 기능 요구사항처럼 한줄 한줄 자세하게 보려고 하지 않았던 것 같다.

항상 이런 실수가 반복되는 것 같아 속상했지만, 다시 한 번 경각심을 가지고 마지막 미션은 완벽하게 해내고 싶다.

(난이도가 극강이라던데… 😱😱😱)


마지막 미션

이제 마지막 4주차 미션만 남겨두고 있다.

아래 리스트는 이번 공통 피드백과 동료 리뷰 피드백을 정리한 내용이다. 다음 미션에는 제발 제발 제발 잘 챙겼으면 좋겠다.

- 요구사항 파악후 ‘핵심 기능’ 한 줄로 요약하기
- 함수 분리를 ‘이정도까지 해야해?’하는 정도로 해보기
- Class의 # prefix 활용하기
- 비즈니스 로직과 UI 로직을 분리하기
- 테스트 코드가 구현 코드에 영향을 주지 않도록 하기

오늘 코수타에서 이번 4주차 미션 난이도가 극악이라고 티(?)를 내시던데…

이번 3주차 미션에서 너무 쓴맛을 많이봐서 걱정이 많이 되지만, 마무리 잘 하고 싶다.

마지막 4주차, 너무 빨리가려고 하지 말고, 하나씩 차근차근 잘해보자…

profile
나도 잘하고 싶다..!

0개의 댓글