티스토리 뷰
1) 요구사항
- 계산 능력을 훈련하는 애플리케이션 개발
- 사용자가 페이지 접속할 때마다 두 자릿수 곱셈을 보여줌
- 사용자는 암산으로 계산한 결과와 닉네임 입력
- 사용자가 데이터를 전송하면 화면에 결과(성공 또는 실패)가 나타남
- 문제를 풀어서 얻은 점수로 결과 페이지에 사용자들의 순위를 보여줌
> 사용자 스토리 1
- 온라인에서 무작위로 생성되는 곱셈 문제를 풀고 싶다
- 매일 암산으로 두뇌 훈련을 해야 하니까 문제는 너무 쉽지 않으면 좋겠다
>> 1. 비즈니스 로직을 제공하는 기본적인 서비스 만들기
2. 해당 서비스를 사용할 수 있는 REST API 엔드포인트(endpoint) 만들기
3. 사용자에게 문제를 보여주는 간단한 웹 페이지 만들기
+) 스프링 부트 애플리케이션 구조 만들기 사이트 : http://start.spring.io
- TDD가 개발자들에게 좋은 이유 : TDD로 요구사항에 대해 더 깊이 있게 생각할 수 있다
ㄴ 테스트 코드를 먼저 작성하면 특정 상황에서 코드가 어떻게 동작하지 생각하게 되면서 애매한 요구사항은 명확히 하고
유효하지 않은 요구사항은 거부할 수 있다
ㄴ 코드를 너무 반복적으로 리팩토링하려는 생각과 테스트만 통과시키고 나중에 리팩토링하려는 생각 가운데서 균형을 잡아야 한다
- 목 객체 : 실제 모듈과 비슷하게 동작하도록 정의한 가짜 객체
진자 객체가 아직 구현되기 전이나 진짜 객체로 테스트하기 어려운 경우 목 객체로 테스트를 작성할 수 있다
- 행위 주도 개발(BDD - Behavior Driven Development)
: TDD에서 파생된 개발 방법으로 테스트 작성 시 사용자가 원하는 행위에 중점을 둔다
따라서 팀원 또는 고객과의 의사소통 과정에서 모호한 내용을 줄일 수 있다
테스트를 더 읽기 쉽게 해주고 요구사항을 정의하는 데 도움이 된다
* TDD의 이점
- 테스트를 작성하면서 요구사항을 코드로 바꿀 수 있다
- 테스트 가능한 코드를 만들게 된다
- 중요한 로직에 초점을 맞추고 나머지는 나중에 구현할 수 있다
- 더 찾아볼 것
+ @Autowired가 생성자에 붙어 있으면 무슨 의미인지 찾아보기
'study > 스프링 부트를 활용한 마이크로 서비스 개발' 카테고리의 다른 글
03. 3계층 스프링 부트 애플리케이션 (0) | 2020.12.16 |
---|---|
01. 소개 (0) | 2020.12.16 |
- Total
- Today
- Yesterday
- back merge
- springboot
- kotlin In Action
- 스프링
- QuickTimePlayer
- linuxkit
- Spring
- kotlin
- docker pull limit
- gradle
- clean code
- 코틀린
- 스프링부트
- ImagePullBackOff
- ddd
- gasmask
- docker for mac
- docker
- JavaScript
- k8s
- 쿠버네티스
- java
- cacheable
- 자바스크립트
- Kubernetes
- 도커
- 자바
- 클린코드
- 도메인주도설계
- IntelliJ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |