위클리 우테코 4.로또 미션 2단계

Hyunta·2022년 3월 6일
0

위클리 우테코

목록 보기
4/18

후기

우테코를 시작한 지 4주차가 되었고, 2번째 미션인 로또 미션도 어느새 끝 무렵을 향해 가고 있다. 이번 리뷰어는 던인데, 이전 리뷰어보다 리뷰를 해주시는 시간이 오래 걸린다. 일하면서 리뷰를 하는 게 쉽지 않은 일이라 생각되어, 내가 최대한 빨리 리뷰를 날리려고 받은 날 최대한 수정해서 PR을 날리려고 했었다. 이번에는 그래서 많은 리뷰를 받지 못했다...

이번 미션을 진행하면서 배우게 된 것들을 시리즈로 정리해봤다.
로또 미션 시리즈

미션의 요구사항 중 TDD를 이용해서 모든 기능을 단위테스트 하며 개발하라는 조건이 있었다. 페어인 판다와 같이 TDD를 하다가 충돌하는 부분이 과연 얼마나 작은 단위까지 테스트해야 하나였는데, 의견 차이가 조금 있었다. 나는 가능한 최소단위로 테스트하기 위해서 더 작은 게 보인다면 그걸 해야 한다고 주장했고, 판다는 너무 세부적으로 들어가지 말자고 하여 토론 후에 절충안을 계속 찾아가며 개발했었다. 페어 프로그래밍으로 만든 구조와 현재 구조가 조금 다른데 리뷰어분에게 피드백을 받으며 구조를 조금 수정했었다.

습관적 프로그래밍

이번 미션에서 가장 크게 피드백 받았던 부분은 MVC 패턴과 관련하여 각 컴포넌트가 독립적으로 기능해야 한다는 점이었다. 프리코스부터 습관적으로 구조를 만들었었다, 그러다 보니 컨트롤러가 상태를 가지도록 설계하는 경우가 있었다.

public class LottoController {
    private final InputView inputView;
    private final OutputView outputView;
    private final LottoBuyStrategy lottoBuyStrategy;
    private Lotto lotto;

위 코드처럼 입출력에 사용할 view를 인스턴스 변수로 가지고 이를 이용해서 입출력을 관리했었는데, 컨트롤러는 상태를 가지면 안 된다는 피드백을 받았다. 모델은 인스턴스가 여러 개 생겨도 무관해서 상태를 가져도 되지만, 컨트롤러는 1개임을 보장받아야 한다. 이 상황에서 컨트롤러가 상태를 가지게 된다면 나중에 멀티스레드 환경에서 에러가 발생할 수 있기 때문에 상태를 가지지 않도록 짜는 것이 좋다고 배우게 됐다. 각 MVC 컴포넌트가 가지는 책임에 대해서 무지했고, 독립적으로 존재해야 하는데 서로 의존하는 관계를 만들어서 이 부분을 모두 리팩토링해서 독립적으로 만들었다.

복리 피드백

이번에는 미션을 구현할 때 자동차 미션을 진행하면서 받았던 피드백을 적용해가면서 구현하려고 노력했다. TDD를 유지하기 위해 메서드가 최대한 한가지 기능을 하도록, 각 도메인이 가지는 역할을 확실히 하고 책임을 질 수 있도록 구조를 만드는 데 힘을 많이 썼다. 페어였던 판다 또한 피드백 받은 내용들을 공유해가며 더 풍성한 페어 프로그래밍을 할 수 있었다. 함께 자라기에서 복리와 관련된 내용이 나오는데 이를 우테코에서 적용해보려고 한다. 미션마다 받은 피드백을 정리해서 다음 미션을 진행하면서 사용하면 피드백이 계속 늘어나는 효과를 낼 수 있다!

스터디 시작!

보이는 라디오에서 우짤코로 인연을 시작한 그룹과 오리의 주도하에 데일리 플래너 스터디를 시작했다. 파랑이 합류하지 못해서 아쉽지만, 다 같이 하루 일정을 공유하고 하루가 지나기 전에 점검하는 스터디이다. 서로 얼마나 공부하는지 확인할 수 있고 이를 통해서 내 계획을 점검해보게 된다. 이번 주는 벌금이 없어서 조금 여유 있는데, 다음 주부터는 벌금을 걷어서 조금 빡세게 지켜볼 예정이다!

하기 싫은 일을 해보자!

테코톡에 지원했었는데 선정됐다. 주제는 싱글턴과 정적 클래스다. 미션을 진행하면서 유틸클래스나 view에서 수행하는 기능들을 static으로 만들어놨는데, 싱글턴 패턴으로 인스턴스를 한 개만 생성해서 구현할 수도 있다. 이 둘의 차이가 너무 궁금했고, 내가 스태틱을 사용하는데 근거를 찾기 위해 해당 주제를 선택했다. 테코톡 하기 싫었는데, 우테코에서는 마음에 불편함이 있으면 무조건 하려고 한다. 그래서 근로도 신청했다.

우테코에서는 근로라는 시스템이 있다. 자취하는 사람들은 생활하기에는 모자라니까 일을 시켜준다. 지원 플랫폼 개발, 학습 플랫폼 개발, 영상, 인스타 등 다양한 근로가 있다. 나는 집에서 다니기 때문에 돈이 완전 급한 건 아니지만, 모자라긴 하다... 그리고 우테코에 조금 진심이고 싶어서 지원했다. 코치들과 더 친해지고 크루들에게 바로 피드백 받아서 수정할 수 있다는 점이 장점이라고 생각해서 지원했다. 가만히 있으면 아무 일도 안되니까 지원해보고 결정은 우테코에서 하겠지!

기대

다음 주부터는 블랙잭 미션을 시작하게 된다. 블랙잭이 뭔지 몰라서 블랙잭도 한번 해보고 도메인에 대해 익숙해지는 시간을 가져야겠다. 벌써 레벨1이 거의 끝나간다, 테코톡도 해야 하고 남은 레벨1 기간을 알차게 보내야겠다.

profile
세상을 아름답게!

0개의 댓글