우아한테크캠프 회고-로또

김병호·2021년 7월 2일
0

운좋게 우아한 테크캠프를 시작하게되었다.

코스의 수료를 위해서는 NEXTSTEP에서 제시하는 미션을 모두 수행해야한다.

https://github.com/etff/java-lotto

첫번째 미션은 로또이다. 사실 구글링에서 로또를 검색하면 간단하게 구현을 할 수 있다.
하지만 내가 진행해야할 로또 미션은 객체지향의 세상에서 객체간의 역할과 책임을 바탕으로 서로가 협력하여 결과를 도출해야한다.

기본적인 아이디어를 몇가지 도출했다. 로또에서 필요한 것은 무엇일까.
로또, 돈, 번호생성기, 당첨결과

중요한 도메인을 도출하고 필요하다면 나중에 도메인을 더하는 방식으로 개발했다.

돈이라는 원시값을 포장하는 객체를 만들었다. 이 과정에서 돈 객체의 amount를 primitvie한 값을 가지고 있었는데 어색한 부분이 있었던 것같다.

비슷한 내용을 줄일 것인지, 혹은 객체 지향적으로 수정할 것인지.
마지막 요구사항은 로또 번호를 자동 생성하는 기능외에 사용자로부터 로또 번호를 입력받는
기능을 개발하는 것이었다.

내가 처음에 든 생각은 기존에 자동 추출 기능이 구현되어있으니, 마지막 로또 목록에 수동입력값만 추가하면 될 것이라 생각하고 구현을 했다. 하지만 리뷰어의 피드백을 받으면서
자동 번호 생성, 수동 번호 생성으로 기능을 나누고 개발하면 좀더 나은 구조로 변경가능할 것같았다. 처음 생각한 방법으로 보았을 때, 당장의 요구사항을 반영하기에는 좋지만 수동 입력에서 더 많은 기능적 요구가 많아지면 대응하기 어렵기 때문이다.

1주차 미션을 진행하면서 객체지향적 설계에 고민하고 해결해보는 좋은 시간이었다.
개인 미션과는 별개로 같이 교육과정 스터디를 할 사람들을 모아 스터디를 하기로 했다.

그동안에 여러가지 스터디를 해왔다. 참여률을 높이면서 서로에게 도움이 될 수 있는 방법들은 무엇이 있을까. 스터디에서 내가 제안한 내용은 진행 미션의 짝프로그래밍이다.

이번 스터디에서 충분히 IT적 백그라운드를 가진 사람들이 모였다고 판단했다. 스터디의 동기부여는 여러가지 있겠지만 여기에서만 할 수 있는 특별함이 있다면 참여률이 높아지겠다고 생각했다.

무조건 시작하자고 하면 방법을 헤매기 때문에 짝프로그래밍을 어떻게해야 효율적인지, PP경험자들의 도움을 받았다. 다행스럽게도 반응이 좋다. 진행한 미션외에도 새로운 것을 시도해본 한주였다.

profile
노력하는 개발자입니다!

0개의 댓글