패스트캠퍼스 챌린지

패스트캠퍼스 환급 챌린지 5일차 : 9개 도메인 프로젝트로 끝내는 백엔드 웹 개발 (Java/Spring) 초격차 패키지 Online 강의 후기

ssoonearth 2025. 4. 5. 14:43

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://abit.ly/lisbva

 

 

 

 

 

 

패스트캠퍼스의 '9개 도메인 프로젝트로 끝내는 백엔드 웹 개발 (Java/Spring) 초격차 패키지 Online' 강의 수강 5일차!
오늘은 테스트 더블과 단위 테스트에 대한 개념 학습을 진행하였다.

테스트 코드는 이미 너무 잘 알려져 있기에 나도 몇 번 작성해본 경험이 있다. 개인적으로 프로젝트를 진행할 때도, 기업에서 현장실습을 진행했을 때도 테스트 코드를 작성할 일이 생겼었는데, 어찌저찌 코드 구현은 했다만 작성을 하면서도 '이걸... 왜 작성하는 걸까...? 어떤 효과가 있는 것이지?' 와 같은 의문이 들었던 기억이 난다.
그동안 테스트 코드를 작성하며 생겼던 의문점은 테스트 코드의 본질을 파악하지 못하고 그저 좋다고 하니까, 해야 하니까 따라했던 점에서 발생되었다.
이번 강의를 통해 테스트 코드가 왜 중요한지, 어떻게 해야 제대로 작성할 수 있는지에 대해 감을 조금 잡게 된 것 같다.

테스트 코드의 장점으로는 기능 변경이 있을 때에 영향도 파악 가능하고 기능의 의도를 명확하게 파악 가능하다는 점 등이 있다.
테스트는 크게 두 가지로 나뉘는데, 사용자 관점에서 요구사항을 만족하는지 검증하는 인수 테스트와 테스트 가능한 가장 작은 단위를 검증하는 단위 테스트가 있다. 보통 인수 테스트는 네트워크나 데이터베이스 등 외부 의존을 테스트하고, 단위 테스트는 객체지향으로 나눈 순수한 자바 객체를 테스트하게 된다.

Given - When - Then 패턴의 테스트 코드를 주로 사용하는데, Given은 주어진 상태를, When은 조건이 가해진 상태를, Then은 결과를 뜻한다. 이러한 패턴 사용은 유지보수와 가독성을 높이고, 일관된 테스트를 진행할 수 있게 해준다.

테스트 더블이란 테스트를 위한 가짜 객체를 말한다.
- Stub: 어떤 동작을 요청하든, 항상 미리 준비해둔 값만 반환한다. (데이터 반환을 검증하는 때에 사용한다)
- Fake: 동작을 하는 것처럼 보이게 만든 객체로, 단순화된 동작을 구현한다. (인메모리 db)
- Mock: 테스트 환경에서의 응답을 모방할 때에 사용한다. (Stub과 유사하지만, 행위 검증에 주로 사용된다)