콘텐츠로 이동

프로그래밍 요구사항

1주차

  1. JDK 21 버전에서 실행 가능해야 한다.
  2. 프로그램 실행의 시작점은 Application의 main()이다.
  3. build.gradle 파일은 변경할 수 없으며, 제공된 라이브러리 이외의 외부 라이브러리는 사용하지 않는다.
  4. 프로그램 종료 시 System.exit()를 호출하지 않는다.
  5. 프로그래밍 요구 사항에서 달리 명시하지 않는 한 파일, 패키지 등의 이름을 바꾸거나 이동하지 않는다.
  6. 자바 코드 컨벤션을 지키면서 프로그래밍한다.
  7. 기본적으로 Java Style Guide를 원칙으로 한다.
  8. 라이브러리 camp.nextstep.edu.missionutils에서 제공하는 Console API를 사용하여 구현해야 한다. 사용자가 입력하는 값은 camp.nextstep.edu.missionutils.Console의 readLine()을 활용한다.

2주차

  1. indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다.
    • 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.
    • 힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메서드)를 분리하면 된다.
  2. 3항 연산자를 쓰지 않는다.
  3. 함수(또는 메서드)가 한 가지 일만 하도록 최대한 작게 만들어라.
  4. JUnit 5와 AssertJ를 이용하여 정리한 기능 목록이 정상적으로 작동하는지 테스트 코드로 확인한다.
  5. 라이브러리 camp.nextstep.edu.missionutils에서 제공하는 Randoms 및 Console API를 사용하여 구현해야 한다. Random 값 추출은 camp.nextstep.edu.missionutils.Randoms의 pickNumberInRange()를 활용한다. 사용자가 입력하는 값은 camp.nextstep.edu.missionutils.Console의 readLine()을 활용한다. 사용 예시 : Randoms.pickNumberInRange(0, 9);

  6. 기본적인 Git 명령어를 숙지한다 + Git으로 관리할 자원을 고려한다

  7. 커밋 메시지를 의미 있게 작성한다
  8. 커밋 메시지에 이슈 또는 풀 리퀘스트 번호를 포함하지 않는다
  9. 풀 리퀘스트를 만든 후에는 닫지 말고 추가 커밋을 한다
  10. 오류를 찾을 때 출력 함수 대신 디버거를 사용한다
  11. 이름을 통해 의도를 드러낸다
  12. 축약하지 않는다
  13. 공백도 코딩 컨벤션이다
  14. 공백 라인을 의미 있게 사용한다
  15. 스페이스와 탭을 혼용하지 않는다
  16. 코드 포매팅을 사용한다
    • intelliJ IDEA : Ctrl+Alt+L
    • Eclipse : Ctrl+Shift+F
    • Visual Studio Code : Shift+Alt+F
  17. Java에서 제공하는 API를 적극 활용한다
  18. 배열 대신 컬렉션을 사용한다

3주차

  1. 함수(또는 메서드)의 길이가 15라인을 넘어가지 않도록 구현한다.
  2. 함수(또는 메서드)가 한 가지 일만 잘 하도록 구현한다.
  3. else 예약어를 쓰지 않는다. else를 쓰지 말라고 하니 switch/case로 구현하는 경우가 있는데 switch/case도 허용하지 않는다. 힌트: if 조건절에서 값을 return하는 방식으로 구현하면 else를 사용하지 않아도 된다.

  4. Java Enum을 적용하여 프로그램을 구현한다.

  5. 구현한 기능에 대한 단위 테스트를 작성한다. 단, UI(System.out, System.in, Scanner) 로직은 제외한다. 단위 테스트 작성이 익숙하지 않다면 LottoTest를 참고하여 학습한 후 테스트를 작성한다.
  6. camp.nextstep.edu.missionutils에서 제공하는 Randoms 및 Console API를 사용하여 구현해야 한다. Random 값 추출은 camp.nextstep.edu.missionutils.Randoms의 pickUniqueNumbersInRange()를 활용한다. 사용자가 입력하는 값은 camp.nextstep.edu.missionutils.Console의 readLine()을 활용한다.
    사용 예시
    1에서 45 사이의 중복되지 않은 정수 6개 반환
    Randoms.pickUniqueNumbersInRange(1, 45, 6);