본문으로 이동
스프링캠프 2024 [Track 2] 5.AutoParams를 사용한 Spring Boot 응용프로그램 테스트 (이규원)
컨퍼런스

스프링캠프 2024 [Track 2] 5.AutoParams를 사용한 Spring Boot 응용프로그램 테스트 (이규원)

SpringCamp 2024 · YouTube

원문 보기

AI 핵심 요약

TDD로 Spring Boot 커머스 API를 개발하면서 고정된 테스트 데이터가 테스트 간 간섭을 일으켜 거짓 양성이 생기고, 도메인 규칙에 맞는 데이터를 준비하는 코드도 길어지는 문제를 다뤘다. 이를 줄이기 위해 JUnit 5 확장 도구인 AutoParams를 사용해 테스트 매개변수를 자동 생성하고, 팩토리와 커스터마이저로 판매자와 상품의 관계 같은 테스트 조건을 구성했다. 또한 제너레이터와 프로세서 구조를 통해 이메일·전화번호 등 애플리케이션의 비즈니스 규칙에 맞게 데이터 생성을 확장하는 방법을 소개했다. 테스트 데이터 준비를 간결하게 하되, Spring 테스트와 매개변수 해석이 충돌하지 않도록 경계를 설정해야 한다는 점을 강조했다.

  • 테스트마다 독립적인 데이터를 사용하면 실행 순서나 이전 테스트의 잔여 데이터 때문에 생기는 거짓 양성을 줄일 수 있다.
  • AutoParams의 @AutoSource를 JUnit 5의 @ParameterizedTest와 함께 쓰면 테스트 매개변수를 자동 생성할 수 있다.
  • 필드나 매개변수 이름을 활용해 이메일·전화번호처럼 도메인 규칙에 맞는 값을 생성하도록 제너레이터를 확장할 수 있다.
  • 테스트 대상에 필요한 관계를 만들 때 팩토리와 커스터마이저를 활용하면 반복적인 데이터 준비 코드를 줄일 수 있다.
  • Spring 테스트가 주입하는 매개변수와 AutoParams의 매개변수 해석이 충돌할 수 있으므로 @AutoWired 경계 설정을 고려해야 한다.

소개

[중급] AutoParams는 테스트에 필요한 데이터를 손쉽게 만들어주는 JUnit 5 확장 도구입니다. Spring Boot 응용프로그램을 테스트할 때 역시 AutoParams의 확장성은 유용합니다. AutoParams의 주요 기능을 설명하고 Spring Boot를 통해 구동되는 시스템의 여러 구성요소를 테스트 하기 위해 사용할 수 있는 AutoParams 기반 테스트 전략들을 소개합니다. 🎙️ 이규원 (와이어드컴퍼니) 🗓️ 스프링캠프 2024 Track 2 - 5 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T2S5.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [🔗 스프링캠프 & KSUG] 스프링...

비슷한 학습 자료

컨퍼런스 SpringCamp 2024

[초급] Spring AI와 함께 실험하고 성장하는 AI 개발 생성형 AI 시대, LLM을 이용하여 AI 애플리케이션을 사용하기 위해서는 API 연동이 필요합니다. Python 진영에서는 이미 LangChain 이나 Llama Index 등의 프레임워크가 널리 알려지고 사용되고 있습니다. Spring 팀에서도 생성형 AI 애플리케이션이 Python 개발자뿐만 아니라 여러 프로그래밍 언어에 걸쳐 보편화될 것이라는 믿음으로 Spring AI 프로젝트를 시작했습니다. Spring AI의 핵심은 AI 애플리케이션 개발의 기반이 되는 추상화를 제공하는 것입니다. 추상화의 끝판왕인 Spring에서는 이를 어떻게 풀어냈는지 함께 살펴보면서 AI 서비스 개발 경험과 능력을 함께 성장해보시죠! 🎙️ 황민호 (카카오) 🗓️ 스프링캠프 2024 Track 1 - 2 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/...

백엔드 AI에이전트 개발

컨퍼런스 SpringCamp 2024

[중급] 모든 것에는 다 이유가 있습니다. 내가 테스트를 작성하기 싫은 건 테스트로 얻을 수 있는 이득에 비해 비용이 너무 크기 때문입니다. 그렇다면 비용은 왜 클까요? 네이버페이 주문서 배송비 계산, 적립포인트 계산, 할인 금액 계산, 환불 금액 계산을 테스트 가능한 구조로 개발하면서 적어내려간 개인적인 답지를 공유하고자 합니다. 이 강연은 테스트에 관심있으신 분들을 대상으로 합니다. 이론적이거나 추상적인 테스트 이야기 대신에, 간단한 예제와 실제 경험을 토대로 빠르게 작성하고 피드백을 받을 수 있는 테스트를 제안합니다. 픽스쳐 몽키라는 도구를 어떻게 유용하게 사용하는지도 볼 수 있습니다. 🎙️ 조성아 (네이버) 🗓️ 스프링캠프 2024 Track 1 - 3 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T1S3.pdf 📺 스프링캠프 2024 영상 모두 보기 : ...

소프트웨어 테스트 TDD

컨퍼런스 SpringCamp 2024

[초급] 안정성이 중요한 은행 환경에서 트래픽이 많은 홈 서비스를 새로 개발하며, 동료들과 함께 고민하고 결정했던 경험을 공유해보려 합니다. 과거의 결정들에 대한 회고와 함께 저희 팀의 여정을 돌아보겠습니다. 🎙️ 이영규 (카카오뱅크) 🗓️ 스프링캠프 2024 Track 1 - 5 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T1S5.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [🔗 스프링캠프 & KSUG] 스프링캠프 2024 웹 https://springcamp.ksug.org/2024/ 스프링캠프 페이스북 https://www.facebook.com/springcampkr/ 스프링캠프 유튜브 ...

백엔드

컨퍼런스 SpringCamp 2024

[중급] 현대에는 수천, 수만의 동시 요청을 처리하는 서버를 구현하기 위해 멀티 스레드, 논블로킹, 액터 모델, 리액티브 프로그래밍 등 다양한 기술 활용하고 있습니다. 그중에서 코틀린의 코루틴과 JDK 21에서 정식 릴리즈된 버추얼 스레드는 가장 우아하고 현대적인 동시성 기법으로 평가받고 있습니다. 이번 기회를 통해 두 기술의 차이점과 통합하는 방법에 대해 알아보고자 합니다. 🎙️ 이상훈 (엘박스) 🗓️ 스프링캠프 2024 Track 2 - 1 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T2S1.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [🔗 스프링캠프 & KSUG] 스프링캠프 2024 웹 ht...

백엔드 프로그래밍 언어

컨퍼런스 SpringCamp 2024

[초급] spring에서 kotlin coroutine 활용에 초첨을 맞추어, 비동기 프로그래밍과 coroutine의 동작구조부터 spring 프레임워크에서의 실제 적용까지를 이야기하려고 합니다. spring kotlin을 사용하지만 coroutine을 적용하지 않거나, coroutine이 적용되었지만 잘 사용하고있는지 고민이 되는 분들에게 어떻게 spring에서 coroutine을 in action 할 지 소개하고자 합니다. 🎙️ 최진영 (우아한형제들) 🗓️ 스프링캠프 2024 Track 2 - 2 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T2S2.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [...

백엔드 프로그래밍 언어

컨퍼런스 SpringCamp 2024

[초급] MSA가 대세가 되어진 세상입니다. 하지만 여전히 제한된 리소스에서 데이터를 처리해야하는 경우도 존재합니다. Data Sketch를 통하여 작은 리소스를 이용해서도 높은 성능을 낼수 있습니다. bloom filter, count min sketch, hyperloglog 같은 대표적인 Data Sketch에 대해 알아보고 상황에 따른 활용에 대해 이야기 해보자 합니다. 🎙️ 황영 (IMQA) 🗓️ 스프링캠프 2024 Track 2 - 4 (2024년 05월 25일) 🧭 SETEC 컨벤션센터 📂 발표자료 : http://springcamp.ksug.org/2024/static/docs/T2S4.pdf 📺 스프링캠프 2024 영상 모두 보기 : https://youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=XE89UrhYKkIb1-oe [🔗 스프링캠프 & KSUG] 스프링캠프 2024 웹 h...

알고리즘 · 자료구조 데이터베이스