| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 |
- 파이썬
- 딥러닝
- 데이터베이스
- 자료구조
- 컴퓨터비전
- 사이버보안
- 프로그래밍언어
- I'm Sorry
- 자바스크립트
- 데이터과학
- 데이터구조
- 네트워크
- 웹개발
- 프로그래밍
- 인공지능
- 데이터분석
- 컴퓨터공학
- springboot
- 버전관리
- 머신러닝
- 빅데이터
- 소프트웨어
- 디자인패턴
- 네트워크보안
- 보안
- 소프트웨어공학
- Yes
- 클라우드컴퓨팅
- 컴퓨터과학
- 알고리즘
- Today
- Total
목록2025/07/20 (9)
스택큐힙리스트
1. JDD가 뭐길래?JDD(Ju-Dung-A-Li Driven Development, 주둥아리 주도 개발)는 2022년경 GitHub 레포와 국내 개발 블로그를 통해 유행한 패러디 개발 방법론입니다.핵심 아이디어는 “코드보다 말이 우선”입니다. 즉,버그는 핑계로 덮고트릭으로 기능을 땜빵하며“LGTM” 도장으로 코드리뷰를 스킵하고문서는 필요 없다는 자세를 미덕으로 삼습니다.겉으론 웃픈 농담이지만, 현실에서 드물지 않게 목격되는 ‘안티-패턴’을 풍자합니다. 스프링 프로젝트에서도 스펙보다 말이 앞서면 기술 부채가 걷잡을 수 없이 늘어난다는 교훈을 던집니다.2. JDD 주요 가치 4가지내 기술이 최고 ― 표준·레퍼런스보다 ‘내 방식’ 고집Tricky > Clean ― 읽기 힘든 숏컷 코드로 일단 돌아가게만변명..
1. ‘DD’ 가 붙은 네 가지 개발 방법론 한눈에 보기TDD(Test-Driven Development)테스트 → 코드 → 리팩터 순서로 개발하는 방식. 높은 코드 신뢰성과 안전한 리팩터링이 장점이며, 스프링의 @SpringBootTest, JUnit 5, Mockito, Testcontainers와 찰떡궁합이다.BDD(Behavior-Driven Development)“Given-When-Then” 시나리오로 요구사항을 자연어에 가깝게 명세한다. 개발자와 비즈니스 담당자가 같은 언어를 쓰기 때문에 협업이 쉬워지고, Cucumber·JBehave 같은 도구로 자동화 테스트를 만들 수 있다.DDD(Domain-Driven Design)도메인 모델을 중심으로 설계·코드를 조직화한다. 유비쿼터스 언어, 바운..
왜 TDD를 선택해야 할까?즉각적인 피드백으로 디버깅 비용 절감테스트부터 작성하므로 결함이 생기면 바로 위치를 짚어낼 수 있습니다. 버그 탐색 → 수정에 쓰이는 시간을 획기적으로 줄여 개발 효율을 높입니다.명세 기반 설계로 코드 품질 상승“무엇을 해야 하는가”를 먼저 테스트로 명시하기 때문에 과잉 설계가 줄고, 함수와 클래스가 작고 명확한 책임을 갖게 됩니다.안전한 리팩터링 & 변화 수용기능 추가나 구조 변경 시 테스트가 안전망이 되어 기존 동작을 깨뜨리지 않았는지 즉시 확인할 수 있습니다. 덕분에 비즈니스 요구 변화에 유연하게 대응합니다.동작하는 문서테스트 코드는 곧 실행 가능한 문서입니다. 새 팀원이 합류해도 입출력 예시를 통해 비즈니스 로직을 빠르게 이해할 수 있습니다.CI/CD 파이프라인 신뢰성 ..
1. TDD가 왜 중요한가?“Red → Green → Refactor” 사이클을 통해 서비스 레이어의 요구사항을 코드로 먼저 검증하면, 새 기능을 추가해도 회귀 버그가 줄고 구조가 깔끔해집니다. 테스트가 있는 코드베이스는 리팩터링과 CI/CD에 강합니다.2. JUnit 5 빠르게 세팅하기Gradle 기준:dependencies { testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2' testImplementation 'org.mockito:mockito-junit-jupiter:5.12.0' testImplementation 'org.testcontainers:junit-jupiter:1.19.7'}test { useJUnitPl..