좋은 코드 개발 문화 (클린 코드, 코드 리뷰, TDD)
·
개발/개발 공통
소프트웨어 개발을 할 때 좋은 개발 문화는 무엇 일지에 대해서 개인적으로 고민해 보았습니다. 좋은 코드 개발 문화 (클린 코드, 코드 리뷰, TDD) 개발하면서 어려운 점 개인적으로 개발하면서 어려운 점을 생각해 보았습니다. 제가 겪었던 안 좋았던 상황들을 조금 정리해 보았습니다. 처음부터 요구사항이나 리소스, 테스트 등 모호한 것이 많다. 그래도 처음에는 나름 고민하여 만든 코드가 동작한다. 개발자 단계에서 하는 테스트가 많지 않고 최종 엔드투엔드 테스트에 의존한다. 특정 모듈, 특정 파트에 업무 로드가 집중된다. 문제가 발생했을 때 디버깅에 오래 걸리고 해결책은 최소 수정사항으로 해결하려고 한다. 수정했을 때 테스트가 잘 없고 테스트해 볼 수 있는 환경 제약이 많다. 결국 사이드 이펙트가 발생하여 다..
[Python] 파이썬 pytest를 활용해서 테스트 해보자
·
개발/Python
파이썬에서 유닛테스트를 구현하기 위해 pytest를 이해하고 활용해서 테스트를 구현해 본다. 파이썬 pytest를 활용해서 테스트해 보자 지난번 파이썬 테스트를 위해서 내장된 unittest 모듈을 활용해 보았다. 이번에는 pytest를 활용해서 파이썬을 테스트해 보도록 하겠다. 이번에는 Pycharm 보다 VS Code이 편해서 VS Code를 사용해서 진행해 본다. https://docs.pytest.org/en/stable/ pytest: helps you write better programs — pytest documentation pytest: helps you write better programs The pytest framework makes it easy to write small, r..
[개발 방법] 테스트 주도 개발(Test-Driven Development)에 대해서
·
개발/개발 공통
오늘은 테스트 주도 개발(Test-Driven Development) 줄여서 TDD에 대해서 알아보고 장점과 단점은 무엇인지 공부해 본다. 테스트 주도 개발(Test-Driven Development)에 대해서 테스트 주도 개발 줄여서 TDD는 테스트 위주로 고려해서 개발을 하는 개발 방법론 중에 하나이다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 기존의 일반적인 방법론과는 다소 다르게 테스트를 매우 중요시한다는 것이 핵심이다. 아래는 켄트 벡의 테스트 주도 개발이라는 책에서 설명하고 있는 내용이다. 테스트 주도 개발의 바이블과도 같은 책이라고 할 수 있다. 테스트 주도 개발은 학계와 업계에서 많은 주목을 ..
[Python] TDD를 활용한 파이썬 unittest 사용 방법과 예제
·
개발/Python
오늘은 파이썬 unittest를 사용해서 내가 만든 프로그램을 테스트하는 방법에 대해서 알아보도록 하겠다. 파이썬 unittest 사용 방법과 간단한 예제 unit test란 무엇인가 unit test는 한국어로 단위 테스트라고 불리며 가능한 작은 단위인 함수나 클래스 단위를 각각 확인하는 테스트 방식을 뜻한다. 즉 어떤 큰 프로그램이 있더라도 결국 작은 단위의 함수가 클래스로 이루어져 있는데 그 작은 단위 하나하나를 테스트해서 궁극적으로 테스트의 커버리지를 확보하는 테스트 방식을 뜻한다. 개발자가 할 수 있는 간단하고 그나마 쉬운 테스트이다. 그래서 단위 테스트를 잘 활용해서 테스트 주도 개발(TDD)을 할 수 있다면 굉장히 좋은 코드가 나올 것이다. 물론 TDD가 완벽하거나 모든 것을 해결하는 것도 ..
[개발 환경] 구글 테스트(googletest) 개념 및 예제
·
개발/개발 환경
Goggletest의 개념에 대해서 알아보고 Goggle에서 제공하는 예제를 통해 Googletest의 활용법을 익혀보도록 한다. Googletest의 개념과 예제 Googletest란 Googletest 예제 Googletest란 https://github.com/google/googletest GitHub - google/googletest: GoogleTest - Google Testing and Mocking Framework GoogleTest - Google Testing and Mocking Framework. Contribute to google/googletest development by creating an account on GitHub. github.com 구글 테스트는 C/C++..
[도서 리뷰] 임베디드 C를 위한 TDD
·
개발/개발 공통
TDD를 실제로 해보면 매우 유용하고 새로운 느낌을 얻을 수 있다. 하지만 임베디드 C와 같은 특수한 소프트웨어나 펌웨어에서는 적용하기 다소 어렵다. 그래서 이 책은 그런 부분들을 어느 정도 가이드해 준다. http://www.yes24.com/Product/Goods/8117533 임베디드 C를 위한 TDD - YES24 애자일 전문가인 제임스 그레닝은 임베디드 소프트웨어 개발에 테스트 주도 개발을 적용해야 하는 이유와 적용하기 위한 방법을 간결하게 보여준다. TDD를 소개하는 다른 책들과 달리 특별히 펌 www.yes24.com 테스트 주도 개발 왜 TDD가 필요한가? 사람은 실수를 하기 때문이다. 프로그래밍은 매우 복잡한 활동이며 우리가 의도한 대로 계속 잘 동작하도록 지켜줄 자동화된 테스트 케이스..