코드 스멜

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

코드 스멜(code smell←코드 냄새)은 컴퓨터 프로그래밍 코드에서 더 심오한 문제를 일으킬 가능성이 있는 프로그램 소스 코드증상을 가리킨다.[1]

이 용어는 1990년대 말 켄트 벡워즈위키에 의해 고안된 것으로 보인다. 《Refactoring: Improving the Design of Existing Code》라는 책에서 특집으로 실리면서 이 용어의 이용이 늘어나게 되었다.[2] 또, 코드 스멜은 애자일 프로그래머가 사용하는 용어이기도 하다.[3]

무엇이 코드 스멜인지 아닌지의 여부를 결정하는 일은 주관적인 것으로 언어와 개발자, 개발 방법에 따라 다양하다. 자동으로 특정한 종류의 코드 스멜을 확인하기 위한 도구들이 있으며, 그 예로는 체크스타일, PMD, 파인드벅스 등을 들 수 있다.

일반적인 코드 스멜[편집]

응용 프로그램 수준의 스멜:

클래스 수준의 스멜:

  • 커다란 클래스
  • 기능에 대한 욕심
  • 부적절한 관계
  • 거부된 유산
  • 게으른 클래스
  • 리터럴의 과도한 사용
  • 순환 복잡도
  • 다운캐스팅
  • 고아 변수 또는 컨스턴트 클래스

메서드 수준의 스멜:

  • 너무 많은 매개변수
  • 긴 메서드
  • 과도하게 긴 식별자
  • 과도하게 짧은 식별자
  • 과도한 데이터의 반환

같이 보기[편집]

각주[편집]

  1. Tufano, M.; Palomba, F.; Bavota, G.; Oliveto, R.; Di Penta, M.; De Lucia, A.; Poshyvanyk, D. (2015년 5월 1일). “When and Why Your Code Starts to Smell Bad” (PDF). 《2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (ICSE)》 1: 403–414. doi:10.1109/ICSE.2015.59. 
  2. Fowler, Martin (1999). 《Refactoring. Improving the Design of Existing Code》. Addison-Wesley. ISBN 0-201-48567-2. 
  3. Binstock, Andrew (2011년 6월 27일). “In Praise Of Small Code”. Information Week. 2011년 6월 27일에 확인함. 

외부 링크[편집]