본문 바로가기
Dev DBAN/개발 이야기

주니어 개발자는 TDD로 개발해야된다 생각합니다.

by 디반 2022. 2. 14. 12:46
반응형

최근에 TDD를 이용해 간단한 CRUD API를 만들 기회가 생겨 만들어보면서 깨달은 것들을 한 번 공유하기 위해 이렇게 글 을 적습니다. 

먼저 어떤 라이브러리던 공식문서를 참고하는것이 가장 중요하기에 아래에 링크 남겨 놓겠습니다.

 

 

 

Testing - FastAPI

Testing Thanks to Starlette, testing FastAPI applications is easy and enjoyable. It is based on Requests, so it's very familiar and intuitive. With it, you can use pytest directly with FastAPI. Using TestClient Import TestClient. Create a TestClient passin

fastapi.tiangolo.com

 

TDD?

개발 방법론 중 Test Driven Development의 약자, 테스트 주도 개발 이라고 이야기 합니다. 

  1. 기능이 정상적으로 움직이는지 검증하기 위한 테스트 코드를 작성한다. 
  2. 이를 통해 테스트가 실패할 경우, 테스트를 통과하기 위한 최소한으로 코드를 개선한다. 
  3. 최종적으로 테스트에 성공한 코드를 리팩토링 하는 과정을 거친다.

장점?

  1. 객체 지향적인 코드 생산
  2. 재설계 시간 단축
  3. 디버깅 시간 단축
  4. 테스트 문서의 대체 가능 
  5. 추가 구현의 용이함 

단점? 

생산성의 저하 (개발 속도가 느려진다...?)

 


간략하게 TDD에 대한 설명과 장단점을 알아보았습니다. 

여기에 조금 주니어인 저의 의견을 첨언하자면 이렇습니다. 

제 말이 옳은 것은 아니고 제가 그냥 해보면서 느낀 점을 이야기 하는 겁니다.

TDD는 주니어들에게 가장 필요한 개발 방식이라고 생각합니다.

왜냐하면 내가 만든 프로젝트, 과제의 결과물을 미리 정의 해놓고 그것에 맞추어 개발을 한다는 것 자체가 요구사항에 맞추어 개발하는 방법을 배운다 생각하기 때문입니다. 

저 역시 처음으로 제공된 TestCase에 맞추어 개발을 진행해보면서 개발에 대한 자세한 도큐먼트 대신 TestCase를 보면서 이해를 하다보니 오히려 오해하지 않고 개발에 집중할 수 있었고 어떻게 작동이 되는지 이해하기 훨씬 쉬웠다고 느꼈습니다. 

이번에 제 프로젝트에 기능을 추가하면서 TestCase를 직접 추가해서 TDD를 경험해볼 예정입니다. 

누군가가 만든 TestCase를 가지고 프로젝트를 진행을 해보았기에 제가 위에와 같이 이야기 했을 수 있기에 한 번 직접 해본 다음 그 후기도 같이 적어보도록 하겠습니다. 

하지만 현재까지는 저와 같은 주니어들에게 개발 실력을 쉽고 빠르게 성장 시킬 수 있는 방법은 내가 직접 요구사항으로 TestCase를 만들고 그것에 맞추어 개발해보는 방법이 좋다고 생각해 이렇게 글을 적어봅니다. 

반응형

댓글


"); wcs_do();