전체글114 상태검증 vs 행위검증 목차상태검증이란?행위검증이란?1. 상태검증이란?메서드가 수행될 때 연관되어있는 협력 객체의 '상태'를 검증함으로써 제대로 기능이 동작하고 있는지를 검증하는 것이다.val abc = Abc() abc.increase() assertThat(abc.value).isEqualTo(10)abc 인스턴스의 value가 10과 같은지 상태를 검증한다.단위테스트2. 행위 검증이란?테스트하고자 하는 메소드가 참조하고 있는 협력 객체의 메소드를 제대로 호출 하는지에 대한 '행위'를 검증하는 것이다.val abc = Abc() abc.increase() verify(abc, atLeastOnce()).increase()abc 인스턴스의 increase() 메서드가 최소 한 번은 수행되었는지 행위를 검증한다.통합테스트 2024. 1. 29. 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. Log4j란? 목차개요Log4j란?Log4j 특징Log4j 구조결론1. 개요 평상시에 롬복라이브러리를 자주 사용하는데 로그를 남기고 싶을때 Log4j 어노테이션을 이용하여 자주 사용하였다.하지만 로그를 남기는 용도로만 사용하였을뿐 자세히 Log4J에 대해 알지 못하여 정리를 해보려고 한다.2. Log4j란?자바 애플리케이션에서 로깅(logging)을 구현하기 위한 오픈 소스 라이브러리다.로깅은 애플리케이션의 동작 및 이벤트를 기록하는 것을 의미하며, 애플리케이션의 디버깅, 모니터링, 문제 해결, 보안 등 다양한 목적으로 사용된다. log4j는 이러한 로깅 작업을 효율적으로 처리할 수 있는 도구를 제공한다.3. Log4j의 특징log4j는 로깅 성능을 최적화하고 효율적으로 처리할 수 있는 기능을 제공한다.log4j는 부.. 2023. 12. 20. __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. 이전 1 ··· 5 6 7 8 9 10 11 ··· 19 다음