일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- papago
- spring boot
- Java
- Naver Cloud Platform
- ncloud
- DBDocs
- docker
- navercloud
- 에프랩
- Enum
- 네이버클라우드
- Thymeleaf
- 회고
- Scheduler
- 네이버 클라우드
- F-Lab
- object storage
- spring
- ngrinder
- mybatis
- NaverCloudPlatform
- OrientalUnity
- AssertJ
- Pinpoint
- Database
- React
- Naver Cloud
- junit
- NCP
- NooBLoL
Archives
- Today
- Total
DevJong12
[스프링 부트와 AWS로 혼자 구현하는 웹서비스] Chap.02 본문
728x90
테스트 코드에 대한 소개
TDD에 대해서
1.TDD
와 단위 테스트(Unit Test)
는 다르다.
2. TDD는 테스트가 주도하는 개발로 테스트 코드를 먼저 작성하는 것에서부터 시작한다.
TDD의 사이클링 순서
Red
-항상 실패하는 테스트
를 먼저 작성Green
-테스트가 통과하는 프로덕션 코드
를 작성Refactor
- 테스트가 통과하면프로덕션 코드의 리팩토링
단위 테스트
기능 단위의 테스트 코드
를 작성하는 것TDD
와 다르게테스트코드를 먼저 작성하지도 않으며 리팩토링도 포함되지 않고 순수히 테스트 코드만 만드는 것
을 의미한다.
테스트 코드를 작성하는 이유
단위 테스트
는개발단계 초기에 문제를 발견
하도록 도와준다.단위테스트
는 개발자가 나중에코드를 리팩토링
하거나라이브러리에 업그레이드
등에서 기존 기능이 올바르게 작동하는지 확인이 가능하다.기능에 대한 불확실성
을 감소시킬 수 있다.시스템에 대한 실제 문서를 제공
한다. 즉 테스트 자체가 문서로 사용이 가능하다.
저자가 느낀 테스트 코드의 필요성
소스코드의 수정
이 있는 경우매번 수정을 할 때
마다사람이 직접 빌드를 하고 검수
를 해야한다.불필요한 많은 시간
이 소요된다.
- 개발자가
만든 기능
을 안전하게보호
한다- 개발자가
기능을 추가
하거나수정
하게 될 경우 해당 기능이 아닌 다른 기능에서의 문제도 검증을 해줄 수 있다. 사람이 직접 수정, 추가점이 발생할 때
마다 모든 기능을 테스트 할 수 없기 떄문- 기존 기능이 잘 작동되는것을 보장 하는것
- 개발자가
책을 다읽고 느낀 나의 테스트코드의 필요성
- 소스코드의 비즈니스 로직이 수정이 될 때 타 기능에 까지 영향을 미치는지 즉각적인 확인이 가능하다.
- 개발자가 만든 기능에 대해서 해당 기능이 확실하게 제 역할을 수행중이라고 할 수 있다.
Hello Controller 테스트 코드 작성하기
프로젝트 패키지명 구성(작성) 방식
도메인 주소가 admin.jojoldu.com이라면 패키지는 역순인 com.jojoldu.admin 으로 구성하면 된다.
@SpringBootApplication
Annotation
스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성을 모두 자동으로 설정해준다.
해당 어노테이션이 존재하는 위치부터 설정을 읽어가기 때문에 항상 프로젝트 최상단에 존재하여야 한다.
Main의 SpringApplication.run메소드로 내장WAS(톰캣)을 실행한다.
왜 SpringBoot에선 내장WAS의 사용을 하는 이유
언제 어디서나 같은 환경에서 스프링 부트를 배포 할 수 있기 떄문이다.
외장 WAS를 사용을 해도 되지만, 사용을 하게 되면 WAS의 종류와 버전, 설정을 모두 일치시켜야 하는 추가적인 작업이 필요하기 때문, 즉 확장이 불편해지기 떄문
내장 WAS를 사용 할 경우 성능상 이슈의 경우에는 크게 고려하지 않아도 된다고 함.
HelloController 코드를 Lombok으로 전환하기
@RequiredArgsConstructor
란?
해당 어노테이션
이 선언된모든 final필드
가포함된 생성자를 생성
한다.final이 없는 필드
는 생성자에포함되지 않는다
.
728x90
Comments