[Book - JUnit IN ACTION 3판] 5. 소프트웨어 테스트 원칙
다양한 유형의 소프트웨어와 그러한 테스트가 애플리케이션의 생애 주기에서 수행하는 역할을 살펴보자. 이 모든 내용을 왜 다 알아야 할까? 단위 테스트는 계획과 준비 없이 되는 것이 아니기 때문이다. 최고 수준의 개발자가 되기 위해서는 단위 테스트를 기능 테스트를 비롯한 다른 테스트와 구분할 수 있어야 한다. 그렇게 단위 테스트가 왜 필요한지를 이...
다양한 유형의 소프트웨어와 그러한 테스트가 애플리케이션의 생애 주기에서 수행하는 역할을 살펴보자. 이 모든 내용을 왜 다 알아야 할까? 단위 테스트는 계획과 준비 없이 되는 것이 아니기 때문이다. 최고 수준의 개발자가 되기 위해서는 단위 테스트를 기능 테스트를 비롯한 다른 테스트와 구분할 수 있어야 한다. 그렇게 단위 테스트가 왜 필요한지를 이...
JUnit 4에서 JUnit 5로의 전환 과정 JUnit 5는 새로운 아키텍처를 적용한 새로운 패러다임이다. JUnit 5에는 새로운 패키지, 애노테이션, 메서드, 클래스가 추가되었다. JUnit은 JUnit Vintage 테스트 엔진을 활용하여 테스트를 JUnit 4에서 JUnit 5로 전환하는 로드맵을 제시한다. 주...
소프트웨어 아키텍처의 개념과 중요성 소프트웨어 아키텍처란 소프트웨어 시스템의 기본 구조를 말한다. 소프트웨어 시스템은 체계적인 방식으로 만들어야 한다. 소프트웨어 시스템 구조는 소프트웨어 요소, 소프트웨어 요소 간의 관게, 요소와 관계를 이루는 속성들로 구성된다. 소프트웨어 아키텍처는 건축에서의 아키텍처와 비슷하다. 소프트웨어 아키텍처의 기초를...
프로그램이 점점 커지면서 새로운 클래스와 메서드가 계속 추가된다면 새로운 테스트 코드도 그에 맞춰 추가되어야 한다. 크래스들은 때로 누구도 생각하지 못한 방식으로 상호작용할 수 있기 때문에 어떤 코드가 변경됐는지와 상관없이 언제든 모든 테스트를 실행할 수 있어야 한다. 그런데 어떻게 여러 테스트를 실행할 수 있을까? 어떤 테스트를 통과했고 실패했는...
처음으로 TDD 방법론에 대해 학습하기 위해 현재 시점에서 가장 최근에 나왔고 deep하게 많은 내용을 담을 수 있을 것 같아서 JUnit IN ACTION 3판을 읽어보려고 한다. 마틴 파울러(Martin Fowler) : 소프트퉤어 개발에서 이토록 짧은 코드가 이토록 많은 사람에게 이토록 큰 도움을 준 적은 없었다. 소개 모든 코드는 ...
TDD가 무엇인지와 좋은 테스트를 하려면 어떻게 해야되는지 간단하게 알아보자. TDD 란 TDD(Test-Driven Development, 테스트 주도 개발)는 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 먼저 작성하고, 나중에 이를 통과하는 코드를 추가하는 단계를 반복해서 구현한다. 왜냐하면 이 방식은 개발 초...
Stack 입력과 출력이 한 곳(방향)으로 제한된다. LIFO (Last In First Out, 후입선출) 가장 나중에 들어온 것이 가장 먼저 나옴 함수의 콜스택, 문자열 역순 출력, 연산자 후위표기법 등에 사용된다. 아래는 스택의 메서드이다. push() 데이터 삽입 스택 포인터(SP) 필요 ...
inflearn에서 김영한님 강의를 들으면서 내용을 정리해보자. 스프링 핵심 원리 - 기본편 스프링 애플리케이션을 실행하는 시점에 싱글톤 빈은 생성해서 주입이 가능하지만, request 스코프 빈은 아직 생성되지 않는다. 이 빈은 실제 고객의 요청이 와야 생성할 수 있다. 이 문제를 프록시를 사용해서 해결해보자. 웹 스코프와 프록시 @Co...
inflearn에서 김영한님 강의를 들으면서 내용을 정리해보자. 스프링 핵심 원리 - 기본편 스프링 애플리케이션을 실행하는 시점에 싱글톤 빈은 생성해서 주입이 가능하지만, request 스코프 빈은 아직 생성되지 않는다. 이 빈은 실제 고객의 요청이 와야 생성할 수 있다. 이 문제를 Provider를 사용해서 해결해보자. (아래 코드는 Ob...
inflearn에서 김영한님 강의를 들으면서 내용을 정리해보자. 스프링 핵심 원리 - 기본편 이전에 학습한 싱글톤은 스프링 컨테이너의 시작과 끝까지 함께하는 매우 긴 스코프이고, 프로토타입은 생성과 의존관계 주입, 초기화까지만 진행하는 특별한 스코프이다. 웹 스코프의 특징 웹 스코프는 웹 환경에서만 동작한다. 웹 스코프는 프로토타입...