일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- git
- spring boot
- 스프링부트
- proxy pattern
- MYSQL
- 트랜잭션
- 자바
- 디자인패턴
- 스프링
- exception
- Spring
- aop
- 객체지향프로그래밍
- java
- response
- http
- network
- SQL
- OOP
- Spring Security
- 인터셉터
- Interceptor
- 관점지향프로그래밍
- Filter
- request
- RestControllerAdvice
- aspect
- 스프링 시큐리티
- mybatis
- Redis
- Today
- Total
목록분류 전체보기 (80)
장쫄깃 기술블로그

들어가며Spring Security 6.1부터 기존에 사용하던 and()와 non-Lambda DSL Method가 Deprecated 되고, 필수적으로 Lambda DSL을 사용하도록 변경되었다. 변경된 내용으로 스프링 시큐리티 JWT 로그인을 구현해보려 한다. 다만, 본 게시글은 스프링 시큐리티 위주의 내용만 작성하려고 한다. 로그인, 회원가입 등의 별도 비즈니스 로직 코드는 게시글 하단의 깃허브를 참고하길 바란다. 기술스택- Spring Boot 3.3.1- Spring Security 6.3.1- JPA- JWT(Access Token, Refresh Token) 구현- Spring Security 6.1 이후 lambda 문법을 이용한 코드 적용 JWT에 대한 설명이나 이전에 작성한 내용에 대해..

들어가며Spring Security 6.1부터 기존에 사용하던 and()와 non-Lambda DSL Method가 Deprecated 되고, 필수적으로 Lambda DSL을 사용하도록 변경되었다. 변경된 내용으로 스프링 시큐리티 세션 로그인을 구현해보려 한다. 다만, 본 게시글은 스프링 시큐리티 위주의 내용만 작성하려고 한다. 로그인, 회원가입 등의 별도 비즈니스 로직 코드는 게시글 하단의 깃허브를 참고하길 바란다. 기술스택- Spring Boot 3.3.1- Spring Security 6.3.1- JPA- Session, Form Login 구현- Spring Security 6.1 이후 lambda 문법을 이용한 코드 적용 스프링 시큐리티에 대한 설명은 해당 글을 참고하면 된다.링크 : https..

들어가며Add a private constructor to hide the implicit public one 유틸리티 클래스(UtilClass)를 만들다 보면 sonar에서 위와 같은 경고 문구를 보여주는 경우가 있다. 영문 그대로 해석해 보면 public 생성자를 숨기기 위해 private 생성자를 추가하라고 한다. 실제로 private 생성자를 추가하면 경고가 사라진다. 이 경고는 왜 발생하고, 어떻게 해결해야 하는지에 대해 알아보도록 하겠다. 유틸리티 클래스란? 유틸리티 클래스는 보통 객체 상태를 가지지 않고, 공용(static) 메소드를 제공하여 여러 곳에서 재사용할 수 있는 기능들을 모아놓은 클래스를 말한다. UtilityClasspublic class UtilityClass { pub..

Record란?record는 자바 14에서 처음 소개된 이후 16에서 정식으로 채용된 새로운 클래스 타입이다. 기존의 클래스와 비슷하지만, 더 간결하고 효율적으로 데이터 객체를 생성할 수 있도록 설계되었다. 특히, record는 보일러 플레이트 코드가 가지는 단점을 극복하기 위한 자바의 기능 중 하나이다.보일러 플레이트 코드 (Boiler Plate)여러 곳에서 재사용되며, 반복적으로 비슷한 형태를 띠는 코드ex) getter, setter, toString, equals, hashCode 등 보일러 플레이트 코드를 lombok이나 IDE의 도움을 받아 해결할 수 있지만, 근본적인 해결책은 되지 못한다. 이러한 한계를 극복하기 위해 자바가 추가한 기능 중 하나가 바로 record이다. Record의 특징..

log4j2.xml {%5p}{FATAL=red blink, ERROR=red bold, WARN=yellow bold, INFO=green bold, DEBUG=blue bold, TRACE=blue} ... 결과 로그별 색상이 다르게 출력되는 것을 볼 수 있다.

CustomHighlightConverter 구현ForegroundCompositeConverterBase 상속 객체를 구현한다.import ch.qos.logback.classic.spi.ILoggingEvent;import ch.qos.logback.core.pattern.color.ANSIConstants;import ch.qos.logback.core.pattern.color.ForegroundCompositeConverterBase;/** * logback-spring 로그 레벨별 색상 지정 Custom Converter Class */public class CustomHighlightConverter extends ForegroundCompositeConverterBase { @Overr..

Scheduling (스케줄링) 스케줄링은 어떤 작업 (job)에 대해서 지정된 기간 혹은 시간에 동작하도록 하는 것이다. Spring에서 스케줄 작업을 처리하기 위해서는 Quartz Scheduler와 같은 외부 라이브러리를 이용하거나 Spring Boot에서 제공하는 @Scheduled 어노테이션을 이용하여 간단하게 동작시킬 수 있다. Quartz Scheduler 라이브러리는 보다 정교하게 job 스케줄링을 다룰 수 있다. 하지만 설정과 사용에 번거로운 단점이 있다. 반대로 @Scheduled는 사용하기 매우 쉽다. 때문에, 만약 단순히 특정 시간 혹은 특정 간격으로 job을 수행해야 하는 정도이면 @Scheduled를 사용해도 좋을 것 같다. @Scheduled 사용법 1. @EnableSched..
Java Thread 종류 Main Thread Java 프로그램이 시작될 때 자동으로 생성되는 Thread 모든 Java 어플리케이션은 최소한 하나의 Main Thread가 존재 User Thread 개발자가 직접 생성하는 Thread Thread 클래스를 이용하여 생성 Daemon Thread 다른 일반 Thread의 작업을 돕는 보조적인 역할을 수행하는 Thread 단, 해당 스레드가 시작( start() )되기 전 setDeamon(true)로 데몬 스레드 지정 다른 실행중인 일반 Thread가 없거나, 모든 User Thread가 종료될 때 자동으로 종료되는 스레드 대표적으로 가비지 컬렉션 (Garbage Collection) 이 있음 Non-Daemon Thread User Thread와 같은..

인 플레이스 (In-Place) 배포 인 플레이스 (In-Place) 배포는 사용 중인 환경에 새로운 변경사항이 포함된 어플리케이션만 반영하는 배포 방법이다. AWS CodeDeploy는 롤링 배포와 인 플레이스 배포를 혼합한 배포 방식을 제공한다. CodeDeploy 인 플레이스 배포 시 Elastic Load Balancer 특히, CodeDeploy는 Elastic Load Balancer와 통합하여 사용이 가능하다. 단, 필수는 아니다. CodeDeploy 배포 시, Elastic Load Balancer는 준비되지 않았거나, 현재 배포 중이거나, 더 이상 환경의 일부로 필요하지 않은 인스턴스로 인터넷 트래픽이 라우팅 되지 않도록 한다. 그러나 로드 밸런서의 정확한 역할은 블루/그린 배포에 사용되..

들어가며 프록시 패턴 (Proxy Pattern)은 객체 지향 디자인 패턴 중 하나로, 객체 간의 간접적인 접근을 가능하게 하는 구조를 제공하는 패턴이다. 이번 게시글에선 프록시 패턴을 이용하여 전혀 다른 2가지 이상의 요구사항을 구현한 경험에 대해 정리해보려고 한다. 프록시 패턴에 대한 설명은 해당 글을 참고하면 된다. 링크 : https://jangjjolkit.tistory.com/59 [Design Pattern] 프록시 패턴 (Proxy Pattern) 프록시 패턴 (Proxy Pattern) 이란? 프록시 패턴 (Proxy Pattern)은 객체 지향 디자인 패턴 중 하나로, 객체 간의 간접적인 접근을 가능하게 하는 구조를 제공하는 패턴이다. 여기서 프록시 (Proxy)란 대리 jangjjol..