본문 바로가기

IT49

[Spring boot] Spring Security 기본 구현 Spring Security이전 포스트에서는 Spring Security의 기본 구조에 대해서 살펴보았다.Spring Security의 기본 구조에 대한 내용은 아래 포스트를 참고하면 된다. [Spring boot] Spring Security 구조 이해Spring SecuritySpring Security는 애플리케이션 보안(인증, 인가, 권한)을 담당하는 스프링 하위 프레임워크이다.보안 옵션을 많이 제공해 주고 복잡한 로직 없이도 어노테이션으로도 설정이 가능하며,kyu-nahc.tistory.com해당 포스트에서는 Spring Security에서 기본으로 제공하는 세션 인증 기반 코드이다.Spring Security를 사용하여 Jwt Server 혹은 OAuth 소셜 로그인을 구현할 수 있으며,이에 .. 2024. 9. 5.
[Spring boot] Spring Security 구조 이해 Spring SecuritySpring Security는 애플리케이션 보안(인증, 인가, 권한)을 담당하는 스프링 하위 프레임워크이다.보안 옵션을 많이 제공해 주고 복잡한 로직 없이도 어노테이션으로도 설정이 가능하며,여러 보안 위협 방어 및 요청 헤더도 보안 처리를 해준다.기본적으로 스프링 시큐리티는 세션 기반 인증을 제공한다.세션, 토큰 기반의 인증과 인가에 대한 내용은 아래 포스팅을 참고하면 된다. [Server] 토큰 기반 인증 & 세션 기반 인증Authentication (인증) /  Authorization (인가) 세션 기반 인가와 토큰 기반 인가에 대해 알아보기 이전에 먼저, 인증과 인가가 무엇인지부터 알아야 할 필요가 있다. 인증과 인가를 같거나 비슷한 개념kyu-nahc.tistory.c.. 2024. 9. 4.
[Java] Java Strategy Pattern Strategy PatternStrategy 전략 패턴은 실행(런타임) 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴이다.여기서 '전략'이란 일종의 알고리즘이 될 수 도 있으며,기능이나 동작이 될 수도 있는 특정한 목표를 수행하기 위한 행동 계획을 말한다.즉, 어떤 일을 수행하는 알고리즘이 여러 가지 일 때,동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 필요한 경우에 적합한 패턴이다.이 패턴을 정책이라고도 하며, Strategy Pattern은 Open/Closed 원리를 기반으로 한다.메인 Context를 수정할 필요 없이 (Closed) 모든 구현을 선택 혹은 추가 (Open) 할 수 있다. Strate.. 2024. 8. 29.
[Spring boot] AOP (Aspect Oriented Programming) AOP ( Aspect Oriented Programming )AOP는 관점(Aspect) 지향 프로그래밍으로, 관점을 기준으로 다양한 기능을 분리하여 보는 프로그래밍이다. 관점(Aspect)이란, 부가 기능과 그 적용처를 정의하고 합쳐서 모듈로 만든 것이다. 여기서 관점은 공통 관심 사항과 핵심 관심 사항으로 나눌 수 있다.공통 관심 사항 : 보안, 로깅, 성능, 파일 입출력핵심 관심 사항 : 개발자가 구현하는 비즈니스 로직단 여기서 Spring AOP는 Spring Bean에 적용이 가능하다.Spring Bean 객체의 메소드 호출을 인터셉트한다면,Spring Bean 객체의 해당 메소드가 호출되기 전에 인터셉트하고 특정 로직을 실행되게 할 수 있다.즉 인터셉트를 통해 공통 관심 사항에 대한 로직을 .. 2024. 8. 28.
[Java] Java 함수형 프로그래밍 Java 함수형 프로그래밍 자바는 Java 8 버전부터 함수형 프로그래밍을 지원하기 위해 람다(lambda)와 스트림(stream)이 도입되었다. 람다와 스트림을 사용하면 함수형 프로그래밍 스타일로 자바 코드를 작성할 수 있다. 물론 람다와 스트림을 사용하여 작성한 코드를 일반 스타일의 자바 코드로 바꾸어 작성하는 것이 불가능하지는 않다.  달리 말하면 람다와 스트림 없이도 자바 코드를 작성하는 데 어려움이 없다는 뜻이다. 그런데도 람다와 스트림을 사용하는 이유는 작성하는 코드의 양이 줄어들고 읽기 쉬운 코드를 만들 수 있기 때문이다. 아래 예시가 명령형 프로그래밍과 함수형 프로그래밍의 예시이다.public class DeploytestApplication { public static void main(.. 2024. 8. 27.
[Server] What is JWT ( Json Web Token ) JWT ( Json Web Token)현대 웹서비스에서는 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. 현재 토큰 기반 인증 시스템에서 가장 많이 사용되는 것이 JWT이다.먼저 JWT는 Json Web Token의 약자로 Json객체를 이용해서 토큰 자체의 정보를 저장하고 있는 웹 토큰이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 이는 암호화된 토큰으로 복잡하고 읽을 수 없는 문자열 형태로 저장되어 있다.  JWT 구조JWT는 Header, Payload, Signature의 3 부분으로 이루어지며, Json 형태인 각 부분은 Base64Url로 인코딩 되어 표현된다. 또한 각각의 부분을 이어 주기 위해 ' . ' .. 2024. 8. 26.

loading