[우아한 테크코스 8기] 3주차 프리코스 회고
·
experience
3주차 미션: Lotto 3주차 로또 미션은 이전 미션들보다 훨씬 복잡한 구조를 가지면서, 책임을 어디에 둘 것인가 에 대한 고민을 많이 했던것 같습니다. 리드미에 기능을 모두 정리한 후, 기능 단위 커밋을 진행했습니다. 1. 생성 책임의 위치 로또 번호를 생성하는 책임을 어디에 둘지 가장 많이 고민했습니다.Lotto는 값 객체로, 이미 생성된 번호를 받아서 검증하고 보관하는 역할에 충실해야 한다고 판단했습니다.따라서 로또 번호 생성 책임은 Lottos에서 담당하도록 분리했습니다.Lottos는 사용자가 구입한 여러 장의 로또를 관리하며, 내부적으로 각 Lotto 객체를 생성하는 책임을 가집니다.이렇게 역할을 분리하니 Lotto는 불변 객체로 유지할 수 있었고, 테스트 역시 훨씬 수월해졌습니다. 2. ..
[우아한 테크코스 8기] 2주차 프리코스 회고
·
experience
따로 블로그에는 올리지 못했던 ...!! 이미 반년이 지났지만 뒤늦게라도 올립니당 .. 2주차 미션 : racingcar 2주차 미션에서는 자바의 단일 책임 원칙과 MVC 패턴의 의존성을 고민하면서 코드를 설계하고, 테스트 가능성을 높이는 데 집중했습니다.다음은 고민했던 점을 정리해 보았습니다. 1. 클래스 설계와 책임 분리처음에는 Car와 Cars 두 클래스만으로 게임을 구성했지만, 게임 진행 로직이 컨트롤러에 노출되어 재사용이 어렵다는 문제를 발견했습니다. 그래서 게임의 핵심 흐름을 제어할 RacingGame 클래스를 추가하여, 컨트롤러는 입력과 출력, 게임 흐름만 관리하고, 실제 도메인 로직은 도메인 클래스가 책임지도록 구조를 바꿨습니다.이 구조를 통해 각 클래스가 자신의 책임에만 집중하..
[우아한테크코스 8기] 1주차 프리코스 회고
·
experience
1주차 미션은 문자열 덧셈 계산기 구현이었다. 1주차 미션과 시험이 겹쳐서, 미션 마감 하루전 미션을 시작하게 되었다.미션을 진행하면서 처음에 눈에 들어온 것은, '기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다.' 는 것이었다.간단해 보였지만 어떻게 요구사항을 분석해 나가느냐에 따라 차이가 큰 미션이라고 생각했다. 기능 목록을 작성하고, 기능 목록을 기준으로 커밋하라는 요구사항이 있었다. 먼저 구현할 기능을 정리하고 순서대로 기능을 추가하였다. 처음에 고민하면서 기능 목록을 꼼꼼하게 정리하고 미션을 시작하니까 수월했던것 같다. 발생할 수 있는 예외에 대해서도 README에 정리해 보았다. 고민했던점 ! 1.입력값의 범위입력값의 타입과 범위를 어떻게 설정할지 고민하였다.요구..