목록활동기록 (8)
모눈종이에 사각사각
🍎 최종 코딩 테스트 준비 프리코스 4주차가 끝난 후 1차 합격자 발표 및 코딩테스트까지는 약 3주간의 시간이 있었다. 최종 코딩 테스트 대비를 위해 집 주변에서 진행하는 스터디 모임에 들어갔다. 11월 26일을 시작으로 시험이 있던 주인 12월 11일까지 매주 토요일, 일요일에 모여서 팀원들 다같이 준비를 했다. 2, 3, 4주차의 문제를 풀어보면서 다시 복습을 했고, 지난 기수인 3기와 4기의 최종 코딩 테스트 문제도 풀었다. 5시간 동안 문제를 푼 다음에 1~2시간 정도 각자 고민하면서 구현했던 부분 혹은 서로의 코드를 보면서 의문이 드는 점에 대해 이야기를 했다. 팀원들 모두 뛰어난 실력을 가지고 계시던 분들이라 정말 많이 배웠다. 혼자 코딩테스트를 준비했다면, 절대 이렇게 준비하지 못했을 것 같..
0. 시작 벌써 마지막 미션이다. 4주가 이렇게 빨리 지나가다니... 이번주 미션은 다리 건너기 미션이었다. 문제를 읽었는데 맞게 이해한건가? 싶던 찰나에 슬랙에 관련 영상을 올려주신 분들이 있어 잘 이해할 수 있었다. 더보기 https://youtu.be/JUrErvCiPDc -> 오징어 게임의 다리 게임(매운맛) https://youtu.be/dAvPLL4y0uE -> 런닝맨의 다리 게임(순한맛) 이번주의 미션은 3주차 미션에 리팩터링이 추가되었다! 3주차에도 일단 작성한 다음에 다 고쳤던 기억이 있었기에 이번에도 비슷하게 진행하려고 했다. 그러나 시작하기 전에 3주차 미션의 코드 리뷰를 통해 부족한 점은 무엇인지, 개선할 점이 있는지 먼저 학습했다. 1. 3주차 코드리뷰 1-1. static 메서드..
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] 왼쪽 페..