스프링
-
Spring Security - Authentication 객체가 가질 수 있는 2가지 타입Framework & Library/Spring Security 2021. 10. 3. 15:51
Authentication 객체가 가질 수 있는 2가지 타입 ㆍ 로그인 진행이 완료되면 기존의 Sesson 공간에 Security Session 공간이 만들어진다. ㆍ Security Session에 들어갈 수 있는 정보는 Authentication 객체여야 한다. ㆍ 또한 Authentication 객체가 가질 수 있는 타입은 UserDetails와 OAuth2User 2가지 타입이다. ㆍ UserDetails와 OAuth2User 2가지 타입을 통해서 로그인을 한 사용자의 정보를 얻을 수 있다. 일반 로그인 사용자 정보 받기 IndexController 클래스 수정 @GetMapping("/test/login") @ResponseBody /* 일반 로그인 사용자에 대한 정보 받기 */ public S..
-
Spring Security - 프로젝트 생성 및 환경설정Framework & Library/Spring Security 2021. 9. 30. 14:21
MySQL 사용자 및 DB생성 create user 'qlsdud'@'%' identified by 'qlsdud0604'; GRANT ALL PRIVILEGES ON *.* TO 'qlsdud'@'%'; create database security; use security; ㆍ 위에 sql 문을 차례대로 실행해서 사용자 및 DB를 생성한다. Spring Boot 프로젝트 생성 ㆍ 위 사진과 같은 의존성을 포함한 Spring Boot 프로젝트를 생성한다. application.yml 설정 server: port: 8080 servlet: context-path: / encoding: charset: UTF-8 enabled: true force: true spring: datasource: driver-..
-
Spring Boot - AOPFramework & Library/Spring Boot 2021. 9. 23. 18:04
AOP AOP의 필요성 - 모든 메서드의 호출 시간을 측정하고 싶은 경우를 생각해본다. - 해결 방법은 위 사진과 같이 각 계층마다 시간을 측정하는 로직을 작성하는 방법이 있다. - 이때, 시간을 측정하는 로직과 핵심 비즈니스의 로직이 섞여서 코드가 복잡해지고 유지보수가 어려워진다는 문제점이 발생한다. - 핵심 관심 사항(핵심 비즈니스 로직)과 공통 관심 사항(시간을 측정하는 로직)을 분리함으로써 이러한 문제점을 해결할 수 있다. AOP를 통한 해결 - 위 그림과 같이 핵심 관심 사항(핵심 비즈니스 로직)과 공통 관심 사항(시간을 측정하는 로직)을 분리한다. - 시간을 측정하는 로직을 공통 로직으로 만든 후 원하는 적용 대상을 선택해 준다. - 이와 같이 공통으로 처리해야 하는 기능들을 별도로 분리함으로..
-
Spring Boot - 사용자 입력 데이터 처리Framework & Library/Spring Boot 2021. 9. 23. 17:56
사용자 입력 데이터 처리 회원 등록 폼 HTML 이름 등록 - 사용자가 이름을 입력할 수 있는 폼 형식의 HTML 파일이다. - input 태그에 이름을 입력하고 등록 버튼을 눌렀을 때, "/members/new" 주소에 POST 방식으로 전달된다. 웹 화면에서 데이터를 전달받을 폼 객체 public class MemberForm { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } - 사용자가 입력한 이름 데이터와 매핑할 객체이다. 컨트롤러를 통한 데이터의 처리 @PostMapping(value = "/members/new") public S..
-
Spring Boot - IoC와 DIFramework & Library/Spring Boot 2021. 9. 23. 17:54
IoC(Inversion of Cotainer) IoC란? - IoC는 Inversoin of Container의 약자로, 제어의 역전이란 의미를 가지고 있다. - 제어의 역전이란 객체의 생명주기 관리를 컨테이너가 도맡아, 제어권이 개발자에서 컨테이너로 넘어가게 되어 제어권의 흐름이 바뀌었다는 것을 뜻한다. - 즉, 개발자가 직접 new 키워드를 통해 인스턴스를 생성하고, 메서드를 호출하는 작업들을 스프링에 위임하는 것이다. DI(Dependency Injection) DI란? - DI란 의존 관계 주입이라 하고, 어떤 객체가 사용하는 의존 객체를 내부에서 직접 생성하는 것이 아니라 외부에서 주입하는 방식을 말한다. DI의 사용 이유 - 객체를 주입받는다는 것은 외부에서 생성한 객체를 넘겨받는 것이기 때..
-
Spring Boot - 스프링 웹 개발 기초Framework & Library/Spring Boot 2021. 9. 23. 17:49
정적 콘텐츠의 동작 과정 1. 웹 브라우저 요청 ex) localhost:8080/hello-static.html 2. 내장 톰캣 서버에서 콘텐츠 탐색 2-1. 우선, 스프링 컨테이너에 접근 → hello-static 관련 컨트롤러가 존재하지 않음 2-2. static 폴더에 접근 → hello-static.html 파일이 존재 3. 브라우저에 hello-static.html 파일을 렌더링 MVC와 템플릿 엔진의 동작 과정 1. 웹 브라우저 요청 ex) localhost:8080/hello-mvc?name=spring 2. 내장 톰캣 서버에서 콘텐츠 탐색 2-1. 스프링 컨테이너에 접근 → 해당 url과 매핑된 컨트롤러가 존재 2-2. 모델이 전달받은 데이터를 처리한 후, 템플릿 이름을 반환 2-3. v..