이론 형성으로서의 프로그래밍 (1985)
한두 문장으로 핵심 요약.
* **무엇이 일어났는지:** Peter Naur는 프로그래밍을 단순히 프로그램 텍스트를 생산하는 활동이 아니라, 프로그래머가 문제와 해법에 대한 '이론을 형성하는 활동'으로 보았습니다. 여기서 이론은 코드나 문서가 아닌, 현실 세계와 프로그램 구조를 연결하고 설계의 정당성을 설명하는 프로그래머의 머릿속 지식입니다.
* **왜 중요한지:** 프로그램의 수정과 유지보수 비용은 코드 편집 비용이 아니라, 기존 프로그램의 이론을 이해하고 새로운 요구를 그 이론에 통합하는 데 필요한 프로그래머의 지식에 달려 있음을 강조합니다. 이는 소프트웨어의 장기적인 생존과 변화 대응 능력이 문서화된 설명보다 프로그래머의 이론적 이해에 근본적으로 의존한다는 것을 시사합니다.
* **주의할 점 또는 맥락:** 방법론이나 문서화는 이론 형성을 돕는 도구일 뿐이며, 프로그램의 핵심 지식(이론)은 코드나 문서에 완전히 담기지 않습니다. 따라서 프로그래머는 단순한 규칙 수행자가 아니라, 현실과 코드를 연결하는 이론을 형성하고 이를 바탕으로 변화에 지적으로 대응해야 합니다.
* **무엇이 일어났는지:** Peter Naur는 프로그래밍을 단순히 프로그램 텍스트를 생산하는 활동이 아니라, 프로그래머가 문제와 해법에 대한 '이론을 형성하는 활동'으로 보았습니다. 여기서 이론은 코드나 문서가 아닌, 현실 세계와 프로그램 구조를 연결하고 설계의 정당성을 설명하는 프로그래머의 머릿속 지식입니다.
* **왜 중요한지:** 프로그램의 수정과 유지보수 비용은 코드 편집 비용이 아니라, 기존 프로그램의 이론을 이해하고 새로운 요구를 그 이론에 통합하는 데 필요한 프로그래머의 지식에 달려 있음을 강조합니다. 이는 소프트웨어의 장기적인 생존과 변화 대응 능력이 문서화된 설명보다 프로그래머의 이론적 이해에 근본적으로 의존한다는 것을 시사합니다.
* **주의할 점 또는 맥락:** 방법론이나 문서화는 이론 형성을 돕는 도구일 뿐이며, 프로그램의 핵심 지식(이론)은 코드나 문서에 완전히 담기지 않습니다. 따라서 프로그래머는 단순한 규칙 수행자가 아니라, 현실과 코드를 연결하는 이론을 형성하고 이를 바탕으로 변화에 지적으로 대응해야 합니다.