기록하는 공간
우아한테크코스 7기 프리코스[BE] 4주차 회고: 편의점이 싫어요. 본문
프리코스 4주 차는 어땠나요?
이전 3주 차 회고 글에서 가장 어려운 미션이 로또라고 했었는데, 이번 미션을 수행하면서 바뀌었다.
이렇게 조건이 많은 미션은 처음이었다.
그래도 마지막 미션이라는 생각에 열심히 수행했다.
미션에 임하는 자세 (목표)
이번 미션은 혹시 모를 최종 코딩 테스트를 대비하여 하루 날을 잡아 5시간 동안 구현을 해보기로 했다.
이 미션을 5시간 진행하면서 임하는 목표는 아래와 같다.
- 미션에만 집중하기
휴대폰을 하거나, 멍을 때리는 등 집중이 흐려지는 행동은 하지 않기로 했다. - 백색소음이 있는 환경에서 최대한 최종 코딩 테스트와 비슷한 환경을 만들어 연습하기
만약 나중에 최종 코딩 테스트에 간다면 이 연습은 도움이 될 것이라 생각했다. - 연습하는 5시간 동안 생성형 AI 사용하지 않기
실제로 최종 코딩 테스트에서는 생성형 AI를 금지한다고 들었다. 그렇기에 연습 때도 동일하게 조건을 맞추려 한다.
5시간 미션 연습을 진행하며…
학교 과제나 할 일을 모두 끝내고 11월 9일 토요일 13시부터 18시까지 아무도 없는 집에서 잔잔한 카페 노래를 틀어놓고 미션을 시작했다.
문제 읽기와 프로모션, 멤버십 등 조건 이해하기를 시작으로 1시간이 지난 후에야 기능 목록을 작성하였다. 기능 목록을 작성한 후 상품 출력을 위한 파일 입출력이 1시간이 걸렸다. 상품과 프로모션의 파일 입출력은 최근 학교 수업에서 파일 입출력을 배웠기 때문에 금방 할 수 있었다. Markdown 파일을 가공하고, 상품과 프로모션 클래스를 만들어서 적용하였다.
그 후 사용자의 입출력인 내가 주문한 상품명과 수량을 입력하는 로직에 남은 시간을 모두 사용하였다. 이것만 3시간이 걸렸다.
이때, 좀 완벽하게 해 보겠다고 역할을 부여하여 객체를 나누고, 메소드를 분리하고, 해당 객체에 대한 예외 검증을 하는 등 모든 조건을 따지면서 구현을 하다 보니 남은 시간을 모두 사용했던 것이다.
정작 가장 중요한 프로모션 할인이나 멤버십 적용, 영수증 출력에 있어서는 5시간 동안 건드리지도 못했던 것이다.
이게 실제로 최종 코딩 테스트였다면, 나는 미션 요구 사항을 절반 이상이나 충족하지 못했던 것이다.
5시간 미션 연습이 끝난 후…
여러 깨달음을 가지고 5시간의 미션 구현이 끝이 났다. 연습을 마쳤으니 미션을 완성하기 시작했다.
그래도 처음에 구현을 할 때 역할을 부여하고 객체를 잘 나누어놨던 탓인지, 코드가 깔끔했고 다른 기능을 구현할 때도 보기 편했다.
하지만 생각보다 프로모션 구현부가 굉장히 복잡했다. 프로모션 적용 여부, 프로모션 적용 상품 재고가 없는 경우, 프로모션 적용 상품에서 사다가 일반 제품으로 넘어가는 경우 등 상황이 체감상 100가지도 넘어 보였다.
급한 마음에 메소드를 분리하지 않고 구현에 급급하다 보니 중첩 if, 10줄 이상의 난잡한 코드를 볼 수 있었다. 그렇게 구현을 먼저 하고, 내부 테스트 4개 모두 성공하는 것을 확인하고 과제를 제출했다. 결과는 3/4로 실패했다. 그래서 반례가 존재한다는 것을 깨닫고, 그다음 날부터 리팩토링도 못하고 여러 상황을 입력하면서 반례를 찾았다. 하지만 결국 미션 제출하는 월요일까지 찾지 못했다.
마지막 4주 차 미션이 끝난 후…
미션이 끝나고 우아한테크코스 프리코스 커뮤니티에서 많은 이야기가 나왔는데 나와 같은 3/4로 테스트가 실패하는 사람이 많았다. 여러 예외 케이스 이야기가 오고 갔는데, 그중 가장 많이 나온 이야기가 products.md 파일을 수정해서 마지막 예외 케이스가 실패한 거다라는 이야기가 많았다. 그렇다. 나는 해당 Markdown 파일을 수정했었다. 그 이유는 미션에서 “내용의 형식만 유지한다면 값은 수정할 수 있다”라고 명시가 되어있었기 때문이다. 이 말을 보고 .md 파일을 수정했는데, 그게 틀린 이유가 될 줄은 몰랐다.. 굉장히 아쉬운 상황이었다.
마무리
우아한테크코스 프리코스를 하는 한 달간 정말 열심히 살았고, 참가자들과 코드리뷰를 하며 성장하기도 했고, 회고를 통해 나를 돌아보는 등 알차게 살았다는 생각을 했다. 아쉽게도 마지막 미션인 편의점의 테스트 결과는 실패했지만, 이걸 아쉬워하는 나를 보며 열정이 넘치고 많이 성장했다는 느낌이 들었다.
나는 여기서 끝내지 않고, 이 열정을 계속 가지고 나아가 더 성장하는 내가 되어야겠다.
한 달간 고생한 나에게 박수를 👏!
링크
> 코드: https://github.com/giwoong01/java-convenience-store-giwoong01
'회고' 카테고리의 다른 글
우아한테크코스 7기 프리코스[BE] 3주차 회고: 혹시.. 나도 1등 당첨? (0) | 2024.11.06 |
---|---|
우아한테크코스 7기 프리코스[BE] 2주차 회고: 부릉 부릉 부르응… (0) | 2024.10.30 |
우아한테크코스 7기 프리코스[BE] 1주차 회고: 오 쉬운데?(며칠 뒤) 아니구나.. (0) | 2024.10.24 |
구름톤 유니브 2기 벚꽃톤: 기억해봄을 개발하며 (0) | 2024.07.18 |
14일간의 첫 풀스택 개발 : 목표 달성, 도전과 성장 (0) | 2024.05.19 |