ATDD 5주차 - 마무리

2022. 7. 25. 20:19·교육 및 인강/ATDD, 클린 코드 with Spring

NEXTSTEP에서 진행하는 교육과정 ATDD와 함께 클린 API로 가는 길 4기다.

글을 작성하는 시점에서는 과정명이 ATDD, 클린 코드 with Spring으로 변경되었다.

 

ATDD, 클린 코드 with Spring

 

edu.nextstep.camp


ATDD 미션 다시 보기

1주차 - 인수 테스트 기반 기능 구현

- 인수 테스트 작성 방법

- 인수 테스트 가독성 고려

 

2주차 - ATDD + TDD Cycle 경험

- 인수 테스트를 시작으로 세부 구현을 단위 테스트로 구현

- Outside In TDD와 InSide Out TDD를 경험

- 테스트 비용을 고려하여 단위 테스트로 분리

 

3주차 - 인수 테스트 기반 리팩토링

- 인수 테스트를 통해 점진적으로 기능 개발 경험

- 인수 테스트 통합을 통해 인수 테스트의 역할을 구체화

- 인수 테스트에서 중요한 인증 부분에 대한 학습

 

4주차 - 문서화를 포함한 ATDD 전체 개발 사이클

- 테스트 목적에 따른 테스트 설정

- 테스트 기반 문서 자동화 경험 


강의 핵심 주제 다시보기

ATDD Cycle

- 1. 요구사항 -> 인수 테스트 -> API 개발

- 2. 요구사항 -> 인수 테스트 -> TDD -> API 개발

- 3. 요구사항 -> 인수 테스트 -> 문서화 -> TDD -> API 개발 -> 테스트 리팩토링

 

테스트 리팩터링

- 인수 테스트 스텝을 나누어 리팩터링

- 인수 테스트 검증되는 부분을 단위 테스트로 분리

- 인수 테스트의 흐름에 따라 하나로 통합하기


테스트 도구

- Spring, Spring Boot

- JUnit5, Mockito

 

인수 테스트 도구

- RestAssured

- @SpringBootTest + RANDOM_PORT

 

단위 테스트 도구

- MockitoExtension, SpringExtension

- @Mock, @MockBean

 

인수 테스트 인증 도구

- RestAssured + auth()

 

문서화 테스트 도구

- Spring Rest Docs

- Asciidoctor

- RestAssuredMockMvc


REST API

- REST 기반 API 설계를 인수 테스트로 검증

- RestAssured를 통해 인수 테스트 작성하기

- HTTP 표준을 기반으로 REST의 Uniform Interface 제약 지키기

- HTTP Cache를 통해 Cache 제약 조건 지키기

- JWT를 활용한 OAuth 2.0 규약을 통해 Stateless 제약 조건 지키기


강의 목표 다시보기

- 인수 테스트 기반으로 TDD를 할 수 있다.

- 테스트를 효과적으로 리팩터링하여 유지보수를 잘할 수 있다.

- 새로운 프로젝트뿐만 아니라 레거시 코드에서도 TDD를 할 수 있다.

- 남들에게 TDD와 ATDD가 실무에서 가능하다고 설명하고 할 수 있다.


후기

드디어 5주간의 교육이 마무리되었다. (이전 주차별 후기글을 작성해서 마땅히 쓸 내용이 많지는 않다.)

이 교육은 ATDD뿐만 아니라 다양한 것도 학습해서 좋았는데 다양한 테스트 도구와 사용으로 테스트 숙련도가 올랐다고 느껴진다.

Mockito, RestAssured, @SpringBootTest 등 다양한 도구를 배우고 사용하면서 시야가 넓어졌다.

또한, 프로덕션 코드처럼 커지는 테스트 코드의 복잡성을 어떻게 관리할지 고민도 해봤다.

 

가장 큰 배움은 실무에 어떻게 적용할지 접근 방법을 알 수 있는 거다.

TDD, 클린 코드를 통해서 단위 테스트를 배웠지만 과연 내가 예전에 다녔던 회사나 프로젝트에 그대로 적용할 수 있을까? 아무리 고민해봐도 그 환경과 복잡한 레거시에 적용을 못했을 거란 생각이 압도적으로 높았다.

제가 진행하는 강의인 '클린코드를 위한 TDD, 리팩토링' 의 수강자들 대부분이 '배운 내용을 어디서부터 적용해야 할지 막막하고, 실무에 바로 적용하기가 어렵다'는 아쉬움을 표하는 것을 많이 보았습니다.  - 박재성(자바지기)

추천사만 봐도 얼마나 어려운 일인지 알 수 있는데, 이 교육을 통해 강사님이 예전 회사와 현재 회사에 ATDD를 어떻게 적용했는지 그 과정을 엿볼 수 있어서 좋았다.

놀라운 건 교육을 통해 배웠던 내용과 거의 흡사하다는 점이다.

강사님의 실제 경험을 수강생이 그대로 느낄 수 있도록 교육으로 최대한 경험해볼 수 있게 짜인 커리큘럼을 다시 보면 대단하다는 생각이 든다. (교육비 70만원도 싸다고 느껴진다)

 

후기부터 작성하다보니 정리되지 않은 배운 내용이 많다.

배운 거 잊기 전에 잘 정리해서 나중에 써먹어야겠다.

'교육 및 인강 > ATDD, 클린 코드 with Spring' 카테고리의 다른 글

ATDD 4주차 - 테스트 기반 문서화  (0) 2022.07.25
ATDD 3주차 - ATDD 기반 리팩토링  (0) 2022.07.09
ATDD 2주차 - ATDD + TDD 후기  (0) 2022.06.24
ATDD 1주차 - 인수테스트 후기📖  (0) 2022.06.21
ATDD 시작하면서...  (0) 2022.06.09
'교육 및 인강/ATDD, 클린 코드 with Spring' 카테고리의 다른 글
  • ATDD 4주차 - 테스트 기반 문서화
  • ATDD 3주차 - ATDD 기반 리팩토링
  • ATDD 2주차 - ATDD + TDD 후기
  • ATDD 1주차 - 인수테스트 후기📖
loop-study
loop-study
오늘도 공부하자
  • loop-study
    개발 공부할래?
    loop-study
  • 전체
    오늘
    어제
    • 분류 전체보기 (187)
      • 목표 및 회고 (26)
      • 세미나 & 워크샵 (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)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 백엔드 로드맵
  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
loop-study
ATDD 5주차 - 마무리
상단으로

티스토리툴바