우아한테크코스 프리코스 Week 1. 숫자 야구
포스트
취소

우아한테크코스 프리코스 Week 1. 숫자 야구

우아한테크코스 프리코스 기간 동안의 후기와 소감을 적은 연재글입니다.

거의 잊을만 할 때쯤 된 11월 27일에 첫 번째 미션이 날아왔다. 숫자 야구 게임이었다.

  • 기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞히는 게임이다.
  • 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은수가 전혀 없으면 포볼 또는 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞히면 승리한다.

    [예] 상대방(컴퓨터)의 수가 425일 때: 123을 제시한 경우 : 1 스트라이크, 456을 제시한 경우 : 1 스트라이크 1볼, 789를 제시한 경우 : 낫싱

  • 위 숫자 야구 게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 1에서 9까지 서로 다른 임의의 수 3개를 선택한다. 게임 플레이어는 컴퓨터가 생각하고 있는 3개의 숫자를 입력하고, 컴퓨터는 입력한 숫자에 대한 결과를 출력한다.
  • 이 같은 과정을 반복해 컴퓨터가 선택한 3개의 숫자를 모두 맞히면 게임이 종료된다.
  • 게임을 종료한 후 게임을 다시 시작하거나 완전히 종료할 수 있다.

예전에도 기초밖에 안 해봤고 워낙 오랜만에 써보는 자바인지라… 프리코스 시작 전에 자바 책을 빌려다 봤는데도 이거 어떻게 쓰더라? 하고 인터넷을 찾아보기 일쑤였다.

그나마 C랑 자바스크립트 하던 경험이 먹혀서 다행이지.. 일주일이란 시간 동안 자바 기초 책과 노트북 화면을 번갈아 보며 열심히 코딩했던 것 같다.

코드 컨벤션 지키기

그 동안은 사실 코딩을 거의 혼자서 했다. 협업을 해도 서로 파트를 나누어 했기에 서로의 코드를 볼 기회가 많지 않았다. 그래서 일단 미션에 첨부된 코드 컨벤션 관련 문서를 정독하고 거기에 맞춰서 하려고 노력해보았다. 변수명 짓기부터, 중괄호 관련 규칙, 들여쓰기 등. 대충은 알고 있었지만 헷갈리는 내용들을 먼저 정리했다.

기능 분리하기

처음에는 기능을 분리해야 한다는 생각만 앞서 미리 클래스를 분리해 두고 거기에 역할 기능들을 추가해 봤는데, 생각보다 깔끔한 코드를 짜기가 힘들었다. 그래서 일단 한 클래스에 작성한 다음 나중에 리팩토링을 통해 분리했다.

들여쓰기 3번 이상 금지

continue와 break, 그리고 메소드 분리를 통해 해결했다.

자바스크립트와 Node.js를 하면서 콜백 지옥에 고통받던 와중에 들여쓰기를 줄여 깔끔해진 코드를 보니 보기 좋았다.

삼항 연산자 금지

처음엔 왜 금지하지? 했는데, 가독성 측면에서 보자면 나은 선택인 것 같다.

메소드를 잘게 분리할수록 return을 해버리면 되니 else가 필요 없어지는 것도 크고.

주석이 필요없는 코드

주석이 필요없는 코드를 짜기 위해 노력했다. 기능 수정 때마다 업데이트해야하는 주석보다 그렇기 때문에 주석을 최소화 하고 더더욱 메소드나 변수 이름으로 기능을 잘 설명할 수 있도록 최선을 다했다.

Git 잘 활용하기

git을 이전부터 사용하긴 했지만, git 커밋 메시지에 포맷을 지켜, 기능 단위로 커밋하는 연습이 부족했다.
우아한테크코스 프리코스는 3주간 GitHub에서 미션 저장소를 Fork하고, 완성한 뒤 Pull Request를 날리는 방식으로 제출하는데, 다른 참가자들의 코드가 전부 오픈되어 있기 때문에 다른 사람들은 어떻게 짜는지 볼 수 있었고, 내 것보다 훨씬 더 깔끔한 코드들을 보면서 자극받을 수 있었다.
물론 오픈되어 있다고 베껴서 내면 안 된다. 그럤다간 배운 게 없어 오프라인 코딩 테스트를 통과하지 못하게 될 테니…

This post is licensed under CC BY 4.0 by the author.

우아한테크코스 프리코스 Week 0. 지원과 1차 합격

우아한테크코스 프리코스 Week 2. 자동차 경주 게임

Comments powered by Disqus.