과제 요약
과제 진행 소감
문제 요구 사항 파악
앞서 진행했던 것보다 요구하는 게 많았던 이번 주 과제였던 것 같습니다. 처음 과제를 받았을 때는 구현해야할 사항들이 많아서 쫓기는 마음으로 시작을 했었는데, 이 때문에 후반가서 잘못 이해하고 있던 게 있었습니다.
이 부분을 보고 사용자가 특정 아이템을 구매하면, 그만큼을 메모리에서 구현된 재고에서 차감하고, 이를 다시 products.md에도 반영을 해야하는 줄 알았습니다. 모든 기능을 구현하고, 기본으로 제공해주는 테스트를 통과한 뒤에, 온라인에 제출을 했는데 케이스 1개를 통과하지 못한 상황이 발생했습니다. 여러 방면으로 삽질을 하다가 다행히 잘 못 이해한 부분을 찾았는데, 이런 사소한 부분에 대한 체크가 중요하다는 걸 다시 한 번 느꼈던 것 같습니다.
지원서나 중간 회고에서 현실적인 목표를 설정하고 이를 달성했다고 생각하나요? 그 이유는 무엇인가요?
지원서에서 이번 프리코스 기간 동안 테스트 코드를 작성하는 데에 익숙해지는 것을 목표로 잡았습니다. 앞서 진했던 1,2,3주의 과제와 달리 이번 주차 과제에서는 테스트 코드로 단위 테스트를 하기 어려웠던 것 같습니다.
지난 과제에서는 어떤 형식으로 특정 값을 반환하는 메소드를 만들어야겠다는 확실한 판단을 갖고 메소드를 만들어서 이를 테스트를 하는 의의가 있었습니다. 하지만 이번 과제에서는, 특히 프로모션에 대한 기능을 구현하면서 어떠한 메소드를 만들어도 계속 그 기능과 반환값을 수정하는 등, 메인 코드들이 변경되는 경우가 많이 생겼습니다. 그렇기에 어떤 기능을 구현하는 코드의 테스트 코드를 작성해도 전체 개발 간에 메인 코드를 지속적으로 수정하면서 테스트 코드까지 같이 수정해야해서 오히려 개발 시간이 길어지는 현상이 생기기도 했습니다.
테스트 코드를 작성하는 데 익숙해져야겠다는 목표는 달성했다고 생각을 하고, 이를 달성하면서 전체 서비스를 어떤 식으로 구현해야할지에 대한 확실한 판단이 선행되어야 겠다는 점도 깨달았습니다.
중간 회고에서 조정한 목표가 실제 목표 달성에 도움이 되었나요? 목표를 달성하는 데 어떤 점이 효과적이었다고 생각하나요?
중간 회고 이후 기록하는 과정에 소모되는 시간이 많이 줄었습니다. 프리코스 기간동안 거의 매일 코딩이나 피어리뷰를 했었는데 이를 하면서 새롭게 깨달은 내용이나, 다음 과제간 신경써야할 부분을 간단히라도 기록을 했었습니다.
특히 테스트 코드 작성에 대한 점을 많이 기록을 했었는데, 이 덕에 확실히 테스트 코드를 통해 개발을 하는 과정이 익숙해진 것 같고, 다양한 방식의 테스트 코드를 작성할 수 있었습니다.
각 미션의 목표를 달성하기 위해 세운 계획을 잘 이행했나요? 그 과정에서 어떤 전략이 효과가 있었나요?
우테코에서 준 공통 피드백을 꼼꼼히 자주 읽던게 각 미션 목표를 이행하는데 많은 도움이 된 것 같습니다.
사실 코딩을 하고 서로 피어 리뷰를 진행하면서도 '뭐가 정답일까', 혹은 '어떤 스타일로 코드를 작성하는 게 좋은건가' 라는 생각이 있었습니다. 피드백을 읽는 과정에서 역시 코딩을 하는 과정에서 정답은 없다는 걸 깨닫기는 했지만, 그래도 코드를 작성하는 긍정적인 컨벤션을 어깨넘어로 배울 수 있었고, 이를 체화하는 과정에서 각 미션에서 제공해준 목표를 자연스럽게 달성할 수 있었던 것 같습니다.
몰입하고 함께 성장하는 과정을 통해 인상 깊었던 경험이나 변화가 있었나요?
과제를 제출하고 서로 리뷰를 진행했던 게 가장 기억에 남는 것 같습니다. 다른 사람의 코드를 이렇게 깊게, 오랫동안 보고 분석한 적이 처음이었는데, 리뷰를 하고 받는 과정에서 배운 게 굉장히 많았고, 한 가지 주제에서 나랑 같은 코드가 하나도 없다는 점이 꽤 재밌게 느껴졌습니다.
우선, 처음에는 코드 리뷰가 쉽지는 않았습니다. 다른 사람의 코드와 생각을 이해하는 과정이 꽤 오랜 시간과 집중을 필요로 하는 일임을 알 수 있었고, 반대로 그만큼 저는 코드를 더 가독성 좋게, 이해하기 쉽게 작성해야겠다는 생각도 했습니다. 좋은 리뷰를 해주고 싶은 만큼 자바라는 언어와, 객체 지향이라는 개념을 공부할 수 있었고 학습한 만큼 상대방에게 좋은 피드백을 줄 수 있다는 것도 뿌듯했습니다.
코드 리뷰를 하면서 같은 고민을 나눌 수 있는 점도 좋았습니다. 과제를 구현하면서 혼자 했던 고민들, 리뷰 과정에서 생긴 해결되지 않은 문제들을 나누고, 이야기 하면서 제 궁금증을 해결할 수 있었습니다.
그리고 무엇보다, 코드 리뷰를 하면 저보다 수준이 높고, 많은 손을 거친 코드들을 볼 수 있는데, 이분들의 코드를 보면서 제 코드를 개선시켜날 수 있는 점이 좋았습니다. 코드 보는 안목이 잡혀나가는 것 같고, 저만의 기준이 생기면서 이를 다음 과제에 적용해나가는 과정이 꽤나 재미있게 느껴졌습니다.