분류 전체보기 67

[Spring Security] JWT

토큰 기반 자격 증명  ✅ HTTP 프로토콜 특성 - 비 연결성(Connectionless) : request를 전송한 후, response를 수신하게 되면 연결을 끊음 - 비 상태성(Stateless) : request와 response에 대한 상태를 저장하지 않음  ✅ 세션 기반 자격 증명 방식 - 서버 측에 인증된 사용자의 정보를 세션 형태로 세션 저장소에 저장하는 방식 - 서버 측 세션 저장소에 저장된 세션 정보와 사용자가 제공하는 정보가 일치하는지 확인하는 방식  ✅ 세션 기반 자격 증명의 특징 인증된 사용자 정보를 서버 측 세션 저장소에서 관리 사용자 세션의 고유 ID인 세션 ID는 클라이언트의 쿠키에 저장되어 request 전송 시, 인증된 사용자인지를 증명하는 수단으로 사용 세션 ID만 ..

카테고리 없음 2025.02.06

[Spring Security] Spring Security의 기본 구조(샘플)

샘플 애플리케이션 SecurityConfiguration// Spring Security 설정 클래스임을 나타내는 어노테이션@Configurationpublic class SecurityConfiguration { // SecurityFilterChain 빈(Bean)을 생성하여 HTTP 보안 설정을 정의 @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http // 동일 출처(same origin)에서 iframe 사용을 허용 (보안 정책 설정) .headers().frameOptions().sameOrigin() ..

카테고리 없음 2025.02.04

[Spring Security] 기본

Spring Security란? - Spring Security 는 인증 과정을 (1) 요청을 전송할 때 검증을 한다. - API 계층으로 넘어가기 전에 인증부터 시작한다. - Servlet의 영역에서 진행하고 DispatcherServlet의 앞에서 진행한다. (5)에서 하는 경우도 있는데 이를 인터셉터를 구현한다고 한다.   Spring Security란? Spring Security 는 Spring MVC 기반 애플리케이션의 인증과 인가 기능을 지원하는 보안 프레임워크로써, Spring MVC 기반 애플리케이션에 보안을 적용하기 위한 사실상 표준이다.Spring에서 지원하는 Interceptor나 Servlet Filter를 이용해서 보안 기능을 직접 구현할 수 있긴하다.  Spring Securi..

공부기록/Spring 2025.02.04

[Spring] Mockito // 25.01.23

Mock Mock이란?- Mock-up : 실제 제품이 나오기 전에 내부적으로 사용하기 위한 모형(or 가짜) - mock : 진짜인 것처럼 보이도록 진짜와 유사한 상황이나 물건, 물질 등을 의미.  - 테스트 세계에서 Mock : 가짜 객체 - Moking : 단테나 슬라이스 테스트 등에 Mock 객체를 사용하는 것.  테스트에서 Mock 객체를 사용하는 이유  -> Mock 객체를 사용하지 않은 슬라이스 테스트 프로세스슬라이스 테스트라면 MemberController의 메서드만 테스트를 해야 하는데 서비스 계층을 거쳐서 데이터 액세스 계층, DB까지 동 작 흐름이 끝까지 이어졌다가 돌아와야하는데 기존 테스트는 통합 테스트에 가깝다. 슬라이스 테스트의 목적 : 해당 계층 영역에 대한 테스트에 집중하는 ..

공부기록/Spring 2025.01.23

[Spring] Testing - Hamcrest, 슬라이스 테스트 // 25.01.22

HamcrestJUnit4에는 Hamcrest를 내장하고 있지 않기 때문에 build 파일에 Dependency 추가해야한다. Hamcrest란? - JUnit 기반의 단테에서 사용할 수 있는 Assertion Framework. 사용하는 이유Assertion을 위한 매쳐(Matcher)가 자연스러운 문장으로 이어지므로 가독성이 향상된다.테스트 실패 메시지를 이해하기 쉽다.다양한 Matcher를 제공한다. JUnit Assertion과 Hamcrest Assertion비교 - JUnit Assertion 기능 이용assertEquals(expected, actual); : 파라미터로 입력된 값의 변수 이름을 통해 대략적으로 어떤 검증을 하려는지 알 수 있지만 구체적인 의미는 유추해야한다.  - Hamcr..

공부기록/Spring 2025.01.22

[Spring] Testing 테스팅 - JUnit // 25.01.21

단위테스트 Java 기반의 애플리케이션 테스트 기존의 테스트 - 예제 코드를 직접 타이핑해 보고, IntelliJ IDE에서 애플리케이션을 실행한 후에 실행시킨 애플리케이션에 Postman으로 HTTP 요청을 전송해서 기대했던 JSON 응답 결과가 출력되는지 확인  단위 테스트기능 테스트 :- 애플리케이션을 사용하는 사용자 입장에서 애플리케이션이 제공하는 기능이 올바르게 동작하는지를 테스트- 단위로 따지면 가장 큰 단위의 테스트통합 테스트 :- 클라이언트 측 툴 없이 개발자가 짜 놓은 테스트 코드를 실행시켜서 이루어지는 경우가 많음.- 통합 테스트도 여러 계층이 연관되어 있어서 독립적인 테스트가 가능하다고 볼 수는 없다.슬라이스 테스트 :- 특정 계층으로 쪼개서 하는 테스트- 해당 계층에서 HTTP 요청..

공부기록/Spring 2025.01.22

[Spring] Transaction 트랜잭션 // 25.01.20

트랜잭션이란?  - Transaction : 하나의 작업단위 - All or Nothing : 전체가 성공하던가 하나라도 실패하면 전체가 실패하던가 ACID 원칙원자성 (Atomicity)  : 작업을 더 이상 쪼갤 수 없음일관성 (Consistency)  : 일관성있게 저장되거나 변경되어야 함격리성 ( Isolation ) : 여러 개의 트랜잭션이 실행될 경우 각각 독립적으로 실행이 되어야 한다. - 각각의 트랜잭션이 다른 트랜잭션에 영향을 주지 않고 독립적으로 실행이 되어야 한다. - 격리레벨 : 하나의 작업을 할 때 접근하는 테이블에서 다른 트랜잭션이 할 수 이쓴 작업과 없는 작업 설정지속성 ( Durability ) : 트랜잭션이 완료되면 그 결과는 지속되어야 한다. - ACID 원칙은 관계형 데..

공부기록/Spring 2025.01.21

[Spring] JPA 기반 데이터 액세스 계층 / 25.01.15

JPA란? JPA(Java Persistence API) : Java 진영에서 사용하는 ORM 기술의 표준 사양 또는 명세 : JPA 표준 사양을 구현한 구현체에 대해서 학습할거다 Hibernate ORMJPA표준 사양을 구현한 구현체 중 하나로, JPA에서 정의해 둔 인터페이스를 구현한 구현체로써 JPA에서 지원하는 기능 이외에 Hibernate 자체적으로 사용할 수 있는 API 역시 지원하고 있다. 데이터 액세스 계층에서의 JPA 위치  JDBC API를 살짝 추상화 한 게 Hibernate ORM 더 추상화 한게 JPA가장 raw level에서 사용되는 기술이 JDBC API 데이터 저장, 조회 등의 작업은 JPA를 거쳐 JPA의 구현체인 Hibernate ORM을 통해서 이루어지고, Hiberna..

공부기록/Spring 2025.01.15

[Spring] Spring Data JDBC를 통한 데이터 액세스 계층 구현

도메인 엔티티 클래스 정의 엔티티, 테이블 설계 확인   Spring Data JDBC에서의 애그리거트(Aggregate) 객체 매핑 규칙모든 엔티티 객체의 상태는 애그리거트 루트를 통해서만 변경할 수 있다.하나의 동일한 애그리거트 내에서의 엔티티 객체 참조- 동일한 하나의 애그리거트 내에서는 엔티티 간에 객체로 참조한다.애그리거트 루트 대 애그리거트 루트 간의 엔티티 객체 참조- 애그리거트 루트 간의 참조는 객체 참조 대신에 ID로 참조한다.- 1대 또는 1대N 관계일 때 테이블 간의 외래키 방식과 동일하다.- N대 N관계일 때는 외래키 방식인 ID 참조와 객체 참조 방식이 함께 사용된다. : 애그리거트 루트를 통해서 나머지 엔티티에 접근한다는 것은 어떤 식으로든 애그리거트 루트가 나머지 모든 엔티티에..

공부기록/Spring 2025.01.15