스파게티(소스 코드)

컴퓨터 프로그램의 흐름이 복잡하게 뒤엉킨 모습을 스파게티가 엉킨 모습에 비유한 표현이다. 일종의 발적화.

보통 개념계획없이, 또는 예상치 못한 상황에서 코드가 지속적으로 추가될 때, 혹은 프로그램을 제대로 이해하고 있지 못한 상태에서 새로운 코드를 추가하여 작동만 가능하게 하는 상황,야근하는 상황에서 자주 출현한다.

작동은 제대로 하는 것처럼 보이지만, 언제 하이젠버그가 강림할지 모르는 시한폭탄 코드일 가능성이 높아지고, 특히 이후 유지보수/업데이트가 거의 불가능에 가까워질 지경으로 헬게이트가 열린다. 많이 만들어두면 후임자가 신나서 날뛰는 모습을 볼 수 있다. 마비노기가 현재 이런 상태일 것이라는 추측이 있다. 허나 추측은 추측일 뿐이다. 진실은 저 너머에(...) 실제로 웹 브라우저넷스케이프가 이 상태였다. 1990년대 후반부터 2000년대 전반까지 벌어진 웹 브라우저 전쟁에서 넷스케이프는 코드 정리 이런 것 없이 급하게 기능을 추가했고, 그 바람에 코드가 점점 꼬여갔다. 넷스케이프 4.x 버전은 무겁다는 반응이 많았고 인터넷 익스플로러에 밀려 쓰는 사람이 적어졌다. 장렬히 패배한 넷스케이프는 소스 코드를 공개했고, 모질라 재단이 이 소스코드로 브라우저를 만들려고 했다가 기겁하고 2년 동안 대대적으로 뜯어고쳐 게코 엔진을 만든 것은 유명한 일화다. 이 엔진으로 나온 것이 모질라 파이어폭스다.

프로그래밍을 할때 특히 만 버그의 근원인 GOTO문을 남발하면 소스코드가 높은 확률로 스파게티 코드화 된다. 버그가 생길 가능성이 높아지며 이해도 더럽게 안 된다. 학점이 깎이는건 덤!

스파게티 코드의 OOP 버전은 라자냐 코드라고도 한다. 상속 계층이 너무 많다고(...). 물론 OOP에도 고전적인 스파게티 코드가 생길수 있으므로 가끔 정신놓고 코딩하면 둘의 환상적인 조합(...)을 보게 된다.

이 문서의 내용 중 전체 또는 일부는 스파게티문서에서 가져왔습니다.</div></div>