개발/항해99

항해 플러스 백엔드 (4주차 WIL)

IamBD 2024. 10. 19. 16:37

4주차 WIL

 

4주차 KPT를 정리합니다.

 

 

 

1. 문제 (과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제)

 

요구사항

  • E-Commerce 시스템 분석 및 설계 자료를 기반으로 기능구현

 

3주차에 진행한 산출물 베이스로 실제 서버를 구축합니다.

 

동시성이나 데이터 인덱싱과 같은 고도화는 이후 구현하며

각 기능의 완성에 집중합니다.

 

2. 시도

 

CQRS 패턴을 적용하려 시도했습니다.

 

물론 구현 난이도가 있기 때문에 Command DTO의 활용과 Reader, Store를 분리해

읽기와 쓰기 Repo를 나눠 사용하였습니다.

 

물론 단일 DB에서의 효용성은 없겠지만 이후 확장성이나 학습에 목표를 두어 구현을 시도했습니다.

 

 

3. 해결

 

이번 주차에 잘못된 ERD 설계로 Clean한 기능 구현을 하지 못했습니다.

 

잘못된 ERD 설계란 테이블별 명확한 성격을 갖지 못했고 서로가 서로를 너무 참조하는

순환형 참조 관계가 되어버렸습니다.

 

 

4. 알게된 것

 

설계의 중요성을 깨달았습니다.

 

이전 주차에서의 코드 작성은 없었기에 비교적 쉬어가는 주차로 생각하였으나

부실한 설계로 인해 코드를 뒤엎는일이 계속 발생하였고 그로인해 기능의 "완성"만 하게 되었습니다.

 

물론 이번 한 번의 경험으로 설계의 중요성을 깨달았다는 말은 다소 건방질 수 있겠지만

적어도 잘못된 설계로 인한 파급력은 뼈저리게 느긴 한 주였습니다.

 

 

Keep

- PASS가 목적이 아닌 "학습"에 목적을 두었습니다.

- 짧지만 "매일" 학습했습니다.

- 좌절은 했으나 "포기"는 하지 않았습니다.

Problem

- 잘못된 ERD 설계로 Domain간 결합이 크게 발생하였습니다.

- 그저 좋아보이는 아키텍처를 이해없이 사용하여 오히려 프로그램의 복잡성만 증대되었습니다.

- 학습에 대한 시간을 확보해야 하는데 추가적인 업무를 맡아버렸습니다.

- 테스트 코드를 거의 작성하지 못했습니다.

Try

- 혼자 고민하지 않고 동료에게 도움을 구하는 노력을 합니다.

- 좋아보이는 아키텍처라도 내가 구현하고자 하는 애플레키이션에 어떻게 녹일것인가? 에 대한 고민을 먼저 해야합니다.

- 업무를 최대한 빠르게 쳐내고 학습에 집중합니다.

- 테스트 코드를 잊고 지내면 기능 완성 이후 방대한 테스트 코드를 작성해야 하기 때문에 꺼려지게 되니

  TDD에 맞게 테스트 코드를 먼저 작성하고 기능을 구현합니다.

 

 

3주차 주요 학습 Keyword

Clean Architecture

SRP

TDD