Java 학습 경로 T1 — Java 기초 다지기¶
이 트랙의 목표: 개발 환경 세팅부터 객체지향·컬렉션·함수형까지, "문법을 외우는" 게 아니라 왜 그렇게 동작하는지 설명할 수 있는 상태를 만듭니다. 끝에 🛠 미니프로젝트로 직접 손에 익힙니다.
선수 지식: 없음 (프로그래밍 입문 가능). 다음 트랙: guide-java-track2-design (객체지향 설계로 응용).
이 트랙은 src-java-study-2024-2025 1·2·3장을 학습 흐름으로 재구성한 것입니다. 본문 전체(설명·코드·예제)는 아래 챕터 레슨에서 바로 읽고 따라 할 수 있습니다 → java-study-ch01 · java-study-ch02 · java-study-ch03.
이 페이지는 코스 안내입니다(흐름·핵심·미니프로젝트·이론 팁). 코드와 상세 설명은 위 챕터 레슨을 펴고 따라 하면 됩니다.
📚 학습 순서¶
아래 순서대로 따라갑니다. 각 줄은 본문 문서 1개에 대응하며, 전체 설명·코드는 챕터 페이지에 있습니다: java-study-ch01 · java-study-ch02 · java-study-ch03.
1단계 — 환경과 실행 (ch01)¶
| 순서 | 문서 | 한 줄 |
|---|---|---|
| 1.0 | 개발 환경과 계정 준비 | JDK 설치·IDE·GitHub 계정까지 출발선 세팅 |
| 1.1 | Java 소개와 개발 환경 | JVM 위에서 도는 언어, "한 번 작성 어디서나 실행" |
| 1.2 | 첫 프로젝트 만들기 (Maven·Gradle) | 빌드 도구로 프로젝트 생성·빌드·실행 (Mac/Win 명령) |
| 1.8 | [참고] Java와 OS의 관계, C/C++ 비교 | 왜 Java가 메모리를 직접 안 만지는지 (→ entity-jvm) |
2단계 — Java 문법과 객체 (ch02)¶
| 순서 | 문서 | 한 줄 |
|---|---|---|
| 2.0 | 기본 문법: 변수·자료형·연산자 | 값이 메모리에 어떻게 저장되는지가 출발점 |
| 2.1 | 제어문: 조건문·반복문 | 흐름 제어. 실습: 2.93 |
| 2.2 | 메서드와 배열·문자열 | 코드 재사용의 최소 단위 |
| 2.3 | 객체지향 프로그래밍 | 캡슐화·상속·다형성·추상화 (→ concept-oop) |
| 2.4 / 2.5 | 원칙별 샘플·추상 클래스 예제 | 원칙을 코드로 확인 |
| 2.9 / 2.9-1 | 객체지향 실전문제·게임 시나리오 | 🛠 아래 미니프로젝트 |
3단계 — 컬렉션과 함수형 (ch03)¶
| 순서 | 문서 | 한 줄 |
|---|---|---|
| 3.0~3.3 | 컬렉션·제네릭·자료구조·선택 시나리오 | List/Set/Map을 언제 쓰나 |
| 3.4 | 람다와 스트림 | 명령형 → 선언형 사고 전환 |
| 3.7~3.9 | 알고리즘 기초·실전문제·함수형 연습 | 🛠 아래 미니프로젝트 |
🧩 핵심 개념 한눈에¶
| 개념 | 한 줄 정의 | 자주 하는 실수 |
|---|---|---|
| 기본형 vs 참조형 | 값 자체 vs 객체의 주소 | ==로 문자열 비교 (→ equals) |
| 캡슐화 | 데이터와 행위를 한 객체로, 내부는 숨김 | getter/setter 남발로 캡슐화 무력화 |
| 다형성 | 같은 메시지, 다른 응답 | 타입 분기(if instanceof)로 다형성 회피 |
| 제네릭 | 컴파일 타임 타입 안전 | raw type 사용으로 경고 무시 |
| 스트림 | 데이터 흐름을 선언적으로 | 부수효과(side effect)를 스트림 안에서 일으킴 |
💡 이론·방법론 연결 (팁)¶
💡 객체지향 — "역할이 먼저, 구현은 나중" 객체를 데이터 덩어리가 아니라 책임을 가진 협력자로 보면 설계가 달라집니다. 2.3을 읽을 때 이 관점을 같이 적용해 봅니다. → 자세히: concept-oop · lecture-object-ch4 · lecture-object-ch5
💡 방법론 — TDD로 미니프로젝트 풀기 실전문제(2.9·3.8)는 정답 코드부터 쓰지 말고 빨강(실패 테스트) → 초록(통과) → 리팩터 순서로 진행합니다. 작은 단위로 검증하며 가면 막힘이 줄어듭니다. → 자세히: lecture-tdd-ch4 · entity-tdd
💡 방법론 — 이름이 곧 설계 변수·메서드 이름을 대충 지으면 2.2부터 무너집니다. "의도를 드러내는 이름"이 가독성의 80%입니다. → 자세히: lecture-clean-code-ch2 · entity-clean-code
💡 실무 연결 — 표준 함수형 인터페이스 3.4 람다를 배우면 Spring 콜백·
Optional·Stream이 한 번에 열립니다.Function/Supplier/Consumer6종을 외워두면 실무가 편합니다. → 자세히: entity-effective-java (Item 44)
🛠 미니프로젝트 — 콘솔 객체지향 응용¶
학습한 걸 하나로 합칩니다. 난이도 순으로 셋 중 하나 이상:
- 객체지향 실전문제 (2.9) — 주어진 요구사항을 클래스로 분해. 책임이 한 곳에 몰리지 않게 나누는 연습.
- 게임 시나리오 (2.9-1) — 캐릭터·아이템·전투를 객체 협력으로. 상속 vs 합성 판단이 핵심.
- 알고리즘 실전 (3.8) — 컬렉션·스트림으로 탐색/정렬. 시간복잡도를 의식하며.
따라하는 법:
1) 요구사항에서 "명사 → 클래스 후보", "동사 → 메서드 후보" 추출
2) 실패하는 테스트부터 1개 (TDD 빨강)
3) 통과시키는 최소 코드 (초록)
4) 중복·나쁜 이름 정리 (리팩터)
5) 2~4 반복하며 기능 확장
✅ 트랙 정리 체크리스트¶
- JDK·IDE·GitHub 세팅을 끝내고 Hello World를 실행했다
-
==와equals의 차이를 코드로 설명할 수 있다 - 캡슐화·다형성을 내 예제로 시연할 수 있다
- List/Set/Map을 상황에 맞게 고를 수 있다
- 람다·스트림으로 반복문 하나를 선언형으로 바꿔봤다
- 🛠 미니프로젝트 1개를 TDD 흐름으로 완성했다
→ 다 체크되면 guide-java-track2-design(객체지향 설계와 패턴)로 넘어갑니다.
관련 페이지¶
- src-java-study-2024-2025 — 이 트랙의 원본 교재 (전체 카탈로그)
- concept-oop — 객체지향 4원칙
- lecture-object-ch4 · lecture-object-ch5 — 책임·역할 설계
- lecture-tdd-ch4 · lecture-clean-code-ch2 — 미니프로젝트 방법론
- entity-effective-java — 함수형 인터페이스 등 실무 디테일
- guide-java-track2-design — 다음 트랙