목록활동기록 (16)
모눈종이에 사각사각
0. 시작 이번 3주차 미션은 정말 코드를 많이 수정했던 한 주였다. 다 작성하고 테스트 코드를 돌렸는데 예상치 못한 곳에서 오류가 발생했고, 이를 해결하려다 보니 전체적인 구조를 바꿔야 했었다. 이번주는 2주차 미션의 목표인 함수 분리와 테스트 작성에 더해서 클래스를 분리하고, 도메인 로직에 대한 단위 테스트를 작성하는 연습을 하는 것이 목표였다. 1. 기능 요구사항 다음은 내가 작성한 구현할 기능 목록이다. 세세하게 조건을 맞춰줘야 하는 부분이 많아서 지난주보다 많아졌다. 2. 프로그래밍 요구사항 위의 사진은 지난주 까지의 요구사항이고, 이번주에는 이렇게 추가된 요구사항이 있었다. Java Enum을 적용해야 했기에 Enum에 대한 공부도 다시 하고, 적용하려 노력했다. 그리고 도메인 로직에 단위 테..
0. 시작 본격적인 미션이 시작된 것 같다고 느낀 한 주였다. 지난주인 1주차의 목표는 Git과 미션 사이클에 익숙해지는 것이 목표였다. 2주차는 아래의 메일 본문 내용의 일부에 나와있듯이, 함수를 분리하고, 함수별로 테스트를 작성하는 것에 익숙해지는 것이 목표였다. 코드를 작성하면서 내가 한 고민사항을 적어보려고 한다. 조금 길어질 수도 있지만, 사고과정 또한 하나의 성장과정이라고 생각해서 기록해두면 좋을 것 같다. 1. 기능 요구사항 2주차 미션은 숫자야구이다. 지난주와 동일하게 진행방식은 기능요구사항, 프로그래밍 요구사항, 과제 요구사항을 다 구현하는 것이었다. 기능을 구현하기 전 기능 목록을 만들고 기능 단위로 커밋을 해야했기에 기능 요구사항을 읽으면서 구현할 기능을 정리했다. 게임 예시를 공책에..
단위 테스트를 하는 방법을 조금씩 공부를 하고 있던 중, 반환값이 없는, 즉 프린트한 결과값을 통해서는 테스트를 어떻게 하는지 궁금하여 찾아보았다. 내가 하려고 한 테스트는 게임의 상태를 출력하는 것이다. 게임 상태 클래스는 다음과 같다. public class GameState { private int strike; private int ball; public GameState() { this.strike = INITIAL_NUMBER; this.ball = INITIAL_NUMBER; } public void addStrike() { ++strike; } public void addBall() { ++ball; } public int getStrike() { return strike; } public..
[우테코 프리코스 2주차] NsTest 분석에 이어서 테스트코드에서 사용된 Assertions클래스의 메서드를 분석해보려고 한다. 일단 위의 게임종류_후_재시작()부분의 코드를 보면 컴퓨터가 (1, 3, 5)를 생각했을 때 사용자가 "246"을 입력하면 "낫싱"을, "135"를 입력하면 "3스트라이크"를 출력해야 한다는 뜻이며 "1"을 입력하면 재시작하고, 컴퓨터가 (5, 8, 9)를 생각했을 때 사용자가 "297"을 입력하면 "1볼 1스트라이크"을, "289"를 입력하면 "3스트라이크"를 출력해야 한다 그리고 "2"를 입력하면 "게임 종료"를 출력해야 한다는 뜻이다. 예외_테스트()부분은 사용자가 3자리 숫자가 아닌 다른 숫자를 입력했을 때 예외가 발생해야 한다는 것이다. ⚾ assertRandomNu..
2주차에서 우리가 이뤄야할 것들 중 하나가 테스트 코드에 익숙해지고, 테스트 도구를 잘 다루는 것이다. 아직 테스트 코드에 대해 모르는 것이 많아 이 기회에 하나씩 정리해가며 분석해보려고 한다. 2주차의 과제 테스트는 NsTest 클래스의 메서드를 활용해서 진행된다. ⚾ run 메서드 게임종료_후_재시작() 테스트코드를 보면 run()이 들어가있는 것을 확인할 수 있다. run()은 다음과 같이 구현되어 있다. protected final void run(final String... args) { command(args); runMain(); } ⚾ command 메서드 run() 안에 있는 command()은 다음과 같다. private void command(final String... args) {..
우아한테스코스의 4주간의 프리코스 기간이 시작됐다. 앞으로 4주동안 공부한 내용을 꾸준히 기록해보려고 한다. 🍁 진행 방식 미션은 기능 요구 사항, 프로그래밍 요구 사항, 과제 진행 요구 사항 세 가지로 구성되어 있다. 세 개의 요구 사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다. 기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다 문제는 총 7문제이다. 🍁 미션 문제1 ## 🚩 구현할 기능 목록 - [x] 페이지 번호 각 자리 모두 더하기 - [x] 페이지 번호 각 자리 모두 곱하기 - [x] 나올 수 있는 4가지의 수 중 가장 큰 수 구하기 - [x] 시작면이나 마지막 면이 나오면 에러 처리하기 - [x] 왼쪽 페..