본문으로 이동

안티패턴

위키백과, 우리 모두의 백과사전.

안티패턴(anti-pattern)은 소프트웨어 공학 분야 용어이며, 실제 많이 사용되는 패턴이지만 비효율적이거나 비생산적인 패턴을 의미한다.

안티패턴은 1995년 앤드루 케이니그가 디자인 패턴을 참고하여 처음 사용한 말이다. 그리고 3년후 <안티패턴>이라는 책 때문에 '안티패턴'이라는 용어가 널리 알려지게 되었다.

개념과 역사

[편집]

안티패턴(Anti-pattern)은 1990년대 초 소프트웨어 공학 분야에서 비효율적이고 반복되는 부적절한 해결책을 체계적으로 정리하기 위해 등장한 개념으로, 전통적인 디자인 패턴에 대한 역설적 대응으로 출발하였다.[1]

분류 및 유형

[편집]

안티패턴은 설계, 프로젝트 관리, 프로세스 등 여러 유형으로 나뉜다. 대표적인 예로는 ‘스파게티 코드(spaghetti code)’, ‘황금 망치(golden hammer)’, ‘죽음의 나선(death march)’ 등이 있다.[2]

중요성과 대응

[편집]

안티패턴을 인지하고 회피하는 것은 소프트웨어 품질 개선과 유지보수 비용 절감에 필수적이다. 이를 위해 리팩토링, 코드 리뷰, 설계 원칙 준수 등의 대응 전략이 권장된다.[3]

연구 동향 및 확장

[편집]

최근 안티패턴 개념은 소프트웨어를 넘어 조직 관리, UX 디자인, 데이터베이스 설계 등 다양한 분야로 확장되어, 문제 해결의 반면교사 역할을 하고 있다.[4]

  1. Brown, William J. 외. 「AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis」, Wiley, 1998.
  2. Brown et al., 1998.
  3. Fowler, Martin. 「Refactoring: Improving the Design of Existing Code」, Addison-Wesley, 1999.
  4. Smith, John. 「Extending Anti-patterns to Organizational Practices」, Journal of Systems and Software, 2021.