센로그

[ED] 11. 코드 수정 후 결과 확인까지의 시간 최소화하기 본문

Effective/Effective Debugging

[ED] 11. 코드 수정 후 결과 확인까지의 시간 최소화하기

seeyoun 2024. 11. 13. 22:43

본격적인 디버깅 작업에 들어가기 전, 디버깅 과정을 반복하는 데 걸리는 시간을 최소화할 방안을 마련해야 한다

  • 빌드 시간을 줄이는 방법을 찾는다.
    • 수정한 부분에 관련된 파일만 컴파일하도록 파일 사이의 의존 관계를 잘 정리해야 한다.
    • 관련 도구
      • make
      • Ant
      • Maven
      • Gradle
  • 소프트웨어를 배치하고 실행하는 과정을 효율적으로 만든다.
    • 서버를 다시 구동하거나, 캐시를 비우거나, 데이터베이스를 초기화 하거나, ... 프로젝트마다 과정이 다르다.
    • 해당 과정을 최대한 자동화하도록 한다.
  • 소프트웨어에서 오류가 나면 곧바로 실행을 멈추도록 한다.
    • 단위 테스트나 회귀 테스트 프레임워크를 지원한다면, 발생한 오류를 드러내는 테스트케이스를 작성한다.

 


나의 생각

 

+) Unity에서 맨날 오류나던 그거.. Gradle이 무엇인가?

  • Gradle은 빌드 자동화 도구로, 주로 소프트웨어 프로젝트의 빌드, 테스트, 배포 작업을 자동화하는 데 사용된다.
    • settings.graldle: 프로젝트 구성 설정
    • build.gradle: 빌드에 대한 모든 기능 정의
      • 플러그인 설정
      • 저장소 설정
      • 의존 관계 설정
        • 여러 환경 구성 설정을 제공한다. 컴파일용, 빌드용, 테스트용, ... 이런거 말이다.

 

+) 단위테스트에 관하여..

  • 단위 테스트(Unit Test)는 프로그램의 개별 모듈(단위)이 올바르게 동작하는지 검증하는 테스트이다.
    • 주로 함수나 메서드 수준에서 테스트가 진행되며, 각 기능이 예상대로 동작하는지 확인한다.
    • 자동화된 방식으로 여러 경우의 입력에 대해 일관성있고 반복적으로 검증하고자 하는 것이다.
    • 단위 테스트를 통해 코드의 버그를 조기에 발견하고, 유지보수성을 높일 수 있다.
  • 각 언어마다 다양한 테스트 프레임워크가 있다.
    • C++: Google Test(GTest)
    • Java: JUnit
    • Python: unittest, pytest 

 

Comments