Java 복습 목차
Java를 공부할 때 필요한 개념들을 체계적으로 정리한 목차를 아래에 작성했습니다. **초급 → 중급 → 고급** 순으로 정리했으니, 학습 순서에 맞게 참고하시면 좋습니다.
* * * * *
**Java 공부 목차**
==============
**1\. Java 기초**
---------------
1. Java 소개 및 설치
- Java의 특징
- JDK, JRE, JVM의 차이
- Java 설치 및 환경 변수 설정
2. 기본 문법
- 프로그램 구조 (`main` 메서드)
- 기본 자료형 (`int`, `double`, `boolean` 등)
- 변수와 상수
- 데이터 타입 변환
- 주석 처리
3. 제어문
- 조건문 (`if`, `switch`)
- 반복문 (`for`, `while`, `do-while`)
- break와 continue
4. 배열
- 1차원 배열
- 다차원 배열
- 배열의 초기화와 활용
* * * * *
**2\. 객체지향 프로그래밍 (OOP)**
------------------------
1. 클래스와 객체
- 클래스 정의 및 객체 생성
- 멤버 변수와 메서드
- 생성자와 생성자 오버로딩
2. 접근 제어자
- `public`, `private`, `protected`, (default)
3. 캡슐화
- Getter와 Setter 메서드
4. 상속
- `extends` 키워드
- 메서드 오버라이딩
- `super` 키워드
5. 다형성
- 메서드 오버로딩
- 다형성의 개념과 활용
- 업캐스팅과 다운캐스팅
6. 추상 클래스와 인터페이스
- `abstract` 키워드
- 추상 클래스와 인터페이스의 차이
- 다중 구현
7. 패키지와 접근 제어
- 패키지 구조와 사용
- `import`와 클래스 경로
* * * * *
**3\. 예외 처리**
-------------
1. 예외의 개념
- 예외와 오류의 차이
- Checked Exception vs Unchecked Exception
2. 예외 처리 문법
- `try`, `catch`, `finally`
- `throw`와 `throws`
3. 사용자 정의 예외
- 커스텀 예외 클래스 작성
* * * * *
**4\. Java 컬렉션 프레임워크**
----------------------
1. 컬렉션 개요
- `Collection`과 `Map`의 차이
- 제네릭의 기본 개념
2. List 인터페이스
- `ArrayList`, `LinkedList`
3. Set 인터페이스
- `HashSet`, `TreeSet`
4. Map 인터페이스
- `HashMap`, `TreeMap`
5. Queue 인터페이스
- `LinkedList`, `PriorityQueue`
6. 기타 컬렉션 유틸리티
- `Collections` 클래스의 주요 메서드
- 컬렉션 정렬
* * * * *
**5\. Java 입출력 (I/O)**
----------------------
1. 파일 읽기와 쓰기
- `File` 클래스
- `FileReader`, `FileWriter`
2. 버퍼 입출력
- `BufferedReader`, `BufferedWriter`
- `Scanner`로 입력받기
3. 직렬화와 역직렬화
- `Serializable` 인터페이스
- `ObjectInputStream`과 `ObjectOutputStream`
* * * * *
**6\. Java 8 이후의 주요 기능**
------------------------
1. 람다 표현식
- 람다 문법
- 함수형 인터페이스
2. 스트림(Stream) API
- 스트림 생성
- 중간 연산 (`filter`, `map`, `sorted` 등)
- 종료 연산 (`collect`, `forEach` 등)
3. Optional 클래스
- NullPointerException 방지
- `Optional` 사용법
4. 날짜와 시간 API
- `LocalDate`, `LocalTime`, `LocalDateTime`
- 날짜 연산 및 포맷
* * * * *
**7\. 멀티스레드와 병렬 처리**
--------------------
1. 스레드 개념
- 스레드의 생성과 실행
- `Runnable` 인터페이스
2. 동기화
- `synchronized` 키워드
- 데드락 방지
3. Executor 프레임워크
- 스레드 풀
- `Callable`과 `Future`
* * * * *
**8\. 디자인 패턴**
--------------
1. Singleton 패턴
2. Factory 패턴
3. Observer 패턴
4. Builder 패턴
5. Strategy 패턴
* * * * *
**9\. 네트워크 프로그래밍**
------------------
1. 소켓 프로그래밍
- `Socket` 클래스
- `ServerSocket` 클래스
2. HTTP 클라이언트
- `HttpURLConnection` 클래스
- Java 11의 `HttpClient` API
* * * * *
**10\. 데이터베이스와 JDBC**
---------------------
1. JDBC 개요
- JDBC 드라이버 설정
- 데이터베이스 연결 (`Connection`)
2. SQL 실행
- `Statement`, `PreparedStatement`
- 트랜잭션 처리
* * * * *
**11\. Java 고급 주제**
-------------------
1. 리플렉션
- `Class` 객체
- 메서드 및 필드 접근
2. 애노테이션
- 내장 애노테이션 (`@Override`, `@Deprecated` 등)
- 사용자 정의 애노테이션
3. Java의 메모리 구조
- 힙 메모리와 스택 메모리
- Garbage Collection
4. 동적 프로그래밍 (Dynamic Proxy)
- Proxy 클래스와 InvocationHandler
* * * * *
**12\. 프레임워크 및 실무 관련**
----------------------
1. Spring Framework 기초
- 스프링의 개념과 의존성 주입(DI)
- Spring Boot 기본 설정
2. Hibernate와 JPA
- ORM의 개념
- 엔터티 매핑
3. Gradle과 Maven
- 빌드 도구의 사용법
- 의존성 관리
4. 테스트
- JUnit을 사용한 단위 테스트
- Mockito로 목(Mock) 객체 생성
* * * * *
### **추가 학습 방향**
- 알고리즘 문제 풀이: 백준, 프로그래머스 등에서 Java 활용.
- 프로젝트 실습: 간단한 웹 애플리케이션 또는 CLI 도구 개발.
- 최신 Java 버전의 기능 탐구: Java 9 이상에서 추가된 모듈 시스템 등.
* * * * *
위 목차를 학습하면 Java의 기본부터 고급 주제까지 폭넓게 다룰 수 있습니다. 각 주제별로 필요한 자료나 예제가 필요하면 말씀해주세요! 😊
댓글
댓글 쓰기