프리코스 1주차 미션 (숫자야구게임)

1. 요구사항

  • 자바 코드 컨벤션을 지키면서 프로그래밍 한다.
  • indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. (2까지만 허용한다.)
  • 함수(또는 메소드)가 한 가지 일만 하도록 최대한 작게 만들어라.

2. 필요한 기능

1. 컴퓨터가 0~9 사이의 서로 다른 3개의 숫자를 만든다.
2. 사용자로부터 3개의 숫자를 입력받는다.
3.컴퓨터가 만든 숫자와 사용자가 입력한 숫자가 일치하는지 확인한다.
  3-1.일치한다면 정답임을 알린 후 이번게임을 종료한다.
  3-2.일치하지 않는다면 힌트를 출력하고 다시 숫자를 입력받는다.

3. History

  1. 19.12.03 (화)
  • Markdown 사용법 숙지 및 README.md 파일 수정
  • 숫자 야구 게임 기능 구현 목록 작성
  • 자바 코드 컨벤션 학습 및 숙지

  1. 19.12.04 (수)
  • README.md 필요한 기능 세부항목 구분
  • 기능1 구현: NumberGenerator 클래
  • 기능2 구현: InputNumber 클래스
  • 대략적인 숫자야구게임 시스템 구성: BaseballSystem 클래스

  1. 19.12.05 (목)
  • 기능3 구현: ComparedResult 클래스
  • 기능3-1, 3-2 구현: CompareResult, MassageSystem
  • BaseballSystem, Main 클래스 생성 및 구축 --> 숫자야구게임 정상 실행
  • 문제점: "숫자를 입력해주세요:"가 입력전에 나와야하는데 입력을 한 다음에 출력되는 문제!
  1. 19.12.08 (일)
  • 숫자야구게임 전체적이 시스템인 BaseballSystem 클래스 생성
  • 숫자야구게임 시작하는 Main 클래스 생성
  • 전체적인 리팩토링 시행
  • 오류개선(1.strike, ball 갯수 누적 / 2. 숫자입력창 출력 순서)
  • 완성
  1. 20.01.07 (화)
  • 접근 지정자 재설정
  • 띄어쓰기 등 'Java Coding Conventions'에 맞게 변경

4. 1차 피드백 (by. 러너덕님)

  1. 불필요한 필드선언 줄이기
      -> 메서드 내부 로컬변수로 해결할 수 있는 경우엔 필드선언X
  2. 불필요한 주석 줄이기
      -> 메서드, 파라미터 등의 네이밍에 신경써서 불필요한 주석 줄이기
  3. 필드에 접근지정자 static 선정 이유
      -> 코드 먼저 확인한 후 정리
  4. 가능한 내장 메서드 활용 (무분별한 메서드 추출X)
      -> 무분별한 메서드 생성은 개발자에게 혼란을 야기한다. 내장메서드 애용하기!
  5. 메서드의 내부에서 객체생성하기
      -> 람다식, 메서드 참조의 개념 활용하기