본문 바로가기

Java/Test Driven Development

(7)
3-1. 데이터베이스 중심 설계 vs 인터페이스 중심 설계 데이터베이스 중심 설계 vs 인터페이스 중심 설계: TDD와의 비교프로그래머로서 우리는 시스템 설계를 다양한 방식으로 접근합니다. 이번 내용은 데이터베이스에서 시작하는 설계(Database-First Design)와 인터페이스에서 시작하는 설계(Interface-First Design)의 특징을 비교하고, TDD(Test-Driven Development)가 어떻게 인터페이스 중심을 강화하는지 설명합니다. TDD는 요구사항을 테스트로 구체화하며, 데이터베이스를 기능 구현 도구로 활용해 유연성을 강조합니다. 이를 통해 두 설계 방식의 차이를 이해하고, 실습에서 임의 테스트 데이터 생성 기법을 통해 TDD의 실용성을 살펴보겠습니다. 1. 데이터베이스에서 시작하는 설계 (Database-First Design..
2-4. TDD에 대한 오해 해당 포스트는 이규원님의 "Spring Boot TDD" 강의를 기반으로 작성하였습니다. Spring Boot TDD - 입문부터 실전까지 정확하게| 이규원 - 인프런 강의현재 평점 5점 수강생 364명인 강의를 만나보세요. 더 빠르고 더 견고하게 Spring Boot 응용프로그램을 개발하세요. 정확한 이론 설명과 실무 수준의 연결된 실습을 통해 HTTP API 응용프로그램 개발에www.inflearn.comTDD 오해 소개: 프로그래머를 위한 명확한 이해TDD(Test-Driven Development)는 소프트웨어 개발에서 큰 관심을 받지만, 그만큼 오해도 많습니다. 이러한 오해는 TDD 학습을 주저하게 하거나, 도입 후 효과를 제대로 누리지 못하게 만듭니다. 이 글에서는 TDD에 대한 주요 오해를 ..
2-3. TDD 절차 해당 포스트는 이규원님의 "Spring Boot TDD" 강의를 기반으로 작성하였습니다. Spring Boot TDD - 입문부터 실전까지 정확하게| 이규원 - 인프런 강의현재 평점 5점 수강생 364명인 강의를 만나보세요. 더 빠르고 더 견고하게 Spring Boot 응용프로그램을 개발하세요. 정확한 이론 설명과 실무 수준의 연결된 실습을 통해 HTTP API 응용프로그램 개발에www.inflearn.comTDD 소개: 프로그래머를 위한 실용적 접근프로그래머로서 우리는 소프트웨어 개발에서 테스트를 통해 품질을 높이는 방법을 자주 고민합니다. TDD(Test-Driven Development)는 Kent Beck이 과거 프로그래밍 사례를 기반으로 만든 방법론으로, 코드 작성 전에 테스트를 우선하는 접근입..
2-2. 테스트와 설계 해당 포스트는 이규원님의 "Spring Boot TDD" 강의를 기반으로 작성하였습니다. Spring Boot TDD - 입문부터 실전까지 정확하게| 이규원 - 인프런 강의현재 평점 5점 수강생 364명인 강의를 만나보세요. 더 빠르고 더 견고하게 Spring Boot 응용프로그램을 개발하세요. 정확한 이론 설명과 실무 수준의 연결된 실습을 통해 HTTP API 응용프로그램 개발에www.inflearn.com1. 테스트 시나리오○ 테스트 시나리오는 제품이 갖춰야 할 기능을 검증하는 작은 단위입니다. ○ 제품의 요구사항을 표현하는 방법은 아주 많은데, 테스트 시나리오도 그 중에 하나입니다.○ 대부분의 테스트 시나리오는 클라이언트 입장에서 작성됩니다. 그리고 다른 요구사항 작성 방법처럼 테스트 시나리오는 제..
2-1. 인터페이스 설계와 구현 설계 해당 포스트는 이규원님의 "Spring Boot TDD" 강의를 기반으로 작성하였습니다. Spring Boot TDD - 입문부터 실전까지 정확하게| 이규원 - 인프런 강의현재 평점 5점 수강생 364명인 강의를 만나보세요. 더 빠르고 더 견고하게 Spring Boot 응용프로그램을 개발하세요. 정확한 이론 설명과 실무 수준의 연결된 실습을 통해 HTTP API 응용프로그램 개발에www.inflearn.com1. 프로그래머의 설계○ 프로그래머는 소프트웨어 개발 과정에서 지속적으로 설계를 합니다. ○ 특히 인터페이스 설계와 구현 설계는 업무의 큰 부분을 차지하며, 소프트웨어의 품질과 유지보수성에 핵심적입니다.이 글에서는 시스템의 기본 개념부터 시작해 인터페이스와 구현 설계의 특징, 리팩터링의 정의와 역할,..
1-1. 엔지니어링과 원칙 해당 포스트는 이규원님의 "Spring Boot TDD" 강의를 기반으로 작성하였습니다. Spring Boot TDD - 입문부터 실전까지 정확하게| 이규원 - 인프런 강의현재 평점 5점 수강생 364명인 강의를 만나보세요. 더 빠르고 더 견고하게 Spring Boot 응용프로그램을 개발하세요. 정확한 이론 설명과 실무 수준의 연결된 실습을 통해 HTTP API 응용프로그램 개발에www.inflearn.com프로그래머로서 우리는 일상적으로 "엔지니어링"과 "원칙"이라는 단어를 자주 사용합니다. 이 두 개념은 우리의 작업 방식과 의사결정에 큰 영향을 미칩니다. 1. 엔지니어링의 정의: 자원을 가치로 바꾸는 과학적 과정○ 엔지니어링은 다양한 해석이 가능하지만, 브리태니커 백과사전의 정의를 기반으로 프로그래..
Practical Testing: 실용적인 테스트 가이드 💡 본 게시글은 박우빈님의 'Practical Testing: 실용적인 테스트 가이드' 강의를 공부하고, 이에 대해 정리한 내용입니다.들어가며 소프트웨어 개발자로서 경력을 쌓아가는 과정에서, 코드의 품질과 유지보수성에 대해 많은 고민을 하게 되었습니다. 개발 초기에는 주어진 시간 안에 기능을 완성하는 것이 중요했기 때문에 테스트의 중요성을 간과하고, 기능 구현에만 집중하였습니다. 하지만 프로젝트가 복잡해지고 규모가 커지면서, 기능 구현 후에 발생하는 예기치 않은 버그와 문제들이 점점 더 빈번해졌습니다. 이러한 경험을 통해 테스트 코드의 필요성을 절감하게 되었습니다. 그래서 저는 좀 더 체계적인 테스트 코드 작성과 TDD(Test Driven Development)에 대해 구체적으로 학습하고 싶었습니다...