본문 바로가기

Back end/Spring12

[Spring] 회원가입, 로그인, 요청 인증(JWT 토큰) 목차 1. 기본 설정 ■ Securityconfig a. 보안 설정 WebSecurityConfigurerAdapter를 상속 받아서 사용자 정의 보안 구성을 작성 ➡ 보안 설정을 하는 것 @EnalbeWebSecurity 어노테이션을 사용해서 Spring Security를 활성화 @Configuration 어노테이션을 적용하여 모든 요청을 거칠 때 해당 클래스를 거치게 됨 BCrypt를 통해 암호화 한 것을 해석할 수 있는 passwordEncoder() 메소드를 @Bean 어노테이션을 붙여서 IOC에 등록 BCryptPasswordEncoder는 라이브러리에 등록되어 있어 @Component를 적용할 수 없기 때문에 config에서 적용 configure 메소드는 HTTP 요청에 대한 보안 구성을 정.. 2023. 8. 17.
[Spring] Security,JWT 목차 1. Security ■ Security란? Spring Security는 Spring 기반의 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크입니다. Security는 인증과 권한에 대한 부분을 필터의 흐름에 따라 처리하고 있습니다. 필터는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받습니다. Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서 보안관련 로직을 작성하지 않아도 됩니다. Security는 기본적으로 인증 절차를 거친 후에 인가 절차를 진행하게 되며, 인가 과정에서 해당 리소스에 대한 접근 권한이 있는지 확인을 합니다. 인증 절차는 해당 사용자가 본인이 맞는지를 확인하는 것이며, 인가 절차는 인증된 사.. 2023. 8. 11.
[Spring] Validation 목차 1. Validation ■ Validation이란? Validation은 올바르지 않은 데이터를 걸러내고 보안을 유지하기 위해 여러 계층에 걸쳐서 적용되는 것을 말합니다. Client의 요청 데이터가 모두 정상적인 방식으로 들어오는 것도 아니기 때문에 데이터의 유효성 검사를 해야 할 필요가 있습니다. ■ 설치 MVN에서 Validation을 버전에 상관없이 dependency에 작성 후 버전을 지우고 설치 2. Validation Exception 처리 @Valid를 사용하지 않고 직접 Exception을 만들어 조건을 주어 예외 처리를 진행하도록 하는 방법입니다. ■ 예시 a. CustomException 메세지를 매개변수로 가지는 생성자 메세지와 각 error들의 정보를 가질 수 있는 erro.. 2023. 8. 11.
[Spring] AOP(Aspect Oriented Programming) 목차 1. AOP(Aspect Oriented Programming) ■ AOP란? AOP는 관점 지향 프로그래밍으로 불립니다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하는 것이며 모듈화는 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말합니다.예를 들어 소스 코드상에서 계속 반복해서 쓰는 코드들을 발견할 수 있는데 이것을 흩어진 관심사(Crosscutting Concerns)라고 부릅니다. 이러한 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지입니다. ■ Spring AOP 특징 접근 제어 및 부가기능을 추가하기 위해서 Proxy 패턴 기반의 AOP 구현체, Prox.. 2023. 7. 25.
[Spring] 데이터베이스 연결(MyBatis) 목차 1. MyBatis ■ MyBatis란? MyBatis는 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임워크로서 JDBC를 통해 데이터베이스에 연결하는 작업을 캡슐화하고 SQL 쿼리와 자바 오브젝트간에 자동 매핑을 지원합니다. MyBatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있습니다. ■ MyBatis 설치 MVN REPOSITORY에서 MyBatis 버전 2.2.2를 pom.xml에 추가 resources 폴더 내에 mappers라는 폴더를 만들어 내부에 xml파일로 매핑 ■ MyBatipse 설치 MyBatipse는 Mapper내의 xml파일에서 namespace 내 변수의 패키.. 2023. 7. 25.
[Spring] DI(Dependency Injection), IoC(Inversion of Control) 목차 1. DI(Dependency Injection) ■ DI란? DI는 의존성 주입으로 의존 관계를 외부에서 결정해주는 것을 말한다. 예를 들어 A가 B를 의존한다라는 표현은 B의 기능이 추가되거나 변경되면 그 영향이 A에 미치는 것입니다. 2. DI 예시 ■ StudyApplication Test 인터페이스를 구현한 TestA, TestB, TestC라는 부품을 가지고 교체하여 사용 가능 package com.web.study; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.web.study.IocAndDi.Ioc.. 2023. 7. 25.