Skip to content

Latest commit

 

History

History
117 lines (82 loc) · 3.89 KB

File metadata and controls

117 lines (82 loc) · 3.89 KB

Java 기본편 종합 과제

Java 기본편에서 학습한 객체지향 개념을 하나의 콘솔 프로그램에 적용하는 과정입니다.

결과물

가상 프로젝트의 모듈과 의존 관계를 객체로 표현하고, 여러 규칙을 적용해 위반 여부를 출력하는 모듈 의존성 규칙 시뮬레이터를 만듭니다.

이 프로그램은 실제 Java 소스나 Gradle 프로젝트를 분석하지 않습니다. 검사할 프로젝트 구조를 Java 객체로 직접 구성합니다.

사전 준비

  • JDK 17 이상
  • Java 기본 문법
  • Git 사용은 권장하지만 필수는 아닙니다.

설치 확인:

java -version
javac -version

시작 프로그램 실행

macOS/Linux:

cd courses/02-java-basic
./run.sh

Windows:

cd courses\02-java-basic
run.bat

정상적으로 실행되면 과제 안내 메시지가 나타납니다. 이후 src/main/java 아래의 코드를 직접 설계하고 구현하세요.

작업 위치

새로운 02-java-basic 디렉터리를 만들지 않습니다. 이 디렉터리가 기본편 과제의 작업 공간입니다.

02-java-basic/
├── ASSIGNMENT.md
├── LEARNING_LOG.md
└── src/main/java/
    ├── lab/Main.java       실행 시작 지점
    └── ...                 직접 설계한 패키지와 클래스

다음 원칙을 따릅니다.

  • 과제 요구사항은 ASSIGNMENT.md에서 확인합니다.
  • 자신의 설명과 회고는 LEARNING_LOG.md에 작성합니다.
  • Java 구현은 src/main/java 아래에 추가합니다.
  • lab.Main은 실행 시작 지점으로 유지합니다.
  • 직접 설계한 클래스는 역할에 맞는 하위 패키지에 배치할 수 있습니다.
  • 학습자 이름으로 된 디렉터리는 만들지 않습니다.
  • 다른 학습자의 코드와 섞이지 않도록 자신의 Fork 또는 브랜치에서 작업합니다.

원본 저장소를 직접 Clone했다면 작업 전에 자신의 브랜치를 만드는 것을 권장합니다.

git switch -c solve/java-basic

과제 제출

구현을 완료하면 자신의 Fork에 Push한 뒤 원본 저장소에서 과제 제출 Issue를 작성합니다.

git add .
git commit -m "Complete Java basic assignment"
git push -u origin solve/java-basic

Issue에는 다음 내용을 입력합니다.

  • Fork 저장소 주소
  • solve/java-basic 브랜치
  • 검토할 최종 커밋 주소
  • 실행 여부
  • 설명을 완료한 개념
  • 집중적으로 검토받고 싶은 부분

일반 피드백은 Issue에서 진행합니다. 특정 코드 줄에 직접 리뷰가 필요하면 원본 저장소를 대상으로 [Review] Pull Request를 열 수 있습니다. Review PR은 병합하지 않고 리뷰가 끝나면 닫습니다.

진행 순서

  1. ASSIGNMENT.md의 과제 소개와 범위 제한을 읽습니다.
  2. 현재 강의 진도에 해당하는 단계만 구현합니다.
  3. 코드를 실행하기 전에 결과를 예상합니다.
  4. 구현과 함께 LEARNING_LOG.md를 작성합니다.
  5. 단계가 끝날 때마다 의미 있는 단위로 커밋합니다.
  6. 마지막에 필수 시나리오를 모두 실행하고 10분 설명을 준비합니다.

AI 사용

AI는 사용할 수 있지만 다음 순서를 권장합니다.

직접 설계 → 직접 구현 → 실행 결과 확인 → 자신의 말로 설명 → AI 리뷰

AI에게 완성 코드를 요청하기보다 설계의 문제점, 반례, 추가 질문을 요청하세요.

완료 기준

  • 필수 실행 시나리오가 구분되어 출력됩니다.
  • Java 기본편에서 학습한 개념이 코드에 적용되어 있습니다.
  • 각 개념을 어디에 왜 적용했는지 자신의 말로 설명할 수 있습니다.
  • 새로운 검사 규칙을 추가할 때 기존 실행 흐름의 변경이 최소화됩니다.
  • README 또는 학습 기록이 완성되어 있습니다.