4차산업혁명의 일꾼/Java&Spring웹개발과 서버 컴퓨터

백엔드 TDD 비디오가게편

르무엘 2024. 9. 3. 17:17

 

https://github.com/MyoungSoo7/tddtest

 

GitHub - MyoungSoo7/tddtest: tddtest

tddtest. Contribute to MyoungSoo7/tddtest development by creating an account on GitHub.

github.com

 

자 유스케이스를 그려보고...

TDD는 늘 소스는 내것이 아니라고 가르치니~

모두를 위한 소스를 짜는 것을 고민하며..

자 업무 시나리오와 개발가능 범위를 자판기편에서 했는데,

https://iamipro.tistory.com/533

 

백엔드와 테스트 주도 개발 자판기편

1. TDD 이모저모TDD는 기능중심의 단위 테스트를 해볼수 있고, 이를 연계해 통합테스트까지 가능하다. 사실상 QA 비용이 절감되는 반면... 개발시간이 늘어나는 부분이 있다. AC2 애자일 코치 김창준

iamipro.tistory.com

좀더 디테일하게, 업무시나리오와 함께 업무규칙을 고려하고 개발가능 범위와 함께 요구사항 분석을 합니다.

 

자 그리고 소유기반, 행위기반으로 클래스를 만들어서..

이렇게 비디오 대여관련 패키지를 만들어 보았고.. 

테스트를 하면서 개발합니다.

일단 대여기능에 있어서, 비디오 정보를 가져오는 것 부터... 

테스트, 

잘되는군요~!

 

그러다가... 이거 그냥 세팅할까 하는 생각에..

세팅해버립니다.

대여 표현을 어찌할 까 한참 시행착오 끝에

user만 생성하는 생성자와

user, video, lend 다 생성하는 메서드 두개를 만들었더니,

뒤가 술술 풀렸습니다. 

자 가보죠ㅎㅎㅎ

자 세팅 했으니 고객이 비디오를 대여한 것이 제대로 되었나 확인,

포인트와, 빌릴일수 할인율은 일단 첫째날은 0으로~

 

자 여기서 난제는 할인입니다. 포인트 적립도 그렇지만~!

일단 가격과, 할인 비율과 기간을 가지고

 

비디오 타입별로 가격의 합을 구하는 메소드를  만들었습니다.

 

총대여가격은 lend한 video의 가격 다구하면 되고~

 

포인트는 생성시.. 영화,다큐,스포츠에 따라 미리 적재..

 

일단 DB를 배재하니.. 대여정보를 toString으로 보여주는...

 

 

헤고... 소유기반으로 클래스와 변수를 만들어서,

행위기반으로 클래스와 메소드를 연계시키면서 만들고

TDD방식으로 계속해서 만들어나가면서 만들어서 완성시켰습니다.

 

저번 자판기보다 난이도가 있네요~!

LIST