자바 실습 목록 자바 8 변화 인터페이스 변화 @FunctionalInterface default 키워드 static 키워드 람다 람다란? 메소드 레퍼런스 자바8에서 제공하는 기본 메소드 기본메소드와 스태틱 메소드를 왜 사용할까? Comparator Iterable(forEach) Iterable(spliterator) Collection(stream) Collection(removeIf) Optional Optional이란? 스트림 특징 스트림이란? 스트림 API Collection(stream) Thread를 이용한 동시성 프로그래밍 동시성 프로그래밍이란? Executors를 이용한 동시성 프로그래밍 Executors 1 Executors 2 CompletableFuture 1 CompletableFuture 2 애노테이션 변화 java 8 annotation 날짜/시간 API 변화 Date/Time API 코드 조작 바이트코드 조작 codecoverage CodeCoverage란? bytebuddy ByteBuddy란? 자바 에이전트 Agent 사용 Agent 프로젝트 Agent 사용 설명 리플렉션 reflection Reflection이란? 다이나믹 프록시 dynamicProxy Proxy란? DynamicProxy란? DynamicProxy를 클래스에 적용하는 법 애노테이션 프로세서 프로세서 사용 프로세서 프로젝트 프로세서 사용법 및 설명 테스트 관련 junit5 기본 애노테이션 Assertion API Assumption API Condition Annotation Tag란? CustomTag 반복 테스트 매개변수 테스트 UseCase 테스트 Extend mockito 생성 API Stubbing API 검증 API BDD API testcontainers TestContainer란? TestContainer 기본 애노테이션 GenericContainer DockerComposeContainer 스프링 Context에 TestContainer 정보 넣기 archunit ArchUnit이란? ArchUnit 예제