전체 글(205)
-
Given-When-Then 패턴
1. Given-When-Then 패턴이란 Given-When-Then 패턴은 Test Code 스타일을 표현하는 방식을 말합니다. Given 테스트에서 구체화하고자 하는 행동을 시작하기 전에 테스트 상태를 설명하는 부분 When 구체화하고자 하는 그 행동 Then 어떤 특정한 행동 때문에 발생할거라고 예상되는 변화에 대한 설명 예시 기능 : 사용자 주식 트레이드 시나리오 : 트레이드가 마감되기 전에 사용자가 판매를 요청 "Given" 나는 MSFT 주식을 100가지고 있다. 그리고 나는 APPL 주식을 150가지고 있다. 그리고 시간은 트레이드가 종료되기 전이다. "When" 나는 MSFT 주식 20을 팔도록 요청했다. "Then" 나는 MSFT 주식 80 가지고 있어야 한다. 그리고 나는 APPL 주..
2020.04.01 -
TDD
TDD란 TDD의 개념 TDD(Test Driven Development)란 테스트를 먼저 만들고 테스트를 통과하기 위한 코드를 만드는 방법을 의미합니다. 일반적으로는 SW개발을 할 때 코딩을 전부 끝낸 후에 테스트를 진행합니다. 이 순서를 역전시킨 것이 TDD를 적용하는 것입니다. SW를 만드는 과정에서 우선 테스트를 작성합니다. 그리고 테스트를 통과하는 코드를 만드는 것을 반복하면서 제대로 동작하는지에 대한 피드백을 적극적으로 받는 것입니다. TDD가 필요한 이유 특정 모듈의 개발 기간이 길어질수록 목표 의식이 흐려집니다. 작업 분량이 늘어날수록 확인이 어려워집니다. 논리적인 오류를 찾기 어렵습니다. 코드의 사용 방법이나 변경 이력을 개발자의 기억력에 의존하게 되는 경우가 대부분입니다. 코드 수정 시..
2020.04.01 -
Junit5
JUnit5란 Junit5는 이전의 Junit과 달리 3개의 다른 서브 프로젝트로부터 각기 다른 모듈로 이루어져 있습니다. Junit5 = Junit Platform + Junit Jupiter + Junit VintageJUnit 5의 모듈 Junit Platform JVM 환경에서 테스트 프레임워크 기동을 위한 기초입니다. 또한 테스트 프레임워크 개발을 위한 Test Engine API를 제공합니다. 다음과 같은 기능을 추가로 제공합니다. Command line으로 플랫폼을 기동할 수 있는 console launcher 빌드 플러그인(gradle, maven) Junit4를 실행할 수 있는 테스트 엔진 Junit Jupiter 새로운 개발 모델과 테스트 케이스 작성을 위한 확장 모델을 포함합니다. 테..
2020.04.01 -
Maven Scope
Maven은 dependency 엘리먼트 하위의 scope 엘리먼트를 통해 포함하려는 라이브러리의 범위를 지정할 수 있습니다. Compile 기본 영역으로 아무것도 지정되지 않은 경우 사용됩니다. Compile 의존 관계에 있는 것은 프로젝트의 모든 클래스에서 사용 가능합니다. Provided Compile과 매우 유사하지만, 실행 시에 의존 관계를 제공하는 JDK나 컨테이너에 대해서 적용됩니다. 예를 들어, JEE에 대한 웹 어플리케이션을 만드는 경우, 웹 컨테이너가 서블릿 API와 Java EE API 관련 클래스들을 제공하기 때문에 provided 영역으로 의존 관계가 세팅되어야 합니다. 이 영역은 컴파일과 테스트의 클래스 패스 용으로 사용되며, 자동 영역입니다. Runtime 의존 관계가 컴파일시..
2020.04.01 -
CSRF
CSRF란 CSRF의 개념 CSRF(Cross Site Reuqest Forgery)란 웹 사이트의 취약점을 이용하여 사용자가 의도하지 않는 요청을 송신하도록 하는 공격을 의미합니다. 이는 http프로토콜의 stateless 특성으로 인해 특정 일련의 요청들에 대한 상관관계를 특정할 수 없다는 취약점을 이용해 공격합니다. 세션 유지 등에 사용되는 정보의 조건만 만족한다면 마치 피해자가 요청을 보낸 것처럼 송신되기 때문에 가능합니다. 이 공격 수법은 결과적으로 피해자가 의도한 요청과 동일한 과정으로 진행되므로 공격자에 대한 추적이 어려울 수 있으며 피해자에게 인가된 범위안에서만 공격이 이루어진다는 특징이 있습니다. 공격 방법 CSRF 공격 방법에는 정형화된 수법이 있다기 보다는 웹에 요청을 보낼 수 있는 ..
2020.04.01 -
Mockito
Mockito란 Mockito의 개념 Mockito란 단위 테스트를 위한 Java Mocking Framework입니다. 여기서 Mock이란 단위 테스트를 위한 가짜 객체를 말하는 것입니다. 즉, Mockito는 단위 테스트를 위해 Mock이라는 가짜 객체를 만들어주는 프레임워크입니다. Mockito는 Mock 객체 생성, 객체 동작을 지정 그리고 테스트 대상 로직이 제대로 수행 되었는지 확인이 가능합니다. Mockito의 다양한 기능 Mock(), @Mock Mock 객체를 만들어서 반환하는 기능입니다. import static org.mockito.Mockito.*; // mock 처리를 합니다. // Annotation, mock() Method 같은 표현입니다. @Mock List annotati..
2020.04.01