spring security를 사용할 때 사용자의 정보를 컨트롤러를 통해 Principal 객체를 통해 얻을 수 있었다. 하지만 이 방법을 사용하여 사용자의 정보가 필요한 페이지마다 이 작업을 모두 추가해주기는 번거롭다. 이를 고려하여 두번째 방법으로는 컨트롤러에서 넘겨주는 복잡한 로직을 제거하기 위해 타임리프를 활용하여 authentication.principal의 정보를 바로 사용하는 것이다. 하지만 이 방법으로는 사용자의 정보는 한정적이다. 확인해보면 사용할만한 정보가 username과 password 뿐이다. 따라서 spring security가 회원의 정보를 세션에 담을 때 더 많은 정보를 담고 있으면 우리는 추가적으로 이러한 한정적인 정보를 벗어나서 사용할 수 있다. 스프링 시큐리티가 로그인시..
이전에 포스팅한 OAuth에 대한 Access Token 발급 과정에 대해서 간단하게라도 숙지하는 것을 (꼭)권장한다. https://sh970901.tistory.com/73 OAuth 2.0 (access Token 발급 과정) 깃허브, 네이버, 카카오등을 통해 우리는 소셜 로그인을 만들 수 있다. 나의 서비스와 이들은 서로에 대해서는 사실 모른다고 표현할 수 있고 그들 가운데 oauth라는 표준 인터페이스 역할을 하는 sh970901.tistory.com 필자는 SSR 방식의 소셜로그인 구현을 기록했다. 리액트같은 것과 REST API 통신하려면 밑에 글을 참고해보자. 정리를 너무 잘해주셔서 이해가 확 와닿았다. https://data-jj.tistory.com/53 REST-API 활용한 카카오 ..
스프링 빈이란? 스프링 빈은 스프링 컨테이너에 의해 관리되는 자바 객체(POJO)를 의미한다. 스프링의 특징에는 제어의 역전(IoC)이 있다. https://sh970901.tistory.com/42?category=954625 스프링 IoC 컨테이너 (Inversion Of Control) 무엇인가? Inversion Of Control ⇒ 제어의 반전 IoC(제어 반전)이란, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미합니다. 스프링 프레임워크도 객체를 생성하 sh970901.tistory.com 제어의 역전이란, 간단히 말해서 객체의 생성 및 제어권을 사용자가 아닌 스프링에게 맡기는 것이다. 지금까지는 사용자가 new연산을 통해 객체를 생성하고 메소드를 호출했다..
▶ 개념 💡 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 자바 진영에서 ORM( Object - Relational Mapping ) 기술 표준으로 사용되는 인터페이스 모음 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크 JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. ▶ JPA 동작 애플리케이션과 JDBC 사이에서 동작한다. JPA를 사용하면 JPA 내부에서 JDBC API를 사용하여 SQL을 호출해서 DB와 통신 하나의 앱에는 하나의 EntityManager Factory를 생성하고 각 요청에 따라 EntityManager를 생성하여 커넥션 풀을 만들고 DB에 요청 EntityManager는 하나의 스레드에서 사용하고, 사용이 끝나면 반납 그 이..
무엇인가? Inversion Of Control ⇒ 제어의 반전 IoC(제어 반전)이란, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미합니다. 스프링 프레임워크도 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너가 있는데,그것이 바로 IoC 컨테이너(=스프링 컨테이너) 이다. 인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해줍니다. 자바로 객체를 생성할 때 우리는 new 연산자를 이용하여 리모콘을 생성하여 사용하였다. 하지만 IoC컨테이너가 new하지 않고 직접 인스턴스를 생성 시켜주는 작업을 말한다. 코드에 직접적인 연관 관계가 발생하지 않아 느슨한 결합이 가능하다. 심지어 싱글톤으로 하나만 사용되기 때문에 무척 유용..
Spring MVC는 Spring에서 제공하는 웹 모듈로, Model, View, Controller 세가지 구성요소를 사용해 사용자의 다양한 HTTP Request을 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답은 물론 View를 표시하는 html을 return하는 응답까지 다양한 응답을 할 수 있도록 프레임크이다. Spring MVC 이전에 서블릿에서 어떤 구조였는지 경험해보는 것을 추천한다. https://sh970901.tistory.com/111 1. Model(모델) 어플리케이션의 데이터이며, 모든 데이터 정보를 가공하여 가지고 있는 컴포넌트이다. 사용자가 이용하려는 모든 데이터를 가지고 있어야하며, View(뷰) 또는 Controller(컨트롤러)에 대해 어떤 정보도 알 수 없..