PR링크: https://github.com/qjatjs123123/javascript-christmas-6-qjatjs123123/pull/1
미션링크: https://github.com/woowacourse-precourse/javascript-christmas-6
이번 크리스마스 프로모션 과제를 단순한 미션으로만 생각하는 것이 아니라, 실제로 사용되는 프로모션 시스템을 상상하며 미션을 진행하려고 했습니다. 상상력을 발휘하여 다양한 아이디어를 적용하면서 저만의 생각을 녹여보았습니다.
클라이언트-서버 구조
, 스프링 MVC패턴
, 멀티 사용자 측면
등 다양한 요소를 고려하려고 노력했지만 아직 부족함을 느꼈습니다.
미션 프로그래밍 요구사항으로 도메인 로직에 단위 테스트를 구현해야 한다.
가 있었습니다. 도메인 주도 설계를 기반으로 개발한다면 도메인 로직에 대한 단위 테스트를 자연스럽게 수행할 수 있을 것으로 예상했습니다. 하지만 블로그글이나 유튜브 강의를 찾아봐도 내용을 완전히 이해하기 어려웠습니다. 일단 비즈니스를 도메인으로 모델링하고, 모델링된 도메인을 세부적인 하위 도메인으로 분리하려고 했습니다. 그리고 각 도메인 간의 관계를 나타내고자 했습니다.
그러나 설계한 후에도, 코드 구현이 도메인 주도적인 것보다는 객체지향적으로 느껴졌습니다. 여전히 설계 부분에서 부족함을 느끼고, 앞으로 더 많은 공부가 필요하다고 생각했습니다.
클라이언트-서버 구조의 설계
를 기반으로하여 지난 3주차에 Spring 프레임워크
의 동작 과정을 소개했습니다. 이번 주차에는 Spring 프레임워크
를 간결하게 정리하려고 노력하였습니다.
1. 클라이언트(이벤트 플래너)는 HttpRequest를 사용하여 API를 통해 서버에 요청합니다.
2. 서버는 요청된 API의 URL에 맞는 컨트롤러 메서드를 requestMapping 클래스에서 처리합니다.
3. 컨트롤러 메서드에서 도메인 로직을 실행시킵니다.
4. 클라이언트, 컨트롤러, 도메인 간에 데이터를 주고받기 위해 DTO를 활용합니다.
5. 컨트롤러는 HttpResponse로 DTO를 클라이언트(이벤트 플래너)에 반환합니다.
이러한 구조로 설계를 했습니다.
4주간 많은 것을 배울 수 있었다.
우테코 합격을 목표로 두는 것이 아니라 나의 성장에 포커스를 맞추는 것이 프리코스를 하면서 가진 마음가짐이다.
그러다보니 정형적인 문제풀이보다 다양한 관점에서 미션을 해결하려고 노력했다.
MVC패턴
, 함수형 프로그래밍
, Spring 동작과정
, 클라이언트, 서버 관계
등을 적용하는 과정에서 프로그래밍 실력 뿐만 아니라 프로그래밍 그 이상에 지식을 쌓을 수 있었던 것 같다.
네이버 부스트 캠프 맴버십 입과 실패를 겪고 클린코드, 모듈화, 테스트 코드 중요성을 알게 되었다. 그래서 클린코드, 모듈화, 테스트 코드 작성쪽에 신경을 많이 쓴 것 같다.
처음엔 테스트 코드를 자세하게 작성하지 않았다. 하지만 코드리뷰를 통해서 꼼꼼히 작성하고 describe
test
설명도 알기 쉽게 작성하시는 분 보고 이렇게 테스트 코드 작성하는 거구나. 라고 깨닫게 된 것 같다.
마지막 주차에는 테스트 항목이 120
개 가까이 되었다. 이전 미션에 쓰레기 테스트코드를 작성했구나 깨닫게 된 계기였다.
만약 우테코 합격 실패하더라도 내가 목표했던 성장을 이뤘기 때문에 크게 좌절하지는 않을 것이다. 그리고 워낙 잘하시는 분이 많았어서 그 분들의 코드를 보고 배웠다는 거에 의미를 둘 것이다.
프리코스 4주차가 지나고 일주일 넘어서 4주차 후기를 쓴다.
그 이유는 싸피
, 카카오 인턴
등을 준비하면서 많이 늦어졌다.
지금 시점으로는 시험은 종료가 되었고, 혹시 모를 최종 코테를 준비하기 위해서 스터디에 들어갔다.
스터디에서 묙표는 5시간안에 푸는 연습을 가질 것이다. 또한 개인적으로 타입스크립트
를 공부할 것이다.