inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

인프런 워밍업 클럽 스터디 3기 - 백엔드 클린 코드, 테스트 코드 3주차 발자국

suover
0

image

image

Readable Code: 읽기 좋은 코드를 작성하는 사고법

Practical Testing: 실용적인 테스트 가이드

강의와 함께한 인프런 워밍업 클럽 스터디 3기 - 백엔드 클린 코드, 테스트 코드 (Java, Spring Boot)

3주차 발자국 입니다.


학습 내용 요약

이번 주에는 Spring & JPA 환경에 계층형 아키텍처(Layered Architecture)테스트 기법(통합 테스트, MockMvc, JPA 테스트 등)을 학습했습니다.

1⃣ Spring & JPA

2⃣ Layered Architecture

3⃣ 테스트 코드 작성

4⃣ 유효성 검증(Bean Validation)

학습 회고


미션 해결 과정

🎯 스터디카페 이용권 선택 시스템 테스트 미션

미션

스터디카페 이용권 선택 시스템의 테스트 코드를 작성하는 미션.

미션 목표

해결 과정

  1. OutputHandlerTest

    • 환영 메시지 + 공지사항 “프리미엄 스터디카페” 등의 문구가 제대로 찍히는지 확인.

    • 주문 내역 요약에 “이용 내역”, “이용권”, “사물함”, “총 결제 금액” 같은 키워드가 포함되는지 검증.

  2. StudyCafePassOrderTest

    • 할인율 및 가격 계산이 의도대로 동작하는지 (예: (250,000 + 10,000) - 할인액 25,000 = 235,000) 확인.

    • 사물함이 있는지 없는지에 따라 Optional<LockerPass>가 올바르게 반환되는지 테스트.

  3. StudyCafeSeatPassTest

    • 할인율이 0일 때 할인 금액이 0원인지, 0.1이면 정상 할인액이 계산되는지.

    • 시간권(HOURLY)cannotUseLocker() == true, 고정석(FIXED)false인지 등을 테스트로 보장.

       

image

회고

도메인 로직이 잘 분리되어 있어 테스트 작성이 수월했습니다. 만약 복잡한 코드가 여기저기 있었다면, 테스트도 훨씬 어렵고 중복될 뻔했습니다. 또한 예외 처리 부분에 대한 테스트 코드의 필요성도 느껴졌습니다. 예외 상황에 대한 흐름을 명확하게 검증하고, 안정적인 동작을 보장하기 위해서는 예외 처리에 대한 테스트도 함께 구성되어야 한다고 생각했습니다.

🔗 테스트 미션 깃허브 링크


회고

스스로 칭찬하고 싶은 점

아쉬웠던 점 & 보완할 점

다음 주 학습 목표

  1. Mock과 Test Double: Mock과

    Test Double 개념을 학습하고, 적절히 사용해 볼 예정입니다.

  2. 테스트 환경 독립성:

    테스트 시 독립적인 환경을 유지하는 방법을 살펴볼 예정입니다.

  3. 테스트 개선 기법:

    조금 더 간결하고 가독성 높은 테스트 작성을 시도해 볼 계획입니다.

이번 주에는 Spring & JPA 환경에서의 테스트 코드 작성을 중점적으로 경험 했습니다. 이를 통해 서비스가 단계적으로 확장되더라도, 테스트 코드가 안정적인 작동을 보장할 수 있다는 점을 다시금 깨달았습니다. 앞으로도 테스트 우선 방식으로 새로운 기능이나 리팩토링을 진행해, 안전하고 효율적인 협업 환경을 유지해 나가겠습니다.
감사합니다!

백엔드 인프런 워밍업클럽 스터디 백엔드 클린 테스트 코드 발자국 회고 3기

답변 0