Backend53 자바 리플렉션(Reflection) 리플렉션(Reflection)클래스, 메소드, 필드 등의 정보를 런타임에 동적으로 조회하고 수정할 수 있는 강력한 기능을 제공함이 기능을 통해 컴파일 타임에 알 수 없는 객체의 정보를 다룰 수 있어 유연한 프로그래밍이 가능함예) 클래스 이름으로 객체를 생성하거나 메소드와 필드를 동적으로 호출할 수 있음 리플렉션의 주요 기능클래스 정보 접근 : Class 객체를 통해 클래스의 메타데이터(이름, 메소드, 필드 등)에 접근할 수 있음Class clazz = Class.forName("com.example.MyClass"); 동적 객체 생성 : 생성자 정보와 파라미터를 기반으로 객체를 동적으로 생성할 수 있음Constructor constructor = clazz.getConstructor(String.clas.. 2024. 7. 30. 인스턴스 생성과 정적 팩토리 메서드 인스턴스 생성자바에서 객체를 생성하는 기본적인 방법은 new 키워드를 사용하여 생성자를 호출하는 방식가장 직관적이고 간단한 방법예시public class Car { private String model; private int year; // 생성자 public Car(String model, int year) { this.model = model; this.year = year; } public void displayInfo() { System.out.println("Model: " + model + ", Year: " + year); }}// 인스턴스 생성public class Main { public static void.. 2024. 3. 25. Java Validation, Spring Validation Java Validation (JSR-303/JSR-380)Java Bean Validation 표준을 따름객체의 필드에 대해 유효성 검사를 선언적으로 설정할 수 있음주요 애노테이션(@NotNull, @Size, @Email 등)을 사용하여 필드의 제약 조건을 정의하고, 이를 Validator를 사용하여 실행할 수 있음주요 특징객체의 각 필드에 유효성 검사를 적용하는 애노테이션 기반의 방법@NotNull, @Size, @Min, @Max, @Email 등 다양한 기본 애노테이션 제공커스텀 유효성 검사 가능Java SE 환경에서도 사용 가능하며, Spring과 같은 다른 프레임워크와 통합 가능Java Validation 샘플 코드import javax.validation.constraints.NotNull.. 2024. 3. 25. [Java] Annotation 정의 자바 애너테이션(Java Annotation)은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종 보통 @ 기호를 앞에 붙여 사용 JDK 1.5 버전 이상에서 사용 가능 자바 애너테이션은 클래스 파일에 임베디드되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동 종류 표준(내장) 어노테이션 : 자바가 기본적으로 제공해주는 어노테이션 메타 어노테이션 : 어노테이션을 위한 어노테이션 사용자 정의 어노테이션 : 사용자가 직접 정의하는 어노테이션 배경 자바 코드는 변경돼도 설정 파일은 업데이트되지 않는 문제 설정과 코드가 분리되어 있어, 개발에 대한 어려움 ➡️ 어노테이션 통해 하나의 파일에서 코드와 설정 관리 가능해짐 표준 어노테이션 @Override @Deprecated @Suppr.. 2023. 12. 5. [Java] Exception 예외(Exception) 사용자의 잘못된 조작이나 개발자의 코딩 실수로 인해 발생하는 프로그램 오류 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 동일하나, 예외는 예외 처리를 통해 프로그램을 종료하지 않고 정상 실행 상태 유지시킬 수 있음 종류 일반 예외(Checked Exception) 실행 예외(Unchecked Exception) 개발자가 반드시 직접 예외 처리해야 함 Exception 클래스 자체는 Checked exception 개발자가 직접 예외 처리하지 않아도 됨 명시적 예외 처리가 강제되지 않기에 Unchecked Exception 클래스의 자식 클래스 중 RuntimeException 클래스는 Unchecked 실행 예외(Unchecked Exception)의 종류 Runt.. 2023. 12. 5. [Java] Enum 정의 Enum이란 Enumeration의 앞 글자로, 열거라는 의미 관련된 상수들의 집합 자바에서는 final 로 String 과 같은 문자열이나 숫자들을 나타내는 기본 자료형의 값 고정 가능 = 이렇게 고정된 값이 상수(constant) 어떤 클래스가 상수만으로 작성되어 있으면 반드시 class 로 선언할 필요는 X 이럴 때 클래스로 선언된 부분에 enum 이라 선언 시, 이 객체는 상수의 집합임을 명시적 표현하는 것 배경 기존에는 인터페이스나 클래스 내에서 상수 선언 후 관리해옴 클래스 내에서 선언 시, 네이밍이 겹치거나 불필요하게 상수가 많아지는 단점 있음 인터페이스로 관리 시 위 단점이 일부 상쇄되나, 여전히 IDE의 적극적 지원 부족 및 타입 안정성이 떨어진다는 단점 있었음➡️ 이를 보완하며 나.. 2023. 12. 5. [Java] Pass by Value vs. Pass by Reference 메모리 할당 어떤 변수 선언 = 메모리 할당 변수를 선언하기 위해 할당되는 메모리로는 크게 스택과 힙이 있음 스택(Stack) 영역 함수의 호출과 함께 지역 변수 / 매개 변수 등이 할당됨 정렬된 방식으로 메모리 할당 및 해제됨 힙(Heap) 영역 클래스 변수나 인스턴스 변수 / 객체 등이 할당됨 우연하고 무질서하게 메모리 할당됨 ➡️ JVM 은 무질서하게 관리되는 힙 영역을 위주로, GC 통해 메모리 해제 관리함 (인스턴스 변수로 존재하는 원시 변수는 힙 영역에서 관리됨) 원시 변수(Primitive Value)의 메모리 할당 자바에서 변수는 객체가 아닌 실제 값들인 int, double, float boolean 등과 같은 원시 값(Primitive Value)들이 존재 public void test.. 2023. 12. 5. [Java] 기본 자료형 & 참조 자료형 자료형 종류 기본 자료형(Primitive Type) 참조 자료형(Reference Type) 기본 자료형 자바 컴파일러에 의해 해석되는 자료형 총 8가지의 기본형을 미리 정의 및 제공 사용 전, 반드시 선언(Declared)되어야 함 OS (운영체제)에 따라 자료형 길이 달라지지 않음 비객체 타입이기에 null 값을 가질 수 없음. 만약 기본형에 null 을 넣으려면 Wrapper Class 활용 스택(Stack) 메모리에 저장됨 동적타이핑(Dynamic typing) 정적타이핑(Static typing) 코드 작성 시간 빠름 코드 실행 속도 느림 코드 내용 및 로직 파악 쉬움 속도 중요한 작업에는 다소 부적합 / 작고 단순한 프로젝트에 적합 동적 타이핑 언어 : Python, Ruby, PHP 등 코.. 2023. 12. 5. Spring Security Architecture / 스프링 시큐리티 구조 Authentication vs Authorization Authentication the process of validating your credentials (such as User username and password) to verify your identity and whether you are the person you claim to be, or not. Or simply put, Authentication is about knowing who you are. Authorization the process to determine whether the authenticated user has access to a particular resource. Or simply put, Authoriza.. 2023. 11. 20. 이전 1 2 3 4 5 6 다음