본문 바로가기

Spring32

logback vs log4j2 목차개요Log4j2Logback결론1. 개요Logback와 Log4j2는 둘 다 Java 기반 프로젝트에서 사용되는 인기 있는 로깅 프레임워크다.둘은 비슷한 목적을 가지고 있지만, 기능, 성능 및 사용 편의성 측면에서 차이가 있다. 아래 차이를 살펴보자.2. Log4j2Apache Log4j2 는 가장 최근에 나온 프레임워크이며, 목표는 Logback 에 포함된 일부 개선 사항을 포함하여 Log4j 에 자체 개선 사항을 제공하고, Log4j 및 Logback 의 문제를 방지하여 두 프레임워크를 모두 개선하는 것이다.따라서 Logback 과 마찬가지로 Log4j2 는 SLF4J 에 대한 지원을 제공하며, 로깅 구성을 자동으로 다시 로드하며 고급 필터링 옵션을 지원한다.이러한 기능 외에도 람다 표현식을 기반.. 2024. 1. 8.
__**JDK Dynamic Proxy vs CGLIB Proxy**__ 목차개요JDK Dynamic Proxy란?CGLIB Proxy란?JDK Dynamic Proxy vs CGLIB Proxy1. 개요스프링 AOP는 2가지 타입의 Proxy를 제공한다. 바로 JDK Dynamic Proxy와 CGLIB Proxy이다.스프링 AOP의 ProxyFactoryBean이 proxy를 생성하는데, 경우에 따라 이 둘 중 하나를 서택해서 사용하는 방식이다.2. JDK Dynamic Proxy란?JDK에서 지원하는 프록시 생성 방법외부 라이브러리에 의존하지 않는다프록시 팩토리에 의해 런타임 시 다이나믹하게 만들어지는 오브젝트프록시 팩토리에게 인터페이스 정보만 제공해주면 해당 인터페이스를 구현한 클래스 오브젝트를 자동으로 생성Reflection API를 사용한다. (느리다)인터페이스가 .. 2023. 12. 29.
__ExceptionHandler와 ControllerAdvice를 알아보자__ 목차개요스프링의 기본적인 예외 처리@ExceptionHandler@ControllerAdvice결론1. 개요예외 처리를 하는 방법은 다양하나 일반적으로 간단하게 예외를 핸들링하기 편한 방법으로 try / catch문을 자주 사용한다.스프링을 사용한 웹 애플리케이션에서 적용할 수 있는 예외 처리 방법인 @ExceptionHandler와 @ControllerAdvice에 대해 알아보자.2. 스프링의 기본적인 예외 처리@RestController public class SimpleController { @GetMapping(path = "/errorExample") public String invokeError() { throw new IllegalArgumentException(); } }url로 /erro.. 2023. 12. 19.
스프링의 삼각형은 무엇일까? 목차개요IoC/DI - 제어의 역전/의존성 주입AOP (Aspect-Oriented Programming) : 관점 지향 프로그래밍PSA (Portable Service Abstraction) : 일관성 있는 서비스 추상화결론1. 개요아래 그림처럼 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형이라는 IoC/DI, AOP, PAS 개념이 이루고 있어 스프링 삼각형이라고 부른다. 스프링은 거대함 속에 단순함을 가지고 있는데 바로 그 단순함이 스프링 삼각형이다.2. IoC/DI - 제어의 역전/의존성 주입DI(Dependecy Injection)A가 B클래스를 사용하고 있을때 A가 B를 직접 생성해서 사용하는 것이 아니라 외부에서 B클래스의 인스턴스를 생성해서 주입해준다는 것이다... 2023. 12. 18.
패스워드 암호화를 어떤 방식으로 하면 좋을까? 목차개요단방향 암호화 (One-Way Encryption)양방향 암호화 (Two-Way Encryption)해시함수란?MD5SHA왜 MD5와 SHA와 같은 방식으로 비밀번호를 암호화 하면 안될까?Bcrypt란?결론1. 개요일반적으로 대부분의 사이트에서는 아이디와 비밀번호로 로그인을 하고 각각 개인정보들을 데이터베이스 저장을 한다.이러한 개인정보 중 비밀번호와 같이 노출되어서는 안되는 종류들이 그대로 데이터베이스에 저장되면 어떻게 될까?정답은 당연 문제가발생한다. 이러한 개인정보는 암호화해서 데이터베이스 저장응 해야하며 어떻게 패스워드를 암호화 하는 것이 좋을지 알아보자.2. 단방향 암호화 (One-Way Encryption)특징단방향 암호화는 주로 비밀번호 저장과 같은 경우에 사용된다. 이 방법은 원본 .. 2023. 12. 15.
Junit5은 무엇일까? 목차JUnit은 무엇인가?JUnit5은 무엇인가?JUnit5의 주요 어노테이션JUnit5의 Assertions결론1. JUnit은 무엇인가?JUnit은 자바 프로그래밍 언어용 유닛 테스트 프레임워크다.Jetbrain에서 발표한 통계에 따르면 자바 개발자의 86%가 JUnit을 사용하고 있다고 한다.2. JUnit5은 무엇인가?JUnit5에서 5는 버전을 뜻하고 2017년 2월에 출시하여 많은 자바 개발자들이 사용하고 있는 테스트 기반 프레임워크이다.JUnit5은 자바8 이상부터 사용가능하며 JUnit Platform과 JUnit Jupiter, Junit Vintage 결합한 형태라고 보면 된다.JUnit Platform: 테스트를 실행해주는 런처와 TestEngine API를 제공함.Jupiter: T.. 2023. 12. 5.