오늘은 개발튜터님이 추천해주신 칼럼을 읽어봤어요
출처: https://news.hada.io/topic?id=19969
코딩은 프로그래밍이 아니에요 | GeekNews
Leslie Lamport는 LaTeX의 초기 개발자이며 분산 시스템 분야의 선구자. 2013년 튜링상 수상그가 SCaLE 22x 키노트에서 추상화의 중요성을 강조하며, 대부분의 프로그래머가 코딩과 언어에 몰두하지만,
news.hada.io
💡 코딩은 프로그래밍이 아니다: 진짜 개발은 생각에서 시작된다
“프로그래밍이 코딩과 동일하다고 생각하시나요?”
세계적인 컴퓨터 과학자이자 LaTeX의 창시자,
그리고 2013년 튜링상 수상자인 레슬리 램포트(Leslie Lamport)는 SCaLE 22x 키노트에서 우리가 놓치고 있는 중요한 메시지를 던졌습니다.
“프로그래밍은 코드 작성이 아니다. 추상화와 사고에서 시작된다.”
이번 발표는 특히 동시성 프로그래밍의 대가로 알려진 그가, 동시성을 넘어 ‘프로그래밍 전반’에 대해 말한 자리였습니다. 코딩 이전의 단계, 즉 ‘무엇을 어떻게 만들 것인가’를 사고하는 과정의 중요성을 강조한 것이죠.
🧠 알고리듬 vs. 프로그램: 핵심은 ‘무엇을 할 것인가’
람포트는 프로그래밍을 두 단계로 나눕니다.
- 알고리듬: 언어와 무관한 추상적 아이디어
- 프로그램: 알고리듬을 특정 언어로 구현한 구체적 표현
예를 들어, 배열에서 최대값을 찾는 간단한 문제도 단순히 max 함수를 쓰는 것이 아니라,
"모든 원소 이상인 최소 수"라는 정확한 정의에서 시작해야 합니다.
비어 있는 배열은 어떻게 처리할 것인가? 를 반환하는 방식처럼 사전에 명확한 규칙을 세우는 게 알고리듬입니다.
🔄 프로그램은 상태의 흐름이다
코드는 단순한 명령어의 나열이 아닙니다. 램포트는 이를 "상태의 연속적 전이"라고 표현합니다.
각 줄의 코드는 프로그램의 상태를 바꾸는 하나의 단계이며, 이 상태 전이의 흐름을 정확히 파악할 때,
우리는 프로그램의 올바름(invariant)을 논리적으로 증명할 수 있게 됩니다.
이런 시각은 특히 동시성, 분산 시스템, 복잡한 상태 기반 시스템 설계에서 핵심적인 무기가 됩니다.
🛠 추상화를 위한 도구: TLA+
그렇다면 추상화된 알고리듬을 어떻게 표현할까요?
람포트는 자신이 개발한 TLA+라는 언어를 소개합니다.
- AWS는 TLA+로 설계 결함을 사전에 발견해 대형 사고를 방지
- 유럽우주국 Rosetta 프로젝트의 OS도 TLA+ 기반으로 설계
정확한 사양 없이 코드부터 쓰는 시대는 지났다는 메시지를 TLA+가 보여주고 있습니다.
✍️ 생각은 글쓰기에서 시작된다
흥미로운 점은, 글쓰기가 사고를 명확하게 만든다는 통찰입니다.
람포트는 수학적 사고 훈련이 프로그래밍에 도움이 된다고 말하면서,
프로그래머가 수학자처럼 글로 추상화하는 훈련을 해야 한다고 주장합니다.
생각을 코드가 아닌 글로 먼저 써보는 것, 그것이 프로그래밍의 첫 걸음이란 겁니다.
🐞 왜 프로그램은 버그를 피할 수 없을까?
현대 소프트웨어는 수많은 라이브러리와 상호작용합니다. 문제는 이들이 대부분 정확한 명세 없이 만들어졌다는 것.
결과적으로 통합 과정에서 예기치 못한 버그가 발생합니다.
람포트는 자신의 JavaScript 디버깅 경험을 예로 들며, 상태 기반의 사고 방식이 복잡성을 이해하고 오류를 줄이는 데 필수적이라고 설명합니다.
🔚 진짜 프로그래밍: 코딩 전에 ‘생각’하라
우리는 너무 자주 “무엇을 만들지”보다 “어떻게 만들지”에 몰두합니다.
하지만 진짜 프로그래밍은 생각하고 정의하고 추상화하는 과정입니다.
람포트의 메시지는 명확합니다.
“코딩은 프로그래밍의 일부일 뿐이다.”
프로그램을 더 견고하게 만들고, 유지보수 가능하게 하고 싶다면,
생각하는 법부터 다시 배워야 합니다.
'스파르타 내일배움캠프 > Daily Scrum' 카테고리의 다른 글
26일차_Daily Scrum_북클럽 : 『실리콘밸리의 팀장들』 1부 1장(2) : 관리의 본질은 무엇인가? (0) | 2025.04.07 |
---|---|
25일차_Daily Scrum_북클럽 : 『실리콘밸리의 팀장들』 1부 1장(1) : 최고의 상사는 세 가지를 잘한다 (0) | 2025.04.04 |
22일차_Daily Scrum_북클럽 : <실리콘밸리의 팀장들> 머리말(3) : 진짜 좋은 팀장은 '완벽함'보다 '솔직함'을 택한다 💬✨ (0) | 2025.04.01 |
21일차_Daily Scrum_북클럽 : 창업특강)시장분석 (0) | 2025.03.31 |
18일차_Daily Scrum_북클럽 : 오늘의 AI 트렌드 업데이트 (0) | 2025.03.26 |