본문 바로가기

Java

(3)
JUnit5 Extension 정리 Extension Extension은 테스트 실행 전후로 무언가 처리를 하고 싶을 때 사용한다. 위와 같이 언제 실행될 것인지 구체적으로 정할 수 있으며 Interface로 구성되어 implements를 선언 후 메서드를 작성해주어야 한다. 주요 인터페이스 AfterAllCallback : 모든 테스트 종료 후 실행 (가장 나중에 실행된다.) AfterEachCallback : @AfterEach 적용된 메서드 종료 후 실행 AfterTestExecutionCallback : 각 테스트가 종료 후 실행 BeforeAllCallback - @BeforeAll 적용된 메서드 전에 실행(가장 먼저 실행된다.) BeforeEachCallback - @BeforeEach 적용된 메서드 종료 후 실행 BeforeT..
리플렉션(Reflection) 리플렉션이란? 리플렉션은 클래스의 정보(필드, 메서드, 상속된 클래스와 인터페이스, 적용된 애노테이션 등)를 읽어 객체 생성, 메서드 사용, 필드 값 변경 등 임의대로 조작을 할 수 있도록 자바에서 제공되는 API다. 대표적으로 리플렉션은 스프링, 하이버네이트, JUnit 등에서 사용된다고 하며 예시를 통해 리플렉션을 사용해보도록 하자. 리플렉션 사용법 리플렉션은 jdk 1.1버전부터 적용되어 java.lang.reflect 패키지를 임포트 해주면 바로 사용이 가능하다. import java.lang.reflect.* 리플렉션을 사용하기 위해 접근 지정자를 적절하게 사용해서 필드와 메서드를 선언해주고 생성자도 만들어준다. @MyAnnotation public class Child extends Paren..
JVM 정리 JDK, JRE, JVM이란? JVM JVM(Java Virtual Machine)은 .class로 컴파일된 파일(자바 바이트 코드)을 클래스 로더(Class Loader)를 통해 읽고 분석하여 OS에 특화된 코드(기계어)로 변환 및 실행될 수 있는 런타임 환경을 제공하는 사양이다. 한번쯤 자바 언어는 "한 번의 코드 작성으로 어느 환경에서도 실행 가능하다.(WORA)" 란 말을 들어봤을 것이다. JVM은 WORA을 실현시켜줄 수 있도록 하는 역할을 맡고 있다. JRE JRE(Java runtime environment)는 .class로 컴파일된 파일을 Java 애플리케이션을 실행할 수 있도록 구성된 배포판이다. 따라서 JRE에는 JVM을 비롯해 Java 애플리케이션 실행에 필요한 핵심 라이브러리 및 자..