spring 3

스프링 테스트 통합해서 비용 줄이기(통합 테스트)

‘인프런 - Practical Testing: 실용적인 테스트 가이드’ 강의를 참고했습니다. (개인적으로 아주 좋았습니다 👍)작성된 일부 테스트를 통해 예시를 드니 여러 상황에 구체적인 예시 코드가 없는 것과 일부 상황 가정에 대해 감안해주시면 감사합니다. 테스트 통합 이전 상황현재 3 tier architecture인 Presentation layer ↔ Business layer ↔ Persistence layer 구조에 대해 테스트를 수행했습니다.각 controller, service, repository는 기능 수행에 있어 여러 빈들 간 상호 작용이 필요하다. 그렇기에 테스트에서도 특정 빈들이 담긴 스프링 컨텍스트를 가져와 통합 테스트를 진행했습니다. 하지만 전체 테스트를 진행하니 통합 테스트 ..

spring 2024.07.09

스프링 핵심 원리 - 기본

인프런 김영한 강의와 자료를 토대로 부분적으로 요약했단 점 참고바랍니다. 앞 글에서 좋은 객체 지향 설계의 원칙 5가지(SOLID)를 지키기 위해 역할(인터페이스)과 구현(클래스)을 분리했다. 그렇지만 구현체를 바꿀 때 마다 코드 수정으로 인해 OCP 위반과 구현체(클래스)에 의존하므로 DIP 위반을 일어난다. DIP를 지키기 위해 위 처럼 코드를 변경한다 하더라도 구현체가 없으므로 NPEE(null pointer exception)가 발생한다. 이 문제를 해결하기 위해 관심사를 분리한다. 구현 객체를 생성하고, 연결하는 책임을 가지는 별도의 설정 클래스(AppConfig)를 만들면 생성자를 통해 주입해줘 OCP와 DIP를 지킬 수 있다. IoC, DI, 컨테이너 제어의 역전 IoC(Inversion o..

spring 2023.03.06

객체 지향 설계와 스프링

스프링이란? 스프링 생태계 스프링은 무엇일까? • 스프링이라는 단어는 문맥에 따라 다르게 사용된다. • 스프링 DI 컨테이너 기술 • 스프링 프레임워크 • 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계 중요한 것은 스프링이 만들어진 이유이다. 웹 어플리케이션 생성과 DB 접근을 편리하게 해주고 웹 서버를 자동으로 띄워주기도 한다. 여러 가지가 있지만 핵심은 스프링이 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크인 것이다. • 스프링은 자바 언어 기반의 프레임워크 • 자바 언어의 가장 큰 특징 - 객체 지향 언어 • 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크 • 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 좋은 객체..

spring 2023.03.05