본문 바로가기

Spring Boot9

[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] 데이터베이스 연결(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.
[Spring] 타임리프(Thymeleaf) 목차 1. Thymeleaf ■ Thymeleaf란? Thymeleaf는 웹 및 웹이 아닌 환경 모두에서 작동할 수 있는 템플릿 엔진입니다. 보통 자바에서 웹 개발시에는 JSP(Java Server Page)를 이용하는데 형태의 스크립트릿을 사용하여 자바 문법을 HTML에서 사용가능하게 해주는데 이 방식은 스크립트릿과 HTML이 섞인 상태가 되어 더 수정하기 어렵습니다. 이러한 상태를 해결하기 위해 템플릿 엔진을 사용하는데 템플릿 엔진은 HTML과 데이터를 결합한 결과물을 만들어 주는 도구입니다. 템플릿 엔진은 최초 한번 전체 페이지를 다 불러오고 응답데이터만 렌더링하는 SSR(Server Side Rendering) 방식입니다. ■ 설치 MVN REPOSITORY에서 Thymeleaf를 검색하여 Spr.. 2023. 7. 25.
[Spring] Controller, Dto 목차 1. Controller ■ BasicController @RestController은 응답인터페이스에서 무조건 데이터를 리턴하고 view로 리턴 불가능 @Controller는 view를 리턴하고, 응답인터페이스에 @Responsebody를 쓰면 데이터를 리턴 @RequestMapping을 사용하다가 spring 4.3이후에는 @GetMapping(uri)형식으로 사용 가능 대표적으로 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping을 사용 자료형이 String일 때만 text로 응답하고 나머지는 JSON으로 응답 package com.web.study.controller; import java.util.ArrayList; import java.uti.. 2023. 7. 25.