프로그래밍 은어 및 코드 관행 용어집

Source

  • Evernote/Inbox/오늘의유머 - 교훈을 담은 프로그래밍 은어들.md

Summary

이 문서는 소프트웨어 개발 과정에서 흔히 사용되는 비공식적 은어와 코드 관행에 대한 정의들을 정리한 것입니다. ‘UFO 버그’, ‘게토 코드’, ‘슈뢰딩거의 버그’ 등 25 가지 이상의 용어를 포함하며, 각각의 용어는 코드의 품질, 버그의 특성, 개발자의 심리, 또는 유지보수의 어려움을 유머러스하거나 비유적으로 설명합니다. 주요 주제는 다음과 같습니다:

  1. 버그의 종류와 특성: 재현이 어렵거나 관찰 시 사라지는 버그(하이젠버그, 슈뢰딩거의 버그), 고객이 존재를 믿는 버그(UFO 버그), 수정이 불가능한 버그(엑스칼리버 버그) 등.
  2. 코드 구조 및 품질 문제: 과도한 모듈화(라비올리 코드), 복잡한 계층 구조(바클라와 코드), 구조적 혼란(스파게티 코드), 숨겨진 나쁜 코드(돼지 립스틱 코드, 소세지 코드) 등.
  3. 유지보수 및 협업 문제: 제거 시 시스템이 무너지는 코드(젠가 코드), 주석 처리된 코드 잔여물(상처투성이 코드), 불명확한 버그 리포트(어쩌라고 보고서) 등.
  4. 개발자 관행 및 심리: 무의식적 코딩(오토파일럿 코드), 직업 안정성을 위한 의도적 복잡성(저당 코드), 과도한 예외 처리(포켓몬 예외 처리) 등.

이 용어들은 공식적인 기술 용어가 아니라 개발자 커뮤니티 내에서 공유되는 문화적 코드이며, 코드 리뷰나 버그 트래킹 시 맥락적 이해를 돕는 참고 자료로 활용될 수 있습니다.

Key Points

  • 문서는 ‘UFO 버그’, ‘게토 코드’, ‘슈뢰딩거의 버그’ 등 25 개 이상의 프로그래밍 관련 은어를 정의함.
  • 버그의 특성에 따라 분류: 관찰 시 변화(하이젠버그), 고객 신뢰 기반(UFO 버그), 수정 불가(엑스칼리버 버그), 재현 어려움(힉스-보손 버그) 등.
  • 코드 구조의 문제점 묘사: 과도한 인캡슐레이션(라비올리 코드), 복잡한 계층(바클라와 코드), 구조적 혼란(스파게티 코드), 숨겨진 나쁜 구현(돼지 립스틱 코드) 등.
  • 유지보수 및 협업의 어려움: 의존성으로 인한 제거 불가(젠가 코드), 주석 처리된 코드 잔여물(상처투성이 코드), 불명확한 리포트(어쩌라고 보고서) 등.
  • 개발자 관행 및 심리: 무의식적 코딩(오토파일럿 코드), 의도적 복잡성(저당 코드), 과도한 예외 처리(포켓몬 예외 처리), 프로토타입의 제품화(프로토덕션) 등.
  • 용어들은 공식 기술 용어가 아닌 개발자 커뮤니티의 문화적 코드로, 코드 품질 및 버그 특성을 유머러스하게 설명함.
  • 각 용어는 특정 개발 상황이나 코드 패턴을 비유적으로 표현하며, 코드 리뷰나 버그 트래킹 시 맥락적 이해를 돕는 참고 자료로 활용 가능함.