버그란?
버그(Bug) 란,
- 일부 기능이 의도와 다르게 동작하거나
- 아예 동작하지 않는 상태를 의미한다.
따라서 서비스를 실제 사용자에게 배포하기 전에는
반드시 버그를 찾아내기 위한 테스트 과정가 필요하다.
테스트의 필요성
테스트는 단순히 "잘 동작하는지 확인"하는 것이 아니라,
- 서비스의 신뢰성을 높이고
- 배포 후 발생할 수 있는 장애를 줄이며
- 유지보수를 수월하게 만든다.
블랙박스 테스트
블랙박스 테스트란?
- 웹 서비스를 사용하는 사용자 입장에서 테스트하는 방식
- 내부 구현을 알 필요 없이 기능 중심으로 테스트한다
특징
- 누구나 테스트 가능
- 실제 사용자 시나리오와 유사
단점
- 테스트 인원이 많이 필요함
- 테스트하는 사람마다 기준이 달라
테스트 품질이 일정하지 않을 수 있음 - 반복 테스트 및 자동화에 한계가 있음
개발자 테스트
개발자 테스트란?
- 개발자가 직접 작성한 코드를 검증하기 위해 수행하는 테스트
- 보통 테스트 코드를 작성하여 진행한다
장점
- 빠르고 정확한 테스트 가능
- 테스트 자동화 가능
- 리팩토링 시 안정성 확보
- 기능 변경 시 기존 기능이 깨졌는지 즉시 확인 가능
단점
- 테스트 코드 작성으로 개발 시간이 증가할 수 있음
- 테스트 코드 유지보수 비용 발생
- 기능 추가/변경 시 테스트 코드 수정 필요
Spring에서의 테스트 환경
Spring은 테스트 코드를 작성할 수 있는 환경을 기본적으로 제공한다.
JUnit이란?
JUnit은 Java 진영에서 가장 많이 사용되는 단위 테스트(Unit Test) 프레임워크다.
JUnit을 사용하면:
- 특정 메서드 단위로 테스트 가능
- 테스트 성공/실패를 자동으로 판단
- 반복 실행 및 자동화에 적합
테스트 코드 생성 방법 (IntelliJ 기준)
- 테스트하고 싶은 클래스에서
- Cmd + Shift + T (macOS)
- Create New Test 선택 후 OK
그러면:
- test 패키지 아래에
- 기존 클래스와 동일한 패키지 경로로
- Test 클래스가 자동 생성된다
이 구조 덕분에 운영 코드와 테스트 코드를 명확히 분리하면서 관리할 수 있다.
정리
- 버그는 의도와 다른 동작 또는 미동작을 의미한다
- 배포 전 테스트는 필수다
- 블랙박스 테스트는 사용자 관점의 테스트다
- 개발자 테스트는 코드 단위의 정밀한 테스트다
- Spring에서는 JUnit을 통해 테스트 환경을 쉽게 구축할 수 있다
테스트 코드는 당장은 귀찮을 수 있지만,
장기적으로는 개발 속도와 안정성을 크게 높여준다.
'BackEnd > 내일배움캠프' 카테고리의 다른 글
| 6. MVC 디자인 패턴이란? (0) | 2026.02.09 |
|---|---|
| 5. Lombok이란? (0) | 2026.02.09 |
| 3. HTTP란 무엇일까? (0) | 2026.02.09 |
| 2. 서버란 무엇일까? (0) | 2026.02.09 |
| 1. 그레이들(Gradle)이란 무엇일까? (0) | 2026.02.09 |