Java 프로그래밍의 주요 주제를 다루며 동시성 문제 해결과 병렬성을 얻기 위한 방법을 공부합니다. 아래는 학습 주제와 해당 패키지 구조를 정리한 내용입니다.
모든 테스트 코드는 직접 만든, AutoTester를 활용하여 작성되었습니다.
AutoTester는 특정 클래스의 모든 메서드를 Reflection을 통해 탐색하고, 각 메서드의 실행 결과를 자동으로 확인하는 구조로 설계되었습니다.
- 테스트 대상 클래스의 메서드를 리플렉션을 통해 동적으로 호출하며, 예상 값과 실제 값을 비교해 결과를 출력합니다.
- 테스트 대상 클래스의 각 메서드 실행 시간은 템플릿콜백 패턴을 적용하여, 자동으로 기록됩니다.
- 테스트 대상 클래스의 각 메서드 결과값 검증은 전략패턴을 통해 예외, 배열, 객체로 구분되어 검증됩니다.
-
문자열과 수, 수학
- 패키지:
string_and_math - 문자열 처리 및 수학 관련 기능 구현 및 활용.
- 패키지:
-
객체와 불변성
- 패키지:
object_and_immutability - 객체 지향 프로그래밍과 불변 객체 설계.
- 패키지:
-
배열, 컬렉션, 데이터 구조
- 패키지:
collections_and_arrays - 배열과 컬렉션 프레임워크, 다양한 데이터 구조 학습.
- 패키지:
-
자바 리플렉션
- 패키지:
reflection - 클래스, 인터페이스, 생성자, 메서드, 필드의 동적 분석과 활용.
- 패키지:
-
함수형 프로그래밍
- 패키지:
functional_programming - 람다, 스트림 API, 함수형 인터페이스.
- 패키지:
-
동시성
- 패키지:
concurrency - 멀티스레딩, 동시성 문제 해결, 동기화 기법.
- 패키지:
-
옵셔널
- 패키지:
optional Optional클래스를 활용한 NullPointerException 방지.
- 패키지:
-
HTTP
- 패키지:
http - HTTP 요청과 응답 처리, 웹 통신.
- 패키지: