콘텐츠로 이동

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/Consumer 6종을 외워두면 실무가 편합니다. → 자세히: entity-effective-java (Item 44)


🛠 미니프로젝트 — 콘솔 객체지향 응용

학습한 걸 하나로 합칩니다. 난이도 순으로 셋 중 하나 이상:

  1. 객체지향 실전문제 (2.9) — 주어진 요구사항을 클래스로 분해. 책임이 한 곳에 몰리지 않게 나누는 연습.
  2. 게임 시나리오 (2.9-1) — 캐릭터·아이템·전투를 객체 협력으로. 상속 vs 합성 판단이 핵심.
  3. 알고리즘 실전 (3.8) — 컬렉션·스트림으로 탐색/정렬. 시간복잡도를 의식하며.

따라하는 법:

1) 요구사항에서 "명사 → 클래스 후보", "동사 → 메서드 후보" 추출
2) 실패하는 테스트부터 1개 (TDD 빨강)
3) 통과시키는 최소 코드 (초록)
4) 중복·나쁜 이름 정리 (리팩터)
5) 2~4 반복하며 기능 확장
실습 본문·풀이는 챕터 레슨에서 바로 따라 합니다 → java-study-ch02(2.9·2.9-1) · java-study-ch03(3.8).


✅ 트랙 정리 체크리스트

  • JDK·IDE·GitHub 세팅을 끝내고 Hello World를 실행했다
  • ==equals의 차이를 코드로 설명할 수 있다
  • 캡슐화·다형성을 내 예제로 시연할 수 있다
  • List/Set/Map을 상황에 맞게 고를 수 있다
  • 람다·스트림으로 반복문 하나를 선언형으로 바꿔봤다
  • 🛠 미니프로젝트 1개를 TDD 흐름으로 완성했다

→ 다 체크되면 guide-java-track2-design(객체지향 설계와 패턴)로 넘어갑니다.


관련 페이지