4주 차 문제를 읽자마자 "ㅇ..ㅔ..읭??!"를 수십번은 한 것 같습니다.
이해했다고 생각했지만 볼 때마다 새로운 느낌..
이번 회고에서는 "반성"이 주가 될 것 같아요.
1주 차부터 3주 차 미션까지 진행하면서 설계에 많은 시간을 투자해서 구현을 급하게 하는 경우가 종종 있었습니다. 그리고 스스로 생각하기에 설계를 잘했다고 생각해도 구현하는 과정에서 수정되는 일이 빈번했습니다. 그래서 이번 4주 차 미션에는 설계를 빠르게 하고 구현하면서 설계를 수정하는 방법으로 진행할 생각이었습니다.
하지만, 문제를 읽으면서 "빠르게 설계를 못하겠구나..." 하고 생각했습니다.
이유는 문제도 제대로 이해하기 어려웠기 때문입니다. 이해한 게 맞는지에 대한 의심도 들고 놓친 부분도 많았습니다.
프로모션 적용이 가능한 상품에 대해 고객이 해당 수량만큼 가져오지 않았을 경우, 혜택에 대한 안내 메시지를 출력한다.
- 현재 {상품명}은(는) 1개를 무료로 더 받을 수 있습니다. 추가하시겠습니까? (Y/N)
프로모션 재고가 부족하여 일부 수량을 프로모션 혜택 없이 결제해야 하는 경우, 일부 수량에 대해 정가로 결제할지 여부에 대한 안내 메시지를 출력한다.
- 현재 {상품명} {수량} 개는 프로모션 할인이 적용되지 않습니다. 그래도 구매하시겠습니까? (Y/N)
위와 같은 조건에 맞는 메세지를 출력합니다. 제가 헤맸던 부분은 예를 들어 사용자가 2+1 상품을 3개를 구매했을 경우는 메세지가 출력되지 않고, 2개를 구매했을 경우에만 1개를 증정받을 것이냐는 메세지를 출력하기 위해서 (buy + get) / 사용자 구매량 * get
이러한 계산식으로 메세지의 여부를 결정했는데 3개를 구매해도 1개 증정받을 것이냐는 메세지를 출력하게 되어 여러 조건문을 사용하게 되었습니다. 1+1과 2+1을 나누어 조건문을 작성하니 중복되는 조건문도 많고,, 정말 더러운 코드가 만들어졌습니다.
구매한 상품은 따로 관리하니 영수증 출력 시 상품을 가져오는 것에는 문제가 없었습니다. 만약 사용자가 증정품을 추가하거나 이미 증정품의 수량까지 가져온 경우에는 증정품을 어떻게 관리해야 하는지 도무지 떠오르지 않았습니다. 그래서 증정품이 없는 영수증을 출력하게 되었습니다. 수량은 증가하고 프로모션 할인도 적용되지만 어떤 상품이 프로모션 증정 상품인지는 모르는 상태가 되어버렸습니다.
위와 같은 문제들을 해결해야 다른 기능도 완성을 할 수 있다 보니 결국 완성을 하지 못했습니다 😭
시간은 없고 해결은 해야 하니 어느 순간 GPT랑 싸우고 있더라구요.. 지원서에 생성형 AI 사용하지 않고 스스로 힘으로 해내겠다고 한 목표를 지키지 못했습니다..
싸우면서 GPT도 한계가 있어 찾지 못하는 문제점을 디버깅을 통해서 찾는 과정에서 디버깅이 더 효율적이라는 것을 알게 되었습니다.
지금까지 미션에서 여러 리뷰를 받으면서 학습한 내용을 적용하는 것이 저의 가장 큰 목표였습니다. 물론, 기본적으로 단위테스트나 요구사항은 기본적인 목표였구요!
하지만 위의 나열한 목표 중에서 "이건 진짜 완벽하다"하고 이룬 것은 없는 것 같습니다. 설계하면서 목표를 지키려고 하니 더욱 복잡해졌습니다. 제가 너무 큰 욕심을 부린 것이 아닌가 싶습니다.
1주 차부터 4주 차까지 정말 열심히 달려온 것 같습니다.
많은 분과 소통하면서 서로 리뷰도 하면서 정말 많은 에너지와 정보(?)를 얻을 수 있어서 도전한 것을 너무 잘했다고 생각합니다.
비록 마지막 미션을 완성하지 못한 채 제출해서 아쉽지만 이번 프리코스를 통해서 학습하는 것에 대해서 흥미를 느낀 것 같습니다!
끝이 났어도 저는 프리코스 문제들을 꾸준히 리팩토링 해 볼 생각입니다! 지켜봐 주세요!
지금까지 저의 코드를 리뷰해 주신 분들, 많이 응원해 주신 분들 모두 잘 되셨으면 좋겠습니다! 이런 기회를 갖게 해준 프리코스도 너무너무 감사합니다 🙇🏻♀️
눈물없이는 볼 수 없는 회고네요.. 😢
저는 힘든 과정 속에서 포기하지 않을 때 더 크게 성장할 수 있다고 생각해요..!
프리코스 고생하셨습니다! 앞으로도 화이팅해봐요!! 🙌