Java 기본편에서 학습한 객체지향 개념을 하나의 콘솔 프로그램에 적용하는 과정입니다.
가상 프로젝트의 모듈과 의존 관계를 객체로 표현하고, 여러 규칙을 적용해 위반 여부를 출력하는 모듈 의존성 규칙 시뮬레이터를 만듭니다.
이 프로그램은 실제 Java 소스나 Gradle 프로젝트를 분석하지 않습니다. 검사할 프로젝트 구조를 Java 객체로 직접 구성합니다.
- JDK 17 이상
- Java 기본 문법
- Git 사용은 권장하지만 필수는 아닙니다.
설치 확인:
java -version
javac -versionmacOS/Linux:
cd courses/02-java-basic
./run.shWindows:
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-basicIssue에는 다음 내용을 입력합니다.
- Fork 저장소 주소
solve/java-basic브랜치- 검토할 최종 커밋 주소
- 실행 여부
- 설명을 완료한 개념
- 집중적으로 검토받고 싶은 부분
일반 피드백은 Issue에서 진행합니다. 특정 코드 줄에 직접 리뷰가 필요하면 원본 저장소를 대상으로 [Review] Pull Request를 열 수 있습니다. Review PR은 병합하지 않고 리뷰가 끝나면 닫습니다.
- ASSIGNMENT.md의 과제 소개와 범위 제한을 읽습니다.
- 현재 강의 진도에 해당하는 단계만 구현합니다.
- 코드를 실행하기 전에 결과를 예상합니다.
- 구현과 함께 LEARNING_LOG.md를 작성합니다.
- 단계가 끝날 때마다 의미 있는 단위로 커밋합니다.
- 마지막에 필수 시나리오를 모두 실행하고 10분 설명을 준비합니다.
AI는 사용할 수 있지만 다음 순서를 권장합니다.
직접 설계 → 직접 구현 → 실행 결과 확인 → 자신의 말로 설명 → AI 리뷰
AI에게 완성 코드를 요청하기보다 설계의 문제점, 반례, 추가 질문을 요청하세요.
- 필수 실행 시나리오가 구분되어 출력됩니다.
- Java 기본편에서 학습한 개념이 코드에 적용되어 있습니다.
- 각 개념을 어디에 왜 적용했는지 자신의 말로 설명할 수 있습니다.
- 새로운 검사 규칙을 추가할 때 기존 실행 흐름의 변경이 최소화됩니다.
- README 또는 학습 기록이 완성되어 있습니다.