본문 바로가기
카테고리 없음

비트겐슈타인의 언어 게임, 프로그래밍 언어 이해에 적용

by 소크리뷰 2025. 6. 7.

비트겐슈타인의 언어 게임 프로그래밍 언어 이해에 적용

프로그래밍을 철학이 바꿔줄 거라고는 한 번도 생각해본 적이 없었습니다. 코딩이란 건 늘 기술적인 영역이라고 생각했죠. 문법 배우고, 논리 따라가고, 오류 없이 돌아가게 만드는 일. 그런데 루트비히 비트겐슈타인의 글을 읽고 나서, 코드가 전혀 다른 의미로 다가오기 시작했습니다.

비트겐슈타인은 ‘언어 게임’이라는 개념을 소개했어요. 처음엔 좀 추상적으로 들릴 수 있지만, 저에게는 무척 강렬한 통찰이었습니다. 그는 언어가 고정된 의미를 갖는 게 아니라, 상황 안에서 어떻게 쓰이느냐에 따라 의미를 갖는다고 말했죠. 같은 단어라도 맥락이 다르면 전혀 다른 의미가 될 수 있다는 겁니다. 그리고 저는 문득 깨달았어요. "이거, 프로그래밍이랑 똑같잖아?"

 

코드를 단순한 명령 그 이상으로 바라보다

생각해보세요. if (x > 10) 이 한 줄, 혼자서는 아무 의미가 없습니다. x가 뭔지, 이 조건이 왜 필요한지, 이게 전체 코드에서 어떤 역할을 하는지를 알아야 비로소 그 의미가 살아나죠. 문법만 있다고 끝나는 게 아니에요. 맥락이 있어야 해요. 의도가 있어야 하죠.

이걸 깨닫고 나니, 코딩이 단순히 기계에게 명령을 내리는 작업이 아니라는 걸 알게 됐습니다. 나는 팀원들과, 미래에 이 코드를 읽게 될 나 자신과, 때로는 아직 태어나지 않은 누군가와 소통하고 있었던 거예요.

 

프로그래밍 언어마다 문화가 있다

처음 JavaScript에서 Python으로 넘어갔을 때, 단순한 문법 차이 정도일 거라 생각했어요. 그런데 아니었습니다. 언어 자체의 ‘느낌’이 완전히 다르더군요. JavaScript는 유연하고 즉흥적인 느낌이 있었고, Python은 정갈하고 구조적이었죠. 마치 새 언어가 아니라, 새로운 문화를 배우는 것 같았어요.

비트겐슈타인은 이걸 ‘게임’이라고 불렀습니다. 각 언어는 고유한 규칙과 기대치가 있는 게임이죠. 이걸 이해하고 나면, 다른 언어에 적응할 때 혼란을 덜 겪게 됩니다. 왜냐하면 이제는 단순히 문법이 바뀐 게 아니라, 게임의 룰 자체가 바뀌었다는 걸 알게 되니까요.

 

사람이 읽을 수 있는 코드를 쓰자

한참 지난 후 내 코드 다시 보면서 “내가 왜 이렇게 썼지?”라고 생각한 적 있으신가요? 저도 그렇습니다. 우리는 종종 코드가 ‘돌아가기만 하면 된다’고 착각하죠.

그런데 좋은 변수명, 명확한 주석, 깔끔한 함수 구조는 그냥 실력이 아니라, 배려입니다. 누군가(혹은 나 자신)가 이 코드를 다시 읽을 때, 이해할 수 있도록 돕는 거죠. 비트겐슈타인은 ‘의미는 사용에서 나온다’고 했습니다. 코드도 마찬가지입니다. 쓰이기 어려운 코드는, 아무리 멋져도 결국 의미 없는 코드일 수 있어요.

 

철학이 개발자에게 준 것들

예전엔 프로그래밍이 순수한 논리의 세계라고 생각했습니다. 지금은 그것이 언어라는 걸 압니다. 우리의 생각을 행동으로 바꾸는 방식. 복잡함을 다루는 방법. 그리고, 때론 놀이이기도 하다는 것.

맞아요. 놀이. 비트겐슈타인이 굳이 “언어 시스템”이 아니라 “언어 게임”이라고 한 이유가 있죠. 언어를 사용한다는 건, 코드처럼 창의적이고 즉흥적이며, 재미있는 활동이기도 하니까요. 규칙은 중요하지만, 상황에 따라 때로는 그 규칙을 조정하고 넘어설 줄 아는 여유도 필요하죠.

 

마무리하며: 고마운 통찰 하나

비트겐슈타인을 읽는다고 해서 하루아침에 코드 실력이 늘지는 않았습니다. 하지만 그보다 더 중요한 걸 얻었어요. 마음가짐이요. 지금은 코드를 작성할 때, 단순히 문제를 푸는 게 아니라, 하나의 대화에 참여하고 있다는 느낌이 들어요. 그 대화는 팀을 넘어, 시간과 공간을 넘어 이어질 수도 있겠죠.

그리고 그게, 코딩을 훨씬 더 ‘인간적인’ 일로 만들어 줍니다.

 

Q&A: 사람들이 궁금해할 법한 이야기들

Q: 철학을 프로그래밍에 연결하는 게 너무 과한 거 아닐까요?
A: 처음엔 저도 그렇게 생각했어요. 그런데 둘 다 결국 ‘의미’와 ‘구조’, 그리고 ‘소통’에 대한 이야기더라고요. 한 번 보이기 시작하면, 더는 안 보일 수가 없습니다.

Q: 실제로 이 관점이 코딩 실력에 도움이 되나요?
A: 제 경우엔 확실히 도움이 됐어요. 명료함, 일관성, 그리고 공감이 담긴 코드를 쓰게 되었죠. 단순히 작동하는 코드가 아니라, 이해되고 공유될 수 있는 코드 말이에요.

Q: ‘언어 게임’이란 게 모든 언어에 적용되나요?
A: 완전히 적용됩니다. 각 언어는 저마다의 규칙과 관습이 있는 게임입니다. JavaScript에서 자연스러운 표현이 Python에서는 어색할 수 있는 것도 그 때문이죠.

Q: 그럼 이 게임들을 잘하려면 어떻게 해야 하나요?
A: 많이 써보고, 다른 사람의 코드를 읽어보고, “왜 이렇게 했지?”라고 계속 물어보는 게 중요해요. 그리고 무엇보다, ‘내 코드가 다른 사람에게 어떻게 보일까?’를 생각하는 거죠.

Q: 개발자들에게 철학을 추천하시나요?
A: 강력히 추천합니다. 철학은 모든 걸 설명해주진 않지만, 더 나은 질문을 하게 만들어줘요. 그리고 좋은 질문이야말로, 개발자의 절반은 먹고 들어가는 무기입니다.