🧠 이번 주에 새로 배운 것
- 요구사항 정의를 명확하게 하고, 독자(개발자/기획자/디자이너 등)에 따라 내용을 조정해야 한다는 것을 배웠습니다.
- Main Flow, Alternate Flow, Exception Flow, 비즈니스 규칙 등 다양한 시나리오를 고려한 작성이 필요함을 알았습니다.
- 가치 있는 문서는 단순한 결과가 아닌 "왜 그렇게 결정했는지, 어떤 대안이 있었는지, 무엇을 고민했는지"를 담아야 합니다.
- PointHistory에 사용 금액을 음수로 저장하면, 증감 내역을 한눈에 파악할 수 있다는 것을 배웠습니다.
💭 이런 고민이 있었어요
- 시퀀스 다이어그램의 복잡도를 줄이기 위해 early-return 방식을 적용해 가독성을 개선했습니다.
- 클래스 다이어그램에서 각 클래스의 책임과 메서드를 정의하는 과정이 쉽지 않았습니다.
- 명시되지 않은 요구사항(예: 히스토리 저장)까지 구현해야 할지 고민했습니다. 결론적으로, 과제 범위를 벗어난 히스토리 테이블은 제거하기로 결정했습니다.
💡 앞으로 실무에 써먹을 수 있을 것 같은 포인트
- 요구사항 명세서, 클래스 다이어그램, 시퀀스 다이어그램, ERD, 유비쿼터스 언어 정의 등 대부분의 문서가 실무에서 필수적임을 깨달았습니다.
- 앞으로는 간단한 업무가 아닌 이상 구현보다 문서를 먼저 작성하는 습관을 들이려고 합니다.
- 배치 다이어그램, 플로우차트, 컴포넌트 다이어그램 등 상황에 맞는 적절한 문서를 선택해 작성할 계획입니다. 작성한 문서를 활용해 비개발자와의 커뮤니케이션 효율성을 직접 검증해보려고 합니다.
🤔 아쉬웠던 점 & 다음 주에 해보고 싶은 것
- 주문 상태에 대한 상태 다이어그램(State Diagram)을 작성하지 못했습니다. 다음 주차 과제 완료 후 시간이 남으면 보완할 예정입니다.
- 본격적인 구현 단계에 진입합니다. 초기 설계 문서가 의도대로 작성되었는지 검증하고, "설계만 잘하면 구현은 수월한가?"를 직접 경험해보려고 합니다.