객체 지향 프로그래밍 이전에 절차형 프로그래밍 방식이 있었다. 알고리즘의 명령을 순서대로 처리하여 아웃풋을 내는 방식이다. 절차형 프로그래밍의 직관적이고 단순한 방식은 한 가지 결함이 있었는데, 알고리즘이 조금이라도 복잡해지면 순서로 표현할 수 없이 꼬여버리는 ‘스파게