[우아한 테크 캠프 Pro] 자동차 경주 게임(프리코스 2주차)

백마금편·2022년 5월 2일
0
post-thumbnail
post-custom-banner

우아한 테크 캠프 프리코스 2주차

2주차 과제 메일이 도착했다.
기간은 역시 1주일이며, github를 통해 기본 세팅을 받고 코딩 후 제출 하는 방식이였다.
과제는 크게 기능 요구사항, 프로그래밍 요구사항, 과제 진행 요구사항 3가지로 구성 되었다.

기능 요구사항

기능 요구사항1
기능 요구사항2
기능 요구사항3

기능 요구사항은 Java를 배우면서 만들어 봤던 단순 숫자야구였다.

프로그래밍 요구사항

  • indent(인덴트, 들여쓰기) depth를 2가 넘지 않도록 구현한다.(1까지만 허용)

    		while(index > 0) { // depth 1
                 for (int i = 0; i < list.size(); i++) { // depth 2
                     ...
                 }
             }
    • indent depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다.
  • 자바 8에 추가된 stream api를 사용하지 않고 구현해야 한다. 단, 람다는 사용 가능하다.

  • else 예약어를 쓰지 않는다.

    • 힌트: If 조건절에서 return하는 방식으로 구현하면 else를 사용하지 않아도 된다.
    • else를 쓰지 말라고 하니 switch/case로 구현하는 경우가 있는데 switch/case도 허용하지 않는다.
  • 함수(또는 메소드)의 길이가 10라인을 넘어가지 않도록 구현한다.

    • 함수(또는 메소드)가 한가지 일만 잘 하도록 구현한다.

2주차 추가 요구사항

일급콜렉션을 활용해 구현한다.
Collection을 포장하면서, 그 외 다른 멤버 변수가 없는 상태를 일급 컬렉션이라 한다.
1. 비지니스에 종속적인 자료구조
2. Collection의 불변성을 보장
3. 상태와 행위를 한 곳에서 관리
4. 이름이 있는 컬렉션
경주용 차량 객체를 리스트로 가지는 경주용 차량 리스트 객체를 일급 콜렉션을 활용해 구현했다.

모든 원시값과 문자열을 포장한다

과제 진행 요구사항

프리코스 2주차 후기

프리코스 2주차 자동차 경주 게임를 작성하고 과제를 제출했다.
1주 차 피드백처럼 기능 목록을 상세히 작성하려고 노력했다.
작성한 기능 목록을 토대로 TDD개발을 진행했는데 역시 실전은 달랐다.
2주 차 추가 요구사항인 일급콜렉션 활용, 모든 원시값과 문자열을 포장한다. 2가지를 구글링하면서 나름대로 이해하여 코딩했지만 올바르게 했는지는 잘 모르겠다.
위 2가지 추가 요구사항은 소트웍스 엔솔러지책에 있는 내용인데 나중에 시간이 되면 읽어봐야겠다.
우아한 테크 캠프 Pro 프리 코스가 끝났다. 정규과정도 배우고 싶은 내용이 많지만 프리코스 2주차 내용만 해도 많은 도움이 되었고 어느 정도 변환점이 된 거 같다.

profile
뭐 어떻게 잘 되겠지
post-custom-banner

0개의 댓글