1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임
IllegalArgumentException
을 발생시킨 후 애플리케이션은 종료되어야 한다.1볼 1스트라이크
낫싱
3스트라이크
3개의 숫자를 모두 맞히셨습니다! 게임 종료
1주차 프리코스 깃허브 링크
작성한 코드
프리코스 참고자료 노션 정리
반복
컴퓨터 숫자 생성 : 1에서 9까지 정수 3개 (중복 x)
반복
1. 유저에게 3자리 정수 인풋 받기
예외처리
2. 결과 출력
1. 입력한 수에 대한 볼, 스트라이크 개수 : n볼 n스트라이크
2. 같은 수가 하나도 없는 경우 : 낫싱
3. 3개의 숫자를 모두 맞힐 경우 : 3스트라이크
+ 인풋이 1일 시 브레이크
+ 인풋이 2일 시 종료
+ 이외 예외처리
jdk 버전 8
, intellij IDEA
로 세팅했습니다.자바 코드 컨벤션
을 꾸준히 확인했습니다.crlf
를 lf
로 전환했습니다.커밋 메세지 컨벤션
을 지키려 노력했습니다."타입(스코프): 내용"
형식으로, 모두 영문 작성했습니다.스코프
에는 바뀐 파일/클래스 명을 썼고, 바뀐 파일이 3개 이상일 경우 비워뒀습니다.README.md
속 사항을 구현할 때마다 커밋을 남겼습니다.MVC 구조
를 사용했습니다./model
: 데이터 저장 및 처리/view
: 인풋/아웃풋 관리/controller
: 프로그램 실행 로직 클래스indent = 1
을 지키려 노력했습니다.stream
메소드들을 공부하고 사용했습니다.메소드 당 기능 하나
를 담당하도록 설계했습니다.getter/setter
대신 상수 & 생성자를 사용했습니다.상수 클래스
를 사용했습니다.else/switch
대신 if/continue
를 사용했습니다.이전의 저는 클린코드에 대한 열망은 있었지만, 구체적인 방법론을 몰랐습니다.
구체적으로 살펴보자면,
- 컨벤션의 '컨'자도 몰랐음(자바 컨벤션? 커밋컨벤션?)
- 클래스 분할 없이 메인 메소드 만으로 코드를 짜옴
- readme.md 파일은 항상 삭제해옴
- git 커멘드도 add,push 밖에 몰랐음
- indent가 무엇인지도 검색해보고서 알았음
- MVC 모델은 아직도 정확히 감이 안잡힘
이번 기회로 여러가지 컨벤션을 배우고 구현사항들을 하나씩 파고들 수 있었어요.
'막코딩'을 하던 이전과 비교해보면 코드의 구조가 확연히 좋아졌습니다.
능동적인 학습을 해나갈 수 있었습니다.
원칙들을 지키기 위해 스스로 서치하거나 <클린코드> 책을 읽고 적용시켰습니다.
그러면서 좋은 설계의 중요성을 체감할 수 있었습니다!
(리팩토링을 하고...또 하고...)
기존에 인강을 들으며 공부하던 방식보다 보람찼고,
README.md를 분석하며 대략적인 공부 방향이 정해졌기에 막막하지도 않았습니다ㅎㅎ
일주일이란 기간은 짧았습니다.
아직 새로 배워나가야 할 것들이 많습니다.
배운 개념들도 계속 적용시키며 익숙해져야 할 것 같습니다.
그래도 시작이 반이라는 말도 있잖아요?
앞으로도 계속 방향을 잃지 않고 공부 해나가려 합니다!
화이팅👍