Spring-AOP, Proxy 란? AOP란 ? AOP는 문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 모듈 사항을 기준으로 프로그래밍 함으로써 공통 모듈을 여러 코드에 쉽게 적용할 수 있도록 도와주는 역할을 합니다. AOP를 구현하는 다양한 방법이 존재하지만, 기본적인 개념은 아래 그림과 같이 공통 관심 사항 코드를 비즈니스 로직을 구현한 코드안에 삽입하는 것입니다. 위에 그림에서 공통기능은 직접적으로 호출되지 않습니다. 핵심로직을 구현한 코드를 컴파일하거나, 컴파일된 클래스를 로딩하거나, 또는 로딩한 클래스의 객체를 생성할 때, Proxy객체를 통해 호출할 때 AOP가 적용됩니다. AOP용어 -Joinpoint Advice를 적용 가능한 지점을 의미합니다. 메소드호출, 필드값 변경 등..
서블릿 컨테이너와 스프링 컨테이너 서블릿 컨테이너 서블릿 컨테이너는 개발자가 웹서버와 통신하기 위하여 소켓을 생성하고, 특정 포트에 리스닝하고, 스트림을 생성하는 등의 복잡한 일들을 할 필요가 없게 해준다. 컨테이너는 servlet의 생성부터 소멸까지의 일련의 과정(Lifer Cycle)을 관리한다. 서블릿 컨테이너는 요청이 들어올 때마다 새로운 자바 스레드를 만든다. 우리가 알고 있는 대표적인 Servlet Container가 Tomcat 이다. 톰켓같은 was가 java파일을 컴파일해서 Class로 만들고 메모리에 올려 servlet객체를 만든다. Servlet 동작과정 사용자가 URL을 클릭하면 HTTP Request를 Servlet Container에 보낸다. Servlet Container는 H..
Spring에서 Exception 발생시 Trasaction 처리 주의 자바에서는 총 3개의 Exception이 존재한다. Error, Checked Exception, Unchecked Exception Error 첫째는 java.lang.Error 클래스의 서브 클래스들이다. 에러는 시스템에 뭔가 비정상적인 상황이 발생했을 경우에 사용된다. 주로 VM에서 발생시키는 것이고 애플리케이션 코드에서 잡으려고 하면 안된다. 대부분 컴파일시 발견될 수 있는 예외이다. Checked Exception java.lang.Exception 클래스와 그 아들 클래스로 정의되는 예외들은 에러와 달리 개발자들이 만든 애플리케이션 코드의 작업 중에 예외상황이 발생했을 경우에 사용된다. Exception클래스는 다시 체크 ..
Spring-RememberMe 구현 일반적으로 우리는 브라우저를 닫는순간 세션이 끊기고 브라우저를 다시 켜게되면 로그인을 통해 세션을 연결해준다.하지만 rememberme 기능을 이용하면 브라우저를 열면 자동 로그인을 하게 된다. 일반적으로 브라우저로 쿠키를 보냄으로써 세션에 의해 쿠키가 발견되고 자동적으로 로그인이 일어날것이다. spring security 에서는 2가지방식을 제공한다. 하나는 쿠키기반의 token의 안전을 보호하기위해 hashing 사용, 다른 하나는 스토리지나,데이터베이스에 만들어진 토큰을 저장하여 사용한다. 두개의 구현방식은 Spring security UserDetailsService을 요구한다. 1. Simple Hash-Based Token Approach(Hashing 방..
자바 Exception 자바에서 크게 에러는 2가지가 존재한다. 문법에러 오타와같이 자바 구문에서 에러가나는 경우 이다. 이것은 컴파일시 에러로 발생으로 수 가능하다. 실행에러 실행 에러는 프로그램 실행시 상황에 따라 발생하는 오류이다. 실행 에러안에서 크게 또 논리에러, 시스템에러, 예외사항으로 나뉘어진다. 여기서 문법적인 에러는 컴파일시 대부분 수정이 가능하다. 실행에러는 컴파일은 수행되었으나 실행시에 문제가 되는 경우로논리적인 에러, 시스템에러, 예외 사항의 발생이다. 이중 논리적인 에러는 프로그래머가 코드를 잘못 작성해서 생기는 경우이며, 시스템적인 에러는 프로그래머의 의지와는 상관없이 발생하는 것이므로 프로그래머가 처리할 수 있는 방법은 없다. 예외사항은 정상적으로 프로그램이 동작중에 발생할 수..
Spring-social-facebook 구현 내용 Spring social 로그인은 두가지 구현 방법이 있다. Connect Framework/Provider Sign In 방법이 있다. "/connection/facebook" post "/signin/facebook" post Connect 방법은 타임라인에 글을 보거나 쓰는용도로 많이쓰인다. signin은 일반적으로 로그인을 구현할때 많이 사용된다. 지금 구현하려는 방식은 signin방식이다. 먼저 signin방식을 사용하기위해서 ProviderSignInController을 알아야한다. ProviderSignInController는 컨트롤러로 구성되어있다. /signin/{provider} (provider는 facebook/twitter etc..
Spring Security 로그인 인증 구현 개요 Spring Security에서 인증 사용할때 최상위 인터페이스 AuthenticationProviderManager Interface를 사용한다. 이인터페이스는 단순하게 아래와같이 정의 되어있다. public interface authenticationManager{ Authentication authenticate(Authentication authetication) throws AuthenticationException; } 이 인터페이스는 로그인을 시도하는 유저의 비밀번호가 일치하는지를 비교해서 인증에 성공하게 되면 Aunthetication 객체를 리턴해주는것을 구현해야하는 인터페이스이다. 그리고 일반적으로 Srping 에서 authentica..
톰켓 세션 동작원리 Cookie 사용자 하드웨어에 저장되는 텍스트이다. 클라이언트가 웹서버에 접근하면 요청한 response로 웹페이지를 전송하면서 쿠키정보도 보내줌. 세션 HTTP프로토콜은 비접속형 프로토콜, 매 접속마다 새로운 네트웤 연결이 이루어진다. 그래서 서버는 클라이언트의 이전 상태를 기억하기위해 세션이라는 개념을 사용한다. 웹 어플리케이션에서 개발할때 세션을 이용해서 사용자의 로그인정보의 상태를 유지할 수 있게 한다. 로그인상태를 유지하기 위해서는 서블릿 컨테이너인 tomcat이 내부적으로 어떻게 동작하는지 알아야한다. login페이지를 들어가게되면 HTTP 헤더 response 정보를 보게되면 JSESSIONID값이 톰켓에서 발급되는 쿠키정보를 볼수 있습니다. 톰켓은 사용자가 로그인을 하지..
- Total
- Today
- Yesterday
- OS
- network
- jenkins #mac방화벽
- #linux
- SSH
- Spring
- batch
- HMAC
- Chache
- Infra
- eslint
- Angular
- vue
- Github
- tobi
- JPA
- Jenkins
- Gradle
- Collection
- Linux
- kotlin
- java
- javascript
- Quasar
- IntelliJ
- https
- aws
- OAuth
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |