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