2025/11 19

[우아한테크코스 8기] 프리코스 오픈미션 최종회고

시작하며6주간 진행한 프리코스의 마지막 미션을 3주간 TDD라는 주제에 대해 목표를 잡고 도전하며 엄청난 몰입으로 많은 성장을 할수 있어 너무 행복했다. 프리코스 여러 미션들 그중에서 이번 오픈미션이 아니었다면 나는 아마 TDD에 대해 현재와 같은 경험을 얻지 못하며 주먹구구식으로 TDD를 접하고 진정한 가치들을 미처 들여다보지 못한 채 넘겼을 것 같다.프리코스를 통해 TDD에 대한 궁금증과 관심이 생겼고 그 덕분에 2권의 TDD 도서를 정독하고 나만의 언어로 정리하며 다시금 소중한 지난 프리코스 미션들을 TDD로 다시 돌아보며 많은 시야와 깨달음을 얻을 수 있었다.오픈 미션을 진행하며 늘 하루 10시간 이상 오픈 미션을 위해 끙끙대며 기상 직후, 식사 도중, 운동 도중, 대중 교통 속 제 모든 일상이 ..

[우아한테크코스 8기] 프리코스 오픈미션 4차 회고- 편의점 TDD

https://github.com/softmoca/java-convenience-store-7/tree/softmoca-tdd GitHub - softmoca/java-convenience-store-7Contribute to softmoca/java-convenience-store-7 development by creating an account on GitHub.github.com 시작하며드디어 마지막 편의점 미션을 TDD로 다시 경험해보았다.요구사항 탐색 도구로서의 TDD를 활요하니 작년 그도록 어렵고 복잡했던 편의점 미션이 정말 놀라울 정도로 스무스하게 진행되었다. 물론 작년에 한번 경험했었기에 당연히 그보다 수월하게 느껴지는 것은 당연하겠지만 그런 사실을 감안하더라도 매 단계 점진적으로 진행을 ..

[우아한테크코스 8기] 프리코스 오픈미션 3차 회고- 로또 TDD

https://github.com/softmoca/java-lotto-8/tree/softmoca-tdd GitHub - softmoca/java-lotto-8Contribute to softmoca/java-lotto-8 development by creating an account on GitHub.github.com 시작하며드디어 처음 나에게 TDD를 경험해 보고 싶게 만든 3주차 로또 미션을 마쳤다.벌써 3번째 사용해 보는데 사용할수록 너무 TDD의 장점을 크게 느낀다.무엇보다 요구사항 탐색과 리팩토링 안정망 도구로서의 TDD의 힘이 가장 잘 체감 된다.그에비해 설계 피드백 도구로서의 TDD의 장점은 온전히 느끼고 있지 못한것 같다. 2주차 회고에서도 느꼈지만 이러한 OOP적인 설계를 녹여내기 ..

테스트 주도개발 TDD 실천법과 도구 정리 도서 요약[FAQ & 설계사고과정]

https://product.kyobobook.co.kr/detail/S000001223650 테스트 주도 개발 TDD 실천법과 도구 | 채수원 - 교보문고테스트 주도 개발 TDD 실천법과 도구 | 효율적인 설계와 간결한 코드를 만드는 필수 TDD 기법『TDD 실천법과 도구』는 업고픔질 소프트웨어를 만드는 유쾌한 개발 비법 TDD를 다룬 책이다. 초급 개product.kyobobook.co.krQ.private 메소드도 테스트 케이스를 만들어야 하나요?우선 먼저'Private 메소드가 왜 생기나?' 혹은 언제 private 메소드를 만들게 되나?'를 생각해볼 필요가 있다.Java에서의 private은 접근 범위(access scope)로 봤을 때 오직 자신의 클래스 내에서만 접근 가능한 속성이나 메소드이..

테스트 주도개발 TDD 실천법과 도구 정리 도서 [핵심 요약]

https://product.kyobobook.co.kr/detail/S000001223650 테스트 주도 개발 TDD 실천법과 도구 | 채수원 - 교보문고테스트 주도 개발 TDD 실천법과 도구 | 효율적인 설계와 간결한 코드를 만드는 필수 TDD 기법『TDD 실천법과 도구』는 업고픔질 소프트웨어를 만드는 유쾌한 개발 비법 TDD를 다룬 책이다. 초급 개product.kyobobook.co.kr 전통적인 개발 및 테스트의 문제점들개발 기간이 길어질수록 개발자의 목표 의식이 흐려진다.어디까지 짰더라?, 내가 뭘하고 있는거였지?, 이 모듈이 무슨 기능을 해야하더라?분량이 늘어날수록 확인이 어려워진다.개발자의 집중력이 필요해진다코드의 사용방법과 변경 이력을 개발자의 기억력에 의존하게 돼서 논리적 오류를 찾기..

[우아한테크코스 8기] 프리코스 오픈미션 2차 회고- 자동차 경주 TDD

https://github.com/softmoca/java-racingcar-8/tree/softmoca-tdd GitHub - softmoca/java-racingcar-8Contribute to softmoca/java-racingcar-8 development by creating an account on GitHub.github.com 시작하며2번째 TDD 경험을 마쳤다 ! 1번째에서도 예상보다 시간과 리소스가 많이 소요 되었지만 이번에는 훨씬 더 예상 보다 많은 시간이 소요되어 결국 후반부터 의식적으로 프로젝트를 마무리 짓기 위해 노력했다. 가장 큰 이유는 2가지이다.첫번째로 컨트롤러와 입출력 테스트가 생각보다 너무 많은 시간과 리소스를 잡아 먹었다.처음으로 Mock을 사용해 런던파 스타일로 ..

[우아한테크코스 8기] 프리코스 오픈미션 1차 회고- 문자열계산기 TDD

https://github.com/softmoca/java-calculator-8/tree/softmoca-tdd GitHub - softmoca/java-calculator-8Contribute to softmoca/java-calculator-8 development by creating an account on GitHub.github.com 시작하며드디어 첫 TDD 경험을 마쳤다 ! 처음 예상했던 것 보다 훨씬 시간과 리소스가 많이 소요 되었다.처음 시도를 하려고하니 여러 레퍼런스와 도서에 읽은 너무 많은 방법들이 떠오르며 중간중간 각 레퍼런스마다 모순되는 내용들이 떠올라 상당히 혼란스러웠다. TDD에서의 요구 사항 분석 및 문서화, 리드미 작성, 커밋 방법, 프리코스 미션의 요구 사항들 등등 ..

TDD 핵심 정리

1. TDD란 무엇인가1-1. 정의TDD(Test-Driven Development, 테스트 주도 개발)는“테스트 코드를 먼저 작성하고, 그 테스트를 통과시키기 위한 최소한의 기능만 구현한 뒤, 리팩토링으로 설계를 다듬어 가는 개발 방식”이다.전통적인 방식(구현 → 테스트)과 달리 TDD는 순서를 다음과 같이 강제한다.실패하는 테스트를 먼저 작성한다 (Red)테스트를 통과시키기 위한 최소한의 코드만 구현한다 (Green)중복 제거, 구조 개선, 책임 분리 등의 리팩토링을 수행한다 (Refactor)이 사이클을 반복하면서,요구사항을 조금씩 구체화하고,설계를 점진적으로 개선하고,테스트를 안전망으로 활용한다.즉, TDD는 “테스트를 작성하는 기술”이 아니라 “테스트를 매개로 개발 순서를 바꾸는 사고방식”이다...

테스트주도 개발 시작하기 - 챕터 10~11. 테스트 코드와 유지 보수 & 마무리

https://product.kyobobook.co.kr/detail/S000001248962 테스트 주도 개발 시작하기 | 최범균 - 교보문고테스트 주도 개발 시작하기 | 작동하는 깔끔한 코드를 만드는 데 필요한 습관 - JUnit 5를 이용한 테스트 주도 개발 안내 - 테스트 작성과 설계를 위한 대역 - 테스트 가능한 설계 방법 안내 - 유지product.kyobobook.co.kr 왜 테스트 코드도 유지보수 대상인가CI/CD 도입이 늘면서, 배포 전에 자동 테스트를 돌리는 게 거의 필수 요소가 됨.우리가 TDD로 쓴 테스트 코드는 결국 회귀 테스트(Regression Test) 역할을 하면서기존 기능이 망가지지 않았는지 리팩토링 후에도 동작이 유지되는지 자동으로 확인해 주는 안전망이 됨.그런데 이 ..

테스트주도 개발 시작하기 - 챕터 9. 테스트 범위와 종류

https://product.kyobobook.co.kr/detail/S000001248962 테스트 주도 개발 시작하기 | 최범균 - 교보문고테스트 주도 개발 시작하기 | 작동하는 깔끔한 코드를 만드는 데 필요한 습관 - JUnit 5를 이용한 테스트 주도 개발 안내 - 테스트 작성과 설계를 위한 대역 - 테스트 가능한 설계 방법 안내 - 유지product.kyobobook.co.kr 1. 테스트 범위1-1. “테스트 범위”테스트 범위 = 테스트를 할 때 실제 시스템 구성요소를 어디까지 묶어서 하나의 시나리오로 돌릴 것인가일반적인 웹 서비스 기준으로 테스트에 등장할 수 있는 구성요소브라우저 / 모바일 앱 (프런트)HTTP 서버, 웹 프레임워크 (Spring MVC 등)서비스, 도메인, 리포지토리 코드D..