전체 글
-
RequestMatchersSpring Security 에서 요청을 필터링하거나 특정 요청에 대한 보안 정책(인가, 인증 등) 을 매칭할 때 사용하는핵심 인터페이스 중 하나이다.👉 org.springframework.security.web.util.matcher.RequestMatcher 🔍 RequestMatcher 개요RequestMatcher 는 HTTP 요청(HttpServletRequest) 이 특정 조건과 일치하는지 여부를 판단하기 위한전략(Strategy) 인터페이스다.public interface RequestMatcher { boolean matches(HttpServletRequest request);} 들어온 요청이 "이 URL, 이 메서드, 이 헤더 조건에 맞는가?" 를..
Spring Security RequestMatcher Interface
RequestMatchersSpring Security 에서 요청을 필터링하거나 특정 요청에 대한 보안 정책(인가, 인증 등) 을 매칭할 때 사용하는핵심 인터페이스 중 하나이다.👉 org.springframework.security.web.util.matcher.RequestMatcher 🔍 RequestMatcher 개요RequestMatcher 는 HTTP 요청(HttpServletRequest) 이 특정 조건과 일치하는지 여부를 판단하기 위한전략(Strategy) 인터페이스다.public interface RequestMatcher { boolean matches(HttpServletRequest request);} 들어온 요청이 "이 URL, 이 메서드, 이 헤더 조건에 맞는가?" 를..
2025.11.12 -
Spring Security 5 버전에서 6 버전으로 넘어가면서 바뀐점이 많다.그 중 HTTP 요청에 대한 URL 매칭하는 함수가 달라졌다. antMatchers()기능 : Apache Ant 의 와일드 카드를 사용하여 URL 을 매칭한다.사용http .authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .antMatchers("/public/**").permitAll(); 특징 : 단순하고 직관적, URL 패턴 매칭에 최적화되어 있다. requestMatchers()기능 : 더 유연한 매칭 함수로, URL 뿐만 아니라 HTTP 메서드, 요청 파라미터 등 조건 추가 가능하다.사용http .authorizeHttpRequests(a..
Spring Security antMatchers(5.x 버전) 과 requestMatchers(6 버전) 의 차이
Spring Security 5 버전에서 6 버전으로 넘어가면서 바뀐점이 많다.그 중 HTTP 요청에 대한 URL 매칭하는 함수가 달라졌다. antMatchers()기능 : Apache Ant 의 와일드 카드를 사용하여 URL 을 매칭한다.사용http .authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .antMatchers("/public/**").permitAll(); 특징 : 단순하고 직관적, URL 패턴 매칭에 최적화되어 있다. requestMatchers()기능 : 더 유연한 매칭 함수로, URL 뿐만 아니라 HTTP 메서드, 요청 파라미터 등 조건 추가 가능하다.사용http .authorizeHttpRequests(a..
2025.11.12 -
Spring 핵심 메커니즘 중 하나인 트랜잭션 관리는 Spring Boot 를 사용하고 있으면 대부분내부적으로 선언적 트랜잭션 관리를 사용하고 있다. 💡 트랜잭션(Transaction) 이란? 트랜잭션은 데이터베이스의 상태를 변경하는 하나의 논리적 작업 단위를 말한다.즉, 여러 SQL 작업이 있을 때 모두 성공하거나(all or nothing) 모두 실패해야 하는 원자적 단위이다. ✅ 예시 1. 계좌 A → 계좌 B 로 10만원 송금 - A 계좌 잔액 10만원 감소 - B 계좌 잔액 10만원 증가 이 두 SQL 중 하나라도 실패하면, 전체 작업이 취소되어야 함 → 이것이 트랜잭션의 역할입니다.쉽게 말해, 한 메서드 내 2가지 이상의 SQL 작업이 있다고 하면 모두 성공하거나 실패해야 한다...
트랜잭션(Transaction) 관리Spring 핵심 메커니즘 중 하나인 트랜잭션 관리는 Spring Boot 를 사용하고 있으면 대부분내부적으로 선언적 트랜잭션 관리를 사용하고 있다. 💡 트랜잭션(Transaction) 이란? 트랜잭션은 데이터베이스의 상태를 변경하는 하나의 논리적 작업 단위를 말한다.즉, 여러 SQL 작업이 있을 때 모두 성공하거나(all or nothing) 모두 실패해야 하는 원자적 단위이다. ✅ 예시 1. 계좌 A → 계좌 B 로 10만원 송금 - A 계좌 잔액 10만원 감소 - B 계좌 잔액 10만원 증가 이 두 SQL 중 하나라도 실패하면, 전체 작업이 취소되어야 함 → 이것이 트랜잭션의 역할입니다.쉽게 말해, 한 메서드 내 2가지 이상의 SQL 작업이 있다고 하면 모두 성공하거나 실패해야 한다...
2025.11.06 -
🧩 OOP란? 객체지향 프로그래밍(OOP)은 프로그램을 "객체(Object)" 중심으로 구성하는 프로그래밍 방식이다.즉, 프로그램을 함수나 절차가 아닌 "현실 세계의 사물이나 개념"을 모델링하여 코드로 표현하는 것이라고 본다. 🏗️ Java에서의 OOP 기본 개념 Java 는 객체지향 언어(OOP 언어)로 설계되었기 때문에 다음 4가지 핵심 원칙을 따른다.원칙설명예시 ① 캡슐화 (Encapsulation) 데이터(필드)와 메서드(행동)을 하나의 객체로 묶고, 외부에서는 직접 접근하지 못하도록 숨김private 필드 + getter / setter 사용 ② 상속 (Inheritance) 부모 클래스의 속성과 기능을 자식 클래스가 물려받아 재사용 가능class Child extends Parent ③ ..
OOP(Object-Oriented Programming) 객체 지향 프로그래밍🧩 OOP란? 객체지향 프로그래밍(OOP)은 프로그램을 "객체(Object)" 중심으로 구성하는 프로그래밍 방식이다.즉, 프로그램을 함수나 절차가 아닌 "현실 세계의 사물이나 개념"을 모델링하여 코드로 표현하는 것이라고 본다. 🏗️ Java에서의 OOP 기본 개념 Java 는 객체지향 언어(OOP 언어)로 설계되었기 때문에 다음 4가지 핵심 원칙을 따른다.원칙설명예시 ① 캡슐화 (Encapsulation) 데이터(필드)와 메서드(행동)을 하나의 객체로 묶고, 외부에서는 직접 접근하지 못하도록 숨김private 필드 + getter / setter 사용 ② 상속 (Inheritance) 부모 클래스의 속성과 기능을 자식 클래스가 물려받아 재사용 가능class Child extends Parent ③ ..
2025.11.05 -
🧠 프로토타입이란?프로토타입은 Javascript 에서 객체들이 서로 메서드나 속성을 공유하도록 하는 메커니즘이다.모든 객체는 자신의 부모 역할을 하는 또 다른 객체를 참조하고, 그 부모 객체를 통해 공통 기능을 상속받는 구조이다. 이 구조를 프로토타입 체인(prototype chain) 이라고 한다. 🧩 함수와 프로토타입의 관계Javascript 에서 모든 함수(Function) 는 기본적으로 하나의 prototype 객체를 자동으로 가지고 있다.함수 생성 시 자동으로 prototype 객체가 생긴다. 1. Obo 라는 함수 생성Obo 함수 생성 시 prototype 객체가 자동으로 생성 2. Obo 프로토 타입 객체의 constructor 멤버변수Obo 함수의 프로토타입 객체는 construc..
Javascript 프로토타입(prototype)🧠 프로토타입이란?프로토타입은 Javascript 에서 객체들이 서로 메서드나 속성을 공유하도록 하는 메커니즘이다.모든 객체는 자신의 부모 역할을 하는 또 다른 객체를 참조하고, 그 부모 객체를 통해 공통 기능을 상속받는 구조이다. 이 구조를 프로토타입 체인(prototype chain) 이라고 한다. 🧩 함수와 프로토타입의 관계Javascript 에서 모든 함수(Function) 는 기본적으로 하나의 prototype 객체를 자동으로 가지고 있다.함수 생성 시 자동으로 prototype 객체가 생긴다. 1. Obo 라는 함수 생성Obo 함수 생성 시 prototype 객체가 자동으로 생성 2. Obo 프로토 타입 객체의 constructor 멤버변수Obo 함수의 프로토타입 객체는 construc..
2025.10.30 -
선택적 체이닝(Optional Chaining)중첩된 객체의 프로퍼티나 메서드에 접근할 때, 중간에 null 또는 undefined 가 있을 경우 에러 없이undefined 를 반환문법 : 객체 접근 시 "?." 를 사용null 이나 undefined 일 경우 접근을 중단하고 즉시 undefined 반환 예시const person = { name: "John", address: { city: "New York", zipCode: "10001" }};// 기존 방식 (에러 발생 위험)console.log(person.address.zipCode); // "10001"console.log(person.contact.phone); // 오류: cannot read property 'phone'..
선택적 체이닝(Optional Chaining, ?.), Null 병합 연산자(??), 논리 OR 연산자(||)선택적 체이닝(Optional Chaining)중첩된 객체의 프로퍼티나 메서드에 접근할 때, 중간에 null 또는 undefined 가 있을 경우 에러 없이undefined 를 반환문법 : 객체 접근 시 "?." 를 사용null 이나 undefined 일 경우 접근을 중단하고 즉시 undefined 반환 예시const person = { name: "John", address: { city: "New York", zipCode: "10001" }};// 기존 방식 (에러 발생 위험)console.log(person.address.zipCode); // "10001"console.log(person.contact.phone); // 오류: cannot read property 'phone'..
2025.10.30