목차
- ReadMe를 통한 프로젝트 소개 부족
- "로또 판매기" 기능 목록과 예외 처리
- Use Case 시나리오와 다이어그램
- 확장 가능성 고려 사항
- 3주 차 계획 세우기
- 내일 Todo 리스트
ReadMe를 통한 프로젝트 설명 부족
이번 주차 미션을 받는 것과 동시에 2주 차 미션에 대한 피드백도 같이 받았다. 피드백의 첫 번째 항목은 "README.md를 상세히 작성한다"였고, 그 내용 중에 "리드미는 해당 프로젝트가 어떤 프로젝트인지 설명하는 문서이다"라는 부분이 있었다. 이 문장을 보자마자, 나는 고민에 빠졌다.
내 리드미를 통해 애플리케이션 소개가 충분히 잘 전달되었을까? 스스로 질문하며 지금까지 수행한 1, 2주차 미션의 리드미를 다시 읽어보았다. 기능 목록, 예외 처리, 유스케이스 시나리오, MVC 디자인 패턴 설계, 클래스 다이어그램, 그리고 애플리케이션의 확장성 고려 사항 구체적인 내용들로 구성되어 있었고, 이를 통해 내가 각 기능을 어떻게 구현했는지, 어떤 의도로 설계했는지 충분히 전달되었을 거라고 생각했다. 그리고 내 코드를 리뷰해주신 분들도 리드미에 대해 별다른 피드백은 없이 오히려 칭찬만 했었다.
그런데 문득, 나와 리뷰해주신 분들의 공통점이 떠올랐다. 우리는 모두 프리코스를 수행하고 있었고, 매일같이 각 미션에 대해 고민해 온 사람들이었다. 그런 만큼 애플리케이션 설명이 다소 부족하더라도 우리는 프로젝트의 맥락을 이미 잘 알고 있었기 때문에 쉽게 이해했을 수 있지 않을까? 라는 생각이 들었다.
그래서 프리코스에 참여하지 않은 내 친구에게 리드미를 보여주고 내가 구현한 애플리케이션이 어떤 건지 이해가 되냐고 물어봤다. 그런데 친구는 리드미의 기능 설명과 코드 구조는 알겠지만 애플리케이션의 목적이나 사용자의 조작 범위가 어디까지인지 잘 와닿지 않는다고 했다. 특히, 왜 하필 이 기능들로 선택했는지가 제일 궁금해했다는 피드백을 받았다.
이 피드백을 통해, 애플리케이션의 핵심 기능과 구조를 설명하는 것뿐 아니라, 해결하려는 문제와 사용자가 어떻게 사용할 수 있는지, 특정 기능의 설계 이유도 리드미에 포함되어야 한다는 점을 깨달았다.
그래서 이번 주차 미션에서는 리드미의 첫 부분에 애플리케이션의 간단한 소개와 추가 설명을 추가해보았다. 그 결과, 처음부터 애플리케이션의 전체 그림과 목적, 사용 범위를 이해할 수 있어, 이후의 기능 목록과 상세 설명이 훨씬 더 명확하고 빠르게 이해된다는 느낌을 받았다.
"로또 판매기" 기능 목록과 예외 처리
이번 미션에 대한 기능 목록이 기능들을 많이 포함하고 있었지만 전 주 미션들에 비해 어렵게 생각해야되는 예외처리는 없다고 느껴졌다.
Use Case 시나리오와 다이어그램
유스케이스 시나리오에서는 지난 미션과 달라진 점은 좀 더 길어졌다는 것과, 예외 흐름에서 예외 발생시에 이제는 시스템이 애플리케이션을 종료하는게 아니라 예외가 발생한 시점부터 사용자에게 입력 요청을 다시 받는다.
확장 가능성 고려 사항
이 애플리케이션에서 확장 가능성을 고려했을 때, 실제로 있으면 좋을 것 같은 기능들을 고민해보았다. 동시에 내가 구현할 코드가 이러한 확장 가능한 기능들을 담을 수 있을지, 그 기능들의 확장 가능성을 어떻게 구현해야 할지 고민했다. 그 결과로 다음과 같은 3가지 기능들을 생각했다.
3주 차 계획 세우기
수요일(10.30) | - 2주 차 공통 피드백 숙지 - 기능 목록 작성 - 유스케이스 설계 - 확장성 생각해보기 |
목요일(10.31) | - MVC 구조 설계 - 의존성 주입 공부 #1 |
금요일(11.01) | - 실제 코드 구현 - 테스트 코드 구현 (메서드 단위로) - 의존성 주입 공부 #2 |
토요일(11.02) | - 1차 코드 리팩토링 - 다양한 Exception의 유형 공부 |
일요일(11.03) | - 2차 코드 리팩토링 |
월요일(11.04) | - 회고 작성 및 제출 |
내일 Todo 리스트
- MVC 디자인 패턴
- 메서드 네이밍에 대해 고민해보기 🔳
- 메서드가 한가지 일을 하는지 확인하는 나만의 기준 업그레이드 🔳
- 객체로 분리하는 기준에 대해 생각해보기 🔳
- 3주 차 미션 MVC 구조 설계 🔳
- (학습) 의존성 주입 공부 🔳
끝.
'우아한테크코스' 카테고리의 다른 글
"프리코스 18일차" 클래스 간에 강한 결합의 해결책: 팩토리 클래스 (1) | 2024.11.01 |
---|---|
"프리코스 17일차" 설계 방식에 대해 고민해보기, 3주 차 미션 MVC 구조 설계 완료 (3) | 2024.10.31 |
JUnit5와 AssertJ를 활용한 단위 테스트(Unit Test), TDD를 곁들인 (2) | 2024.10.29 |
"프리코스 2주 차 회고" 프리코스 목표와 나의 변화를 돌아보기 (6) | 2024.10.28 |
"프리코스 13일차" 코드 리팩토링, 클래스 다이어그램 (0) | 2024.10.27 |