본문으로 이동
고품격 Kotlin 개발: 테스트 코드를 우아하게 작성하는 방법 #우아콘2022 #Day2_음식그이상의것을문앞으로
컨퍼런스

고품격 Kotlin 개발: 테스트 코드를 우아하게 작성하는 방법 #우아콘2022 #Day2_음식그이상의것을문앞으로

우아콘 2022 우아한형제들 · YouTube

원문 보기

AI 핵심 요약

Java 기반 테스트 도구를 Kotlin에서 그대로 쓰면 백틱이 필요한 테스트 이름, 장황한 픽스처 구성, 확장 함수 목킹의 제약 등으로 Kotlin의 간결함을 살리기 어려웠습니다. 발표에서는 기본 인자와 이름 있는 인자를 활용한 픽스처 팩토리, 확장 함수 기반 검증, Kotest와 MockK를 이용한 테스트 및 수명 주기 관리 방법을 소개했습니다. Spring Extension을 통한 생성자 주입과 트랜잭션 롤백, 도메인 용어를 담은 인수 테스트 DSL, Kotlin 코드 커버리지 도구 Kover도 다뤘습니다. 기존 도구를 전부 교체하기보다 필요한 부분부터 점진적으로 적용하고, 테스트 코드의 중복과 명시성 사이에서 균형을 찾는 것이 핵심입니다.

  • 테스트 이름은 Kotlin의 백틱을 활용해 공백과 한글로 작성할 수 있지만, 팀에서 일관된 규칙을 정하는 것이 중요합니다.
  • 기본 인자와 이름 있는 인자를 활용한 픽스처 팩토리는 테스트의 관심사를 드러내고 다양한 조건을 간결하게 표현합니다.
  • 확장 함수나 정적 함수를 목킹하기 전에 가짜 객체로 대체할 수 있는지 검토하고, 도구의 기능을 무조건 사용하지 않습니다.
  • 중첩 테스트에서는 스펙·컨테이너·각 테스트의 수명 주기를 구분해야 트랜잭션 롤백과 목 초기화 시점을 명확히 할 수 있습니다.
  • 기존 JUnit·Mockito를 한꺼번에 바꾸기보다 어설션이나 BDD 스타일처럼 일부부터 도입하고, DRY와 DAMP 사이의 균형을 찾습니다.

소개

Kotlin은 기존 Java 코드와 100% 상호 운용성을 지원합니다. 그렇기 때문에 기존 라이브러리와 프레임워크를 문제없이 사용할 수 있습니다. 하지만 비즈니스 로직을 작성할 때는 Kotlin 코드에 설레면서도 테스트 코드를 작성하기 위해 Java 라이브러리와 프레임워크를 만나면 Kotlin에 대한 설렘이 사라집니다. 이번 발표에서는 단위 테스트부터 인수 테스트까지 Kotlin에 대한 설렘을 유지하는 방법을 공유합니다. [발표자 소개] 박재성(제이슨) | 테크코스교육개발팀 좋은 코드에 관심이 많으며, 1년이 지나도 10년이 지나도 변화에 대응할 수 있는 코드를 추구합니다. 어떻게 하면 도메인을 깊이 이해하고 더 나은 소프트웨어를 개발할 수 있을지 여러분과 공유하고 싶고, 항상 고민하고 있습니다.

비슷한 학습 자료

컨퍼런스 엔지니어링데이 2025

Kotlin으로 Cli를 만든다고? - 박준민 _NE DAY 23. 10

컨퍼런스 엔지니어링데이 2025

네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY(10월)에서 발표되었던 세션을 공개합니다. ----- [발표 내용] - 배경 - Kotlin으로 CLI를? - GraalVM - 사용법 - 주의사항 - 빌드 & 배포 - 헬퍼 Library 소개 - 샘플 코드

데스크톱 앱 개발 프로그래밍 언어

컨퍼런스 SLASH

우리가 만드는 코드가 처음부터 완벽할 수는 없습니다. 하지만 서비스가 폭발적으로 성장하려고 할 때 발목을 잡아선 안 되죠. 하루 이틀 운영되고 끝인 게 아닌, 오래 살아 있을 수 있는 좋은 소프트웨어는 어떤 모습일까요? 김재민 / 토스 Server Developer 발표 자료 👉🏻 https://bit.ly/3QkUCWs 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-22 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im #토스 #개발자컨퍼런스 #SLASH

개발 · 프로그래밍 기타

컨퍼런스 우아콘 2024

[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ 여러분의 프로젝트에 작성돼 있는 테스트코드를 얼마나 신뢰하시나요? 수많은 컴포넌트와 함수의 복잡한 상호작용을 검증하고 실제 제품에 가까운 동작을 보장하는 통합테스트를 도입하며 겪은 경험과 느낀 점을 공유합니다. ㅤ 👉 발표자 소개ㅤ 이호빈, 웹프런트엔드 개발자

프론트엔드 소프트웨어 테스트 로드맵 1개에 담김

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 배민스토어는 올해 4월, 레거시 코드와 아키텍처를 전부 재작성하고 재설계하는 빅뱅을 겪었습니다. 그 과정에서 생산성과 효율성을 높이기 위해 여러 가지 기술을 한 번에 도입했고, 다양한 시행착오를 겪었습니다. 배민스토어의 전시 도메인 개발자들이 어떤 일을 하는지 소개하면서, Kotlin, Spring WebFlux, EDA 도입의 이유와 좋았던 점, 나빴던 점, 그리고 각 기술에 대한 개발자들의 생각까지 날것으로 풀어내 보겠습니다.ㅤ ㅤ 👉 발표자 소개 배민스토어서비스개발팀 김민태 좋은 시스템을 개발해서 밤에 약속을 나가고 싶은 개발자입니다. 배민스토어의 백엔드를 개발하며, 팀에서 광대를 담당하고 있습니다. 배민스토어서비스개발팀 오지산 좋은 코드를 써서 밤에 발 쭉 뻗고 자고 싶은 개발자입니다. 배민스토어의 백엔드를 개발하며, 팀에서 선생님을 담당하고 있습니다. 👍 추천 대상 Kotlin과 Spring WebFl...

백엔드 프로그래밍 언어

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 우아한테크코스는 기존의 교육 방식에 불만을 가진 사람들이 모인 곳입니다. 그래서 학생들이 프로그래밍 학습 과정에서 단순하지만 유용함을 경험할 수 있도록 많은 실험을 했습니다. 그 실험 중 의미 있었던 과정을 공개합니다. 👉 발표자 소개 클라이언트교육팀 임동준 경험을 읽고, 교육을 하는 교육자입니다. 지식을 전달하는 것을 넘어, 누군가의 경험에 지식이 어떻게 적용되고 변화를 가져올 수 있는지 고민하고 실험하는 것을 좋아합니다. 클라이언트교육팀 최호중 공무원으로 사회 첫 발을 내딛고 지금은 개발자가 되었습니다. 개발자가 되기 위해 혼자서 힘겹게 고군분투했던 날을 떠올리며, 저와 같이 개발자 되기를 꿈꾸는 사람들에게 나침반이 되어 주고 싶었습니다. 전통적인 주입식 교육으로는 빠르게 변화하는 개발 분야에서 성장의 한계를 느끼며, 지식의 습득을 넘어 유용함을 발견하는 커리큘럼을 개발하기 위해 고민하고 있습니다. 👍 추...

프론트엔드 프로덕트 지표 · 실험

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 인수 테스트 주도 개발, 줄여서 ATDD에 대해 들어보셨나요? 간단히 말하면, ATDD는 소프트웨어를 개발하기 전에 그 기능이 제대로 작동하는지 검증하기 위한 '인수 테스트'를 먼저 작성하는 개발 방법론입니다. 팀원들과 함께 인수 테스트의 검증 기준을 정하면서 모두가 같은 목표를 향해 작업할 수 있도록 도와줍니다. 이 방식은 효과적인 개발을 도와주지만, 실제로 적용하고 유지하기는 쉽지 않습니다. 이번 세션에서는 이 방법론을 지속적으로 사용하기 위한 팁과 경험을 공유합니다.ㅤ ㅤ 👉 발표자 소개 서버교육팀 류성현 우아한테크코스에서 공감과 신뢰를 바탕으로 교육하는 개발자입니다. 미래의 소프트웨어 장인들이 성장할 수 있는 환경을 만들고 있습니다. 👍 추천 대상 인수 테스트 주도 개발에 관심이 있거나 효과적인 개발 프로세스에 관심이 있는 분 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woo...

소프트웨어 테스트 TDD