스파게티 코드

스파게티 면발

스파게티 코드(spaghetti code)는 컴퓨터 프로그램의 소스 코드가 복잡하게 얽힌 모습을 스파게티의 면발에 비유한 표현이다. 스파게티 코드는 정상적으로 작동하지만, 사람이 코드를 읽으면서 그 코드의 작동을 파악하기는 어렵다.

스파게티 코드는 GOTO 문을 지나치게 많이 사용하거나, 프로그램을 구조적으로 만들지 않는 경우에 만들어지기 쉽다.

예제

다음의 두 베이직 코드는 같은 작동을 한다.

 10 DIM i
 20 i = 0
 30 i = i + 1
 40 IF i <> 10 THEN GOTO 90
 50 IF i = 10 THEN GOTO 70
 60 GOTO 30
 70 PRINT "Program Completed."
 80 END
 90 PRINT i; " squared = "; i * i
 100 GOTO 30
 10 DIM i
 20 FOR i = 1 TO 9
 30     PRINT i; " squared = "; i * i
 40 NEXT
 50 PRINT "Program Completed."

이때 앞쪽의 GOTO 문을 사용한 코드에 비해 뒤쪽의 코드는 for 문을 사용했고, 작동 방식이 더 직관적이다.

같이 보기