본문 바로가기

Everyday Study62

2024.08.22(목) { Qualified Name, @DirtiesContext, 체이닝 메서드, MOCK } Qualified Name Qualified Name은 어떤 엔티티(클래스, 메서드, 변수 등)를 정확하게 식별하기 위해 전체 경로를 포함한 이름을 말합니다. 특히 클래스의 패키지 이름까지 포함하여 사용하는 경우가 많습니다. // Fully Qualified Name을 사용한 클래스 선언java.util.List list = new java.util.ArrayList();위 예제에서 java.util.List와 java.util.ArrayList는 Fully Qualified Name입니다. 이들은 각각 List 인터페이스와 ArrayList 클래스가 java.util 패키지에 속해 있음을 나타냅니다. Fully Qualified Class Name (완전히 자격 있는 클래스 이름)클래스를 명확히 식별하.. 2024. 8. 22.
2024.08.21(수) { enum 클래스의 자동생성되는 것, InvocationHandler } enum 클래스의 자동생성되는 것들 1. values() 메서드자동 생성: values() 메서드는 모든 enum 클래스에서 자동으로 생성됩니다. 이 메서드는 enum의 모든 상수를 배열로 반환합니다.사용 예:public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;}public class Main { public static void main(String[] args) { // values() 메서드를 사용하여 enum의 모든 상수를 가져옵니다. Day[] days = Day.values(); for (Day day : days) { System.o.. 2024. 8. 21.
2024.08.20(화) { 클래스 로더, .invoke, seald, qualified name } 클래스 로더(Class Loader) 클래스 로더(Class Loader)는 자바 가상 머신(JVM)의 중요한 구성 요소로, 클래스 파일(.class)을 메모리로 로드하여 실행할 수 있게 하는 역할을 담당합니다. 클래스 로더는 자바의 동적 로딩(dynamic loading)을 가능하게 하며, 프로그램이 실행되는 동안 필요한 클래스를 동적으로 메모리에 적재합니다.클래스 로더의 역할클래스 파일 로딩:클래스 로더는 .class 파일을 파일 시스템, JAR 파일, 네트워크 등의 다양한 소스에서 읽어들이고, 이를 JVM의 메모리로 로드합니다.자바 프로그램이 실행될 때, 클래스 로더는 필요한 클래스를 동적으로 로드하여 JVM에서 사용할 수 있게 만듭니다.클래스 파일 검증:클래스 로더는 로드된 클래스 파일의 바이트코.. 2024. 8. 20.
2024.08.19(월) { 타겟 클래스, Stream } "타겟 클래스(Target Class)"와 "타겟 클래스 객체(Target Class Object)"는 주로 프록시 패턴이나 리플렉션과 관련된 맥락에서 사용되는 용어입니다. 이 용어들은 특히 동적 프록시(Dynamic Proxy)나 AOP(Aspect-Oriented Programming)에서 자주 등장합니다. 타겟 클래스 (Target Class)정의: 타겟 클래스(Target Class)는 주로 프록시 패턴에서 프록시 객체가 대신해서 동작할 원래의 클래스를 의미합니다. 이 클래스는 실제 비즈니스 로직을 포함하고 있으며, 프록시 객체는 이 클래스의 메서드 호출을 가로채거나 확장된 기능을 제공하는 역할을 합니다.사용 맥락:프록시 패턴: 프록시 객체는 타겟 클래스의 역할을 대신합니다. 타겟 클래스는 프록시.. 2024. 8. 20.
2024.08.16(금) { 와일드카드 캡쳐, transient } 와일드카드 캡쳐와일드카드 캡처(Capture of Wildcards)는 제네릭 타입을 사용할 때 발생하는 문제를 해결하기 위한 기법입니다. 와일드카드는 ?를 사용하여 제네릭 타입의 유연성을 높이는 데 사용되지만, 때로는 와일드카드를 특정 타입으로 "캡처"하여 더 명확하게 사용할 필요가 있습니다. 특히 제네릭 메서드나 클래스에서 와일드카드를 사용하면서 타입 매개변수로 명확히 지정해야 하는 경우에 유용합니다.  ? 놔두면 아무거나 다 될 수 있어서 혼란이 올 수 있지만 T로 하면 예를 들어 String로 하면 다 String로 고정되기 때문에 와일드카드 캡처  와일드카드 캡처 문제예를 들어, 다음과 같은 코드가 있을 때:public void addToList(List list, Object value) { .. 2024. 8. 16.
2024.08.15(목) { ( @component,@Bean,@Autowired ), 커밋, Thread Context } @Component와 @Bean의 차이점등록 방식:@Component: Spring의 컴포넌트 스캔에 의해 자동으로 빈이 등록됩니다. 즉, @Component 어노테이션이 붙은 클래스는 Spring이 자동으로 인스턴스를 생성하고, 이를 컨테이너에 등록합니다.@Bean: 개발자가 직접 빈을 등록하기 위해 사용하는 어노테이션입니다. @Bean은 주로 @Configuration클래스 내의 메서드에 사용되며, 해당 메서드가 반환하는 객체를 Spring 컨테이너에 빈으로 등록합니다.사용 위치:@Component: 클래스 레벨에서 사용됩니다.@Bean: 메서드 레벨에서 사용됩니다.유연성:@Component: 기본적으로 설정 없이 자동으로 빈을 등록하는데 유리합니다. 특정 패키지 내의 클래스를 자동으로 스캔하고 빈으.. 2024. 8. 15.