본문 바로가기
컴퓨터&CS

코드 품질과 테스트 자동화에 대해

by 노잉맨 2025. 2. 3.

 

코드 품질과 테스트 자동화

소프트웨어 개발에서는 코드 품질을 유지하고 자동화된 테스트를 도입하는 것이 중요합니다. 이번 글에서는 Jest, Cypress, ESLint, Prettier, Husky를 활용한 코드 품질 관리 및 테스트 자동화 방법을 소개합니다.

1. 코드 품질 관리

1.1 ESLint: 코드 스타일 및 문법 검사

ESLint는 JavaScript 코드의 문법 오류를 찾아내고 일관된 스타일을 유지할 수 있도록 도와줍니다.


npm install eslint --save-dev
npx eslint --init
        

설정 파일을 통해 프로젝트의 스타일 가이드를 정의할 수 있습니다.

1.2 Prettier: 코드 포맷 자동화

Prettier는 코드 스타일을 자동으로 정리하여 일관성을 유지합니다.


npm install prettier --save-dev
        

ESLint와 함께 사용하면 코드 품질과 가독성을 향상시킬 수 있습니다.

2. 테스트 자동화

2.1 Jest: 단위 테스트

Jest는 빠르고 사용하기 쉬운 JavaScript 단위 테스트 프레임워크입니다.


npm install jest --save-dev
        

// example.test.js
const sum = (a, b) => a + b;
test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});
        

테스트를 실행하려면 `npm test` 명령을 사용합니다.

2.2 Cypress: E2E(End-to-End) 테스트

Cypress는 브라우저에서 실행되는 E2E 테스트 프레임워크로, 사용자 플로우를 테스트할 수 있습니다.


npm install cypress --save-dev
npx cypress open
        

// example.spec.js
describe('My First Test', () => {
  it('Visits the app', () => {
    cy.visit('http://localhost:3000');
    cy.contains('Welcome');
  });
});
        

3. Git Hooks와 Husky를 활용한 코드 품질 유지

Husky를 사용하면 Git 훅을 활용하여 코드 푸시 전에 ESLint 검사나 Prettier 실행을 자동화할 수 있습니다.


npm install husky --save-dev
npx husky install
npx husky add .husky/pre-commit "npx eslint . && npx prettier --write ."
        

이렇게 설정하면 코드 커밋 전에 자동으로 코드 스타일 검사가 수행됩니다.

4. 결론: 코드 품질과 테스트 자동화의 중요성

  • ESLint & Prettier: 코드 스타일 유지 및 자동 포맷팅
  • Jest: 단위 테스트로 코드 안정성 확보
  • Cypress: E2E 테스트로 사용자 플로우 검증
  • Husky: Git Hooks를 활용한 코드 품질 유지

이러한 도구를 활용하면 코드 품질을 유지하고 안정적인 소프트웨어를 개발할 수 있습니다.