loop-study
개발 공부할래?
loop-study
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 목표 및 회고 (25)
    • 세미나 & 워크샵 (1)
    • 교육 및 인강 (67)
      • TDD, Clean Code with Java (5)
      • ATDD, 클린 코드 with Spring (6)
      • DDD 세레나데 (3)
      • 인프라 공방 (6)
      • 이규원의 현실 세상의 TDD (19)
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (18)
      • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 (8)
      • 코딩으로 학습하는 GoF의 디자인 패턴 (1)
      • 스프링 시큐리티 완전정복 6.x (1)
    • 서적 (62)
      • 객체지향의 사실과 오해 (1)
      • 객체지향과 디자인패턴 (7)
      • 만들면서 배우는 클린 아키텍처 (3)
      • 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (1)
      • 오브젝트: 코드로 이해하는 객체지향 설계 (17)
      • 리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (0)
      • 토비의 스프링 (3)
      • 엔터프라이즈 애플리케이션 아키텍처 패턴 (9)
      • 개발자의 글쓰기 (1)
      • 소프트웨어 장인 (17)
      • Real MySQL 8.0 (2)
      • JVM 밑바닥까지 파헤치기 (0)
    • 개발 & 방법론 (29)
      • Java (13)
      • TDD (5)
      • ATDD (3)
      • DDD (6)
      • 인프라 (2)
      • SQL (0)
    • 개인이야기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 백엔드 로드맵

인기 글

태그

  • 소프트웨어 장인
  • 장인정신
  • 인프라공방
  • JUnit
  • 넥스트스탭
  • 조영호
  • study
  • java
  • 추상화
  • 오브젝트
  • 스프링
  • 엔터프라이즈 애플리케이션 아키텍처 패턴
  • TDD
  • 테스트 주도 개발
  • 객체지향
  • DDD 세레나데
  • nextstep
  • 인프런
  • 스터디
  • 김영한
  • 마틴 파울러
  • 자바
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • 백기선
  • 현실세상의 TDD
  • fastcampus
  • ATDD
  • Test Driven Development
  • 이규원
  • Patterns of Enterprise Application Architecture

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
loop-study

개발 공부할래?

개발 & 방법론/DDD

테스트를 통한 코드 보호

2021. 10. 15. 19:55

레거시 코드, 빈약한 모델 구조의 프로젝트를 파악하기란 무척이나 어렵다.

레거시 코드를 리팩토링하는 건 더 어렵다.

어떻게 리팩토링을 시작해야 할까?

최선의 방법은 테스트 코드다.


테스트 코드란?

기능을 검증하는 코드를 테스트 코드라 한다. 

테스트에는 단위 테스트, 통합 테스트, 인수 테스트가 있다.

- 단위 테스트 : 기능 별로 테스트 진행, 필요한 부분만 따로 진행할 수 있다.

- 통합 테스트 : 외부 모듈을 묶어서 진행, 단위 테스트에서 발견하지 못한 에러를 발견할 수 있다.

- 인수 테스트 : 시스템을 대상으로 검증, 최대한 운영과 흡사한 환경에서 진행한다.

 

레거시에 테스트 코드를 작성하는 이유?

테스트 코드를 통해 레거시의 여러 가지를 파악할 수 있다.

- 도메인 파악 : 레거시 코드를 통해 무엇을 얻고자 하는지 파악한다. 

- 모듈화 단서 : 거대한 덩어리를 어떻게 분해할지 단서가 보인다. 

- 변경의 여파 파악 : 작성된 테스트 코드를 통해 어디까지 영향을 끼치는지 알 수 있다.

 

테스트 도구

테스트 코드를 작성하기 위해선 JUnit과 Mockito를 사용한다.

- JUnit : 단위 테스트를 지원하는 프레임워크, 기능 검증에 사용된다.

- Mockito : Mock을 지원하는 프레임워크, 행위 검증에 사용된다.

 


간단히 테스트 코드 개념을 알아봤다.

다음에는 JUnit, Mockito 사용방법을 알아보자.

 

JUnit5 알아보기

인텔리제이를 사용하는 자바 개발자가 90% 이상 사용한다는 JUnit을 간단히 알아보러 한다. 자세한 내용은 공식 가이드를 참고하기 바란다. JUnit 5 JUnit이란? JUnit은 자바 프로그래밍 언어용 유닛 테

loopstudy.tistory.com

 

Mockito 알아보기 (부제 : BDD)

테스트 코드 입문자라면 겪어보는 문제 테스트 코드를 작성한지 얼마 안 되었을 때 의존성이 있는 객체의 테스트 코드를 작성하면서, 의존하는 객체의 실제 인스턴스를 생성해서 진행한 적이

loopstudy.tistory.com

 

* 주관적인 글이니 잘못된 내용이 있으면 댓글 부탁드립니다.

 

참고자료

NEXTSTEP, DDD 세레나데

'개발 & 방법론 > DDD' 카테고리의 다른 글

이벤트 스토밍(Event Storming)  (0) 2022.11.04
바운디드 컨텍스트(BOUNDED CONTEXT)  (0) 2021.12.16
유비쿼터스 언어(UBIQUITOUS LANGUAGE)  (0) 2021.12.15
레거시 코드, 빈약한 도메인 모델(Anemic Domain Model)  (0) 2021.10.06
도메인 주도 설계(Domain Driven Design)란?  (0) 2021.10.05
    '개발 & 방법론/DDD' 카테고리의 다른 글
    • 바운디드 컨텍스트(BOUNDED CONTEXT)
    • 유비쿼터스 언어(UBIQUITOUS LANGUAGE)
    • 레거시 코드, 빈약한 도메인 모델(Anemic Domain Model)
    • 도메인 주도 설계(Domain Driven Design)란?
    loop-study
    loop-study
    오늘도 공부하자

    티스토리툴바