Dailelog
우테코 프리코스 3,4주차 본문
3주차 학습
이번 주 미션 내용은 로또 프로그래밍입니다.
학습 목표
- 클래스 생성 및 객체 협력을 통한 기능 구현
- 단위 테스트를 통한 정확성 확보
- 2주 차 공통 피드백 반영
추가 요구사항
- 함수/메서드 길이 15라인 이내로 제한
- 단일 책임 원칙 준수
- Java Enum 활용
- UI 로직 제외한 기능에 대한 단위 테스트 작성
주요 고민사항
- 도메인과 모델의 차이 이해
- 테스트 시 무한루프 방지
- Consol.readLine 에서 inputStream이 테스트 시 계속 열려있어 오류 발행하는 사항을 인지 함
- 전체 구조 설계
- MVC 패턴을 사용할려고 했는데 각 객체들의 역할에 대한 명칭이 고민됨
- 생성자 주입 방식
- 오류 발생 시 재입력 처리
발견된 문제점
- 당첨 번호 범위 검증 누락
- 요구사항 중 정렬 기능 미구현
- UnsupportedOperationException 발생
README.md 작성 가이드
프로젝트 개요와 주요 기능을 소개하는 README.md를 마크다운 문법을 활용하여 상세히 작성할 것
- 1일 회고
- 29일
- 도메인과 모델의 차이에 대해 고민했습니다. 도메인은 비즈니스 로직을 담당하고, 모델은 데이터 구조를 표현한다는 점을 이해했습니다.
- 30일
- 테스트 시 무한루프를 방지하기 위해 최대 반복 횟수를 설정하는 방법을 고려했습니다.
- 31일
- 전체 구조 설계에 집중했습니다. 각 클래스의 역할과 책임을 명확히 정의하고 상호작용을 고려했습니다.
- 1일
- 생성자 주입 방식에 대해 학습했습니다. 의존성 주입을 통해 객체 간의 결합도를 낮추는 방법을 적용해보았습니다.
- 2일
- 오류 발생 시 재입력 처리 로직을 구현했습니다. 사용자 경험을 개선하기 위해 적절한 오류 메시지와 함께 재시도 기회를 제공했습니다.
- 3일
- 당첨 번호 범위 검증 누락 문제를 발견하고 수정했습니다. 입력값 유효성 검사를 강화했습니다.
- 4일
- 요구사항 중 정렬 기능을 구현했습니다. Collections.sort()를 활용하여 효율적으로 구현했습니다.
- 29일
4주차 학습
4주차는 개인적인 사정으로 앞에 주차와 달리 기록을 놓친 점이 저 자신에게 아쉬웠던 주였습니다. 4주차 미션은 편의점 이였습니다. 개인적으로 시간이 없어 코딩을 하고 리팩토링을 했는 처음부터 함수의 역할 단위를 생각하지 않고 개발해서 리팩토링 과정에서 너무나 힘들었습니다. 그래서 지키지 못한 부분도 존재 했던거 같습니다. 그래서 너무나 아쉬웠습니다.
프리코스를 통해 목표로 삼았던 “다른 사람들과의 코드 리뷰 경험”과 “코드의 의도를 기록하는 습관 만들기”를 약 80% 달성했다고 느낍니다. 이 목표를 달성할 수 있었던 이유는, 동일한 목표를 가지고 다양한 관점을 가진 사람들과 코드 리뷰를 하면서 서로의 코드 스타일과 접근 방식을 비교하고, 저 자신의 코드 또한 되돌아보는 기회를 얻었기 때문입니다. 다른 사람들이 제 코드에 대해 피드백을 주었을 때 제가 놓쳤던 부분을 발견할 수 있었고, 이는 제 코드를 더욱 발전시키는 데 큰 도움이 되었습니다.
또한, 코드의 의도를 기록하는 습관을 위해 어떤 생각으로 문제를 해결했는지와 고민했던 여러 방법들을 글로 남겼습니다. 이 기록 덕분에 구현 과정에서 제가 어떤 선택을 했고, 왜 그렇게 선택했는지 더 명확히 인지하게 되었으며, 선택하지 않은 대안들도 기록해 두어 향후 코드를 개선하거나 리뷰할 때 참고할 수 있게 되었습니다. 4주차 미션에서는 구현에 집중하느라 기록을 놓친 점이 아쉬웠지만, 그 외의 주차에서는 기록을 지속해 목표를 대부분 달성할 수 있었습니다.
프리코스를 통해 배운 또 다른 중요한 교훈은 개발 과정의 흐름을 놓치지 않는 방법입니다. 기록하는 습관을 통해 다양한 문제 상황 속에서도 현재 제가 집중해야 할 핵심 문제를 쉽게 파악할 수 있었으며, 이를 통해 복잡한 문제들 속에서도 더 효율적으로 해결책을 찾아가는 능력이 향상되었습니다. 그리고 의식적으로 어떤 부분을 놓치고 있는지 인지하고 의식적으로 코딩할 수 있었습니다.
이러한 기록과 코드 리뷰 경험은 앞으로 개발 과정에서 중요한 자산이 될 것이라 확신합니다. 기록을 통해 문제 해결의 논리적 흐름을 명확히 하고, 다른 사람과의 코드 리뷰에서 다양한 시각과 피드백을 얻는 습관은 개발자로서 지속적인 성장에 크게 기여할 것입니다.
'활동' 카테고리의 다른 글
우테코 프리코스 1주차 나의 코드리뷰 (0) | 2024.10.25 |
---|---|
우테코 7기 프리코스 1주차 회고 (1) | 2024.10.22 |
우테코 프리코스 - 1 주차 시작 (0) | 2024.10.17 |
BITs - 테크톡 (3) | 2024.04.09 |