목록spring (5)
dev-sohee 님의 블로그
다이나믹 프록시와 CGLIB는 Java에서 프록시를 생성하는 방법입니다. 이 두 가지는 비슷한 목적을 가졌지만, 그 구현 방식과 사용되는 상황이 조금 다릅니다. 이 글에서는 각각의 특징과 장단점을 자세히 살펴보겠습니다.*다이나믹 프록시*CGLIB(Code Generator Library) 먼저 다이나믹 프록시를 알아보기에 앞서, 프록시가 무엇인지부터 짚고 넘어가겠습니다. 프록시(Proxy)는 '대리자'라는 뜻으로, 클라이언트가 사용하려고 하는 실제 대상인 것처럼 위장해서 클라이언트의 요청을 대신 받아주는 역할을 합니다. 프록시가 실제 대상인 것처럼 위장함으로써 이를 사용하는 클라이언트는 구체 클래스를 알 필요가 없어집니다. 또한 실제 타겟 오브젝트는 프록시를 통해 최종적으로 요청을 받아 처리함으로써 자신..
소프트웨어 개발의 세계는 점점 복잡해지고 있습니다. 이런 환경에서 개발자들은 품질 높은 코드를 작성하기 위해 다양한 방법론을 도입하고 있습니다. 오늘 다룰 내용인 TDD, BDD, DDD가 그 예시입니다. 이번 글에서는 스프링 프레임워크를 활용하여 이 세 가지 방법론을 효과적으로 적용하는 방법을 살펴보겠습니다.*TDD(Test Driven Development)*BDD(Behavior Driven Development)*DDD(Domain Driven Development) #TDD TDD(Test Driven Development)는 테스트를 먼저 작성하고, 그 테스트를 통과할 수 있도록 최소한의 코드를 개발하는 방식입니다. 이로 인해 코드의 품질과 완성도에 대한 신뢰도가 높아집니다. 1990년대 말,..
테스트 없이 개발되는 애플리케이션은 없고 테스트를 안거친 코드는 존재 가치가 없다고 봐도 무방할 정도로 개발자와 테스트는 뗄레야 뗄 수 없는 관계입니다. 만약 애플리케이션을 개발 및 확장할 때 테스트를 안한다면 개발자가 예상치 못한 상황이 생겼을 때 시스템이 중단된다거나, 원래 잘되던 기능이 새로운 버전에서는 정상 동작을 안하는 등의 심각한 문제가 발생할 수 있습니다. 이 글에서는 이렇게 중요한 테스트를 쉽게 할 수 있도록 자바가 지원하는 도구인 자바 테스팅 프레임워크 JUnit에 대해 알아보겠습니다. 단위 테스트작은 단위의 특정 코드에 대해 의도한 대로 잘 작동하는지 검증하는 것을 단위 테스트라고 합니다. 단위의 크기가 작을수록 테스트의 복잡성이 낮아지고, 테스트하려는 대상이 명확하여 그 대상에만 집..
'Spring의 3대 프로그래밍 모델 : 스프링 삼각형(IoC/DI, AOP, PSA) 1탄'에 이어서 AOP와 PSA에 대해 알아보겠습니다. # AOPAOP(Aspect-Oriented Programming)란 프로그램의 핵심 로직과 부가적인 관심사를 분리하여 코드의 중복성을 낮추고, 유지 보수성을 높이는 프로그래밍 기술입니다. 중복되는 공통 코드 부분을 별도의 영역으로 분리하고, 코드가 시행 되기 전이나 이후의 시점에 해당 코드를 붙여 넣음으로써 소스 코드의 중복을 줄이고, 필요할 때마다 가져다 쓸 수 있게 객체화하는 기술입니다. 구성 요소핵심 관심(Core Concerns): 시스템의 핵심 가치와 목적이 드러난 관심 영역횡단 관심(cross-cutting concern): 여러 핵심 관심에 걸쳐..
스프링을 이해하는 데는 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형이라는 애칭을 가진 IoC/DI, AOP, PSA라고 하는 스프링의 3대 프로그래밍 모델에 대한 이해가 필수입니다. 스프링 삼각형을 이해하지 않은 상태에서 스프링 프레임워크를 학습하는 것은 알파벳을 모르고 영어를 공부하는 것과 마찬가지입니다. * IoC/DI (Inversion Of Control/Dependency Injection)* AOP(Aspect-Oriented Programming)* PSA(Portable Service Abstraction) # IoC/DI IoC/DI(Inversion Of Control/Dependency Injection)란 해석하면 제어의 역전/의존성 주입입니다. 해석..