Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Spring Framework/Reflection

Java의 배열과 열거형: 리플렉션을 통한 심층 탐구

[튜토리얼] Lesson: Arrays and Enumerated TypesJava 가상 머신 관점에서 배열과 열거형(enums)은 단순히 클래스일 뿐입니다. Class의 많은 메서드를 이들에 사용할 수 있습니다. 리플렉션(Reflection)은 배열과 열거형을 위한 특정 API를 제공합니다. 이 강의에서는 일련의 코드 샘플을 통해 이러한 객체들을 다른 클래스와 구분하고, 이들에 대해 작업하는 방법을 설명합니다. 또한 다양한 오류도 다루게 됩니다. 배열(Arrays)배열은 컴포넌트 타입과 길이를 가지고 있으며, 길이는 타입의 일부가 아닙니다. 배열은 전체적으로 또는 컴포넌트별로 조작할 수 있습니다. 리플렉션은 후자의 목적을 위해 java.lang.reflect.Array 클래스를 제공합니다.배열 타입 식..

2024. 8. 22. 17:17
Spring Framework/Reflection

Java 동적 프록시 클래스 활용법

튜토리얼Introduction다이나믹 프록시 클래스는 런타임에, 지정된 인터페이스 목록을 구현하는 클래스입니다. 이러한 클래스의 인스턴스를 통해 인터페이스의 메서드를 호출하면 해당 호출이 인코딩되어 다른 객체로 전달됩니다.[structuring method calls]이 객체는 일관된 인터페이스를 통해 호출을 처리하게 됩니다. 따라서 다이나믹 프록시 클래스는 컴파일 타임 도구를 사용하지 않고도 인터페이스 목록에 대한 타입 안전한 프록시 객체를 생성하는 데 사용할 수 있습니다.[type-safe proxy object]다이나믹 프록시 클래스의 인스턴스에서 메서드가 호출되면, 이 호출은 해당 인스턴스의 Invocation Handler에 있는 단일 메서드[invoke]로 전달되며, 호출된 메서드를 식별하는 ..

2024. 8. 20. 12:33
Spring Framework/Reflection

리플렉션: 멤버 탐구 - 메서드(Methods)

[튜토리얼] Methods메서드에는 호출될 수 있는 실행 가능한 코드가 들어 있습니다. 메서드는 상속되고 넌-리플렉티브한 코드에서는 오버로딩, 오버라이딩, 하이딩[hiding]과 같은 동작이 컴파일러에 의해 적용됩니다. 반면, 리플렉티브한 코드는 슈퍼클래스를 고려하지 않고도 메서드 선택을 특정 클래스로 제한할 수 있습니다. 슈퍼클래스 메서드에 액세스할 수 있지만 메서드를 선언한 클래스를 확인할 수 있습니다. 이는 리플렉션 없이는 프로그래밍 방식으로 발견하는 것이 불가능하며 많은 미묘한 버그의 원인입니다. java.lang.reflect.Method 클래스는 메서드의 제어자, 리턴 타입, 파라미터, 어노테이션 및 throw된 예외에 대한 정보에 액세스하는 API를 제공합니다. 또한 메서드를 호출하는 데 사..

2024. 8. 19. 10:01
Spring Framework/Reflection

리플렉션: 멤버 탐구 - 생성자(Constructors)

[튜토리얼] Constructors생성자는 클래스의 인스턴스인 객체를 생성할 때 사용됩니다. 일반적으로 메서드가 호출되거나 필드에 접근되기 전에 클래스 초기화에 필요한 작업을 수행합니다. 생성자는 절대 상속되지 않습니다.메서드와 유사하게, 리플렉션은 클래스의 생성자를 발견하고 검색하며, 제어자, 파라미터, 애노테이션, 던지는 예외와 같은 선언 정보를 얻기 위한 API를 제공합니다. 또한 지정된 생성자를 사용하여 클래스의 새 인스턴스를 생성할 수도 있습니다. 생성자를 다룰 때 사용하는 주요 클래스는 Class 와 java.lang.reflect.Constructor 입니다. 생성자와 관련된 일반적인 작업은 다음 섹션에서 다룹니다:Finding Constructors 특정 파라미터를 가진 생성자를 검색하는 ..

2024. 8. 19. 10:00
Spring Framework/Reflection

리플렉션: 멤버 탐구 - 필드(Fields)

[튜토리얼] 리플렉션은 java.lang.reflect.Member 인터페이스를 정의하며, 이 인터페이스는 java.lang.reflect.Field, java.lang.reflect.Method, java.lang.reflect.Constructor에 의해 구현됩니다. 이 레슨에서는 이러한 객체들에 대해 논의할 것입니다. 각 멤버에 대해, 선언 및 타입 정보를 검색하는 관련 API, 멤버에 고유한 작업(예를 들어, 필드의 값을 설정하거나 메서드를 호출하는 것), 일반적으로 발생하는 오류를 설명할 것입니다. 각 개념은 일부 예상되는 리플렉션 용도와 유사한 코드 샘플 및 관련 출력과 함께 설명됩니다.참고: 자바 언어 사양(Java Language Specification), Java SE 7 에디션에 따르..

2024. 8. 19. 10:00
Spring Framework/Reflection

리플렉션 API: 클래스 탐구하기

[튜토리얼] Uses of Reflection리플렉션[Reflection]은 JVM(Java Virtual Machine)에서 실행되는 애플리케이션의 런타임 동작을 검사하거나 수정하는 기능이 필요한 프로그램에서 일반적으로 사용됩니다. 이는 비교적 고급 기능이므로 언어의 기본 사항을 잘 이해하고 있는 개발자만 사용해야 합니다. 이러한 주의 사항을 염두에 두고 리플렉션은 강력한 기술이며 응용 프로그램이 그렇지 않으면 불가능한 작업을 수행할 수 있도록 할 수 있습니다.리플렉션이란, 자바와 같은 프로그래밍 언어에서 프로그램이 런타임 시점에 자기 자신을 검사하고 수정할 수 있는 기능을 말합니다. 리플렉션을 통해 클래스, 메서드, 필드 등의 구조적 요소에 대한 정보를 동적으로 탐색하고 조작할 수 있습니다. 즉, 프..

2024. 8. 19. 09:59
  • «
  • 1
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 (250)
    • Java (18)
    • Spring Framework (33)
      • Toby's Spring 3.1 (6)
      • Spring IoC (6)
      • TDD (6)
      • Reflection (6)
      • AOP (6)
    • Spring Boot (11)
    • Spring Security (22)
    • Database (17)
      • Mysql (2)
      • JDBC (2)
      • JPA (13)
    • Build and Development Tools (3)
      • Maven (1)
      • Gradle (1)
      • Lombok (1)
    • Network (12)
    • Apache Tomcat (11)
    • Microservices Architecture (33)
    • Linux (9)
    • React (10)
    • Docker (22)
    • OAuth (10)
    • DevOps (2)
    • Git (2)
    • HTML (1)
    • CSS (1)
    • JavaScript (1)
    • Problem and Solution Guide (8)
      • Java (1)
      • Spring Framework (4)
      • Reflection (1)
      • Dynamic Proxy (1)
      • JPA (1)
    • Note-Taking (23)

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바