스마티지와 글 읽기 – What Is The Future Of Programming Languages?

What Is The Future Of Programming Languages?

 

자, 여러분! 코딩의 미래를 알고 싶으십니까? AI 시대에 프로그래밍 언어는 어떻게 변할까요? 오늘, “Modern Software Engineering” 채널의 두 소프트웨어 공학 전문가, 케블린 헤니와 데이브 팔리가 나눈 뜨거운 토론 내용을 일타강사 저스틴이 시원하게 요약해 드리겠습니다! AI가 코드를 대신 짜준다고 해서 프로그래밍 언어가 사라질까요? 천만의 말씀, 만만의 콩떡입니다!

1. 프로그래밍 언어, 왜 필요한가? (AI 시대에도 여전히 중요한 이유!)

  • 정밀함의 미학: 우리가 AI한테 자연어로 “야, 이거 만들어줘!” 하면 편할 것 같죠? 하지만 인간의 언어는 애매모호하고 오해를 불러일으키기 쉽습니다. 컴퓨터한테는 정확하고 정밀하게 지시해야 하는데, 바로 그래서 프로그래밍 언어가 필요한 겁니다! 컴퓨터가 이해하라고 만든 게 아니라, 우리가 컴퓨터에게 정확한 명령을 내리기 위한 도구라는 거죠.
  • 오해는 금물, 안정성은 필수: 프로그래밍 언어에는 모호함이 없습니다. 독자가 오해할 순 있어도, 언어 자체는 명확하죠. 오늘 본 코드랑 어제 본 코드가 똑같으면 의미도 똑같아야 합니다. 기업들은 이런 안정성과 결정론(determinism)에 의존합니다. 자연어처럼 해석이 바뀌면 큰일 나겠죠?
  • 컴퓨터와는 다른 세상: C언어처럼 로우 레벨 언어라고 하는 것들도 사실 컴퓨터가 실제로 돌아가는 방식과는 거리가 멉니다. 프로그래밍 언어는 인간이 아이디어를 정확하고 간결하게 표현하고, 그 안정성을 믿고 쓸 수 있도록 만들어진 겁니다.

2. 프로그래밍 언어의 진화? 생각보다 느리다! (옛날 언어가 짱짱맨?)

  • 변화는 더디게, 다양성은 글쎄?: 기술은 엄청 빨리 변하는 것 같지만, 프로그래밍 언어의 세계는 생각보다 보수적입니다. 새로운 언어들이 계속 나오긴 하지만, 인기 있는 언어들, 특히 상위 랭킹 언어들은 수십 년 된 핵심 개념을 중심으로 뭉쳐있습니다.
  • 밀레니얼 세대 언어들?: 2025년 현재, 개발자들이 쓰는 언어 대부분이 개발자 본인보다 나이가 많을 겁니다! 90년대에 나온 언어들이 아직도 많이 쓰이고, 2000년대 초반 언어 몇 개, 심지어 80년대 이전 언어도 있죠.
  • 기존 코드의 힘: 왜 그럴까요? 이미 짜인 코드베이스는 점점 커지고, 사람들의 기술, 조직의 투자 같은 것들이 기존 언어에 대한 거대한 편향을 만들어냅니다. 스택 오버플로우 질문, 채용 공고, 깃허브 사용량 등을 봐도 인기 언어 순위는 잘 안 바뀝니다.

3. 프로그래머의 진짜 실력은 ‘언어’가 아니다! (문제 해결 능력이 핵심!)

  • 언어는 도구일 뿐: 프로그래밍을 배우는 데 가장 어려운 부분이 특정 언어를 마스터하는 거라고 생각하는 건 오해입니다. 프로그래밍 언어는 우리가 서로 소통하고, 컴퓨터가 이해할 수 있도록 생각을 정밀하게 표현하는 도구일 뿐이죠.
  • 사고방식의 전환: 오히려 우리가 컴퓨터와 소통하기 위해 사고방식을 바꾸는 것이지, 언어 자체가 목적은 아닙니다. 아이디어를 표현하고 구조화하는 능력, 이건 어떤 언어를 쓰든 변하지 않는 핵심이죠.
  • 4GL의 실패가 주는 교훈: 예전에 그림 그려서 코드 만드는 4GL(4세대 언어)이 유행했지만 실패했습니다. 왜? 텍스트만큼 표현력이 좋지도 않고, 유연하지도 않고, 버전 관리도 어려웠기 때문이죠.
  • 정밀함, 그 어려운 문제: 결국 소프트웨어 개발에서 가장 어려운 문제는 ‘정밀함’을 찾아내고, 그걸 표현하고, 소통하는 능력입니다. 이건 어떤 언어를 쓰든 똑같습니다.

4. AI 시대, 프로그래머에게 필요한 능력은? (결국은 기본기!)

  • 체계적인 문제 해결: 답을 모르는 문제를 만났을 때, 다양한 각도에서 접근하고, 해결책을 평가하고, 길을 찾아가는 체계적인 문제 해결 능력이 중요합니다. 테스팅 같은 기술들이 이런 탐색 과정을 돕죠.
  • 언어 지식은 기본, 핵심은 탐구 능력: 최신 유행 언어를 아는 것보다, 이런 문제 해결 능력이 프로그래머의 핵심 기술입니다. 요즘엔 언어의 모든 기능을 다 알 필요도 없어요. 자주 쓰는 기능만 잘 활용하면 됩니다.
  • 언어들의 수렴 현상: 요즘 언어들은 서로 좋은 기능을 가져오면서 점점 비슷해지고 있습니다. 파이썬 람다랑 자바 람다가 문법은 달라도 기능적으로는 비슷해지는 것처럼요. 개발자들이 새 언어로 갈아타기보다는, 기존 언어들이 서로의 장점을 흡수하는 거죠.
  • 의심하고, 검증하라! (테스팅의 중요성): “내가 이걸 제대로 이해했나?”, “다른 방법은 없나?”, “내가 맞다는 걸 어떻게 알지?” 이런 비판적인 접근 방식이 중요합니다. 그래서 TDD(테스트 주도 개발) 같은 워크플로우가 여전히 유효한 거죠.

5. AI와 프로그래밍의 미래: 자연어 코딩? 아직은…

  • AI의 편향성: AI가 코드를 생성할 때, 기존 학습 데이터에 편향될 수밖에 없습니다. 즉, 이미 많이 쓰이는 오래된 언어 위주로 코드를 생성할 가능성이 크죠. 이건 오히려 언어 진화를 늦추는 요인이 될 수도 있습니다.
  • 자연어의 한계, DSL의 부상?: AI에게 자연어로 지시하는 건 여전히 정밀함이 부족합니다. 그래서 사람들은 AI에게 “내가 지금부터 영어를 이렇게 쓸 테니, 네가 알아서 해줘” 이런 식으로 특정 방언이나 DSL(도메인 특화 언어)을 만들어서 소통하게 될 겁니다. AI가 단순 반복 작업은 해주되, 핵심 로직은 우리가 정밀하게 지시하는 거죠.
  • 통제력 상실의 위험: AI가 생성한 코드를 우리가 제대로 이해하고 통제할 수 있을까요? AI는 거짓말도 하고 우리를 오해하기도 합니다. 이런 상황에서 프로그래밍에 대한 통제력을 잃어버릴 위험이 있습니다.
  • 버전 관리의 중요성: LLM은 매일매일 보이지 않게 버전이 바뀝니다. 어제 잘 되던 프롬프트가 오늘 안 될 수도 있죠. 이건 기업 입장에서 정말 싫어하는 상황입니다. 그래서 AI가 생성한 코드도 철저하게 버전 관리를 해야 합니다.

6. 그래서 프로그래밍 언어의 미래는? (결론은 ‘과거’다!)

  • 핵심 언어는 그대로, 기능은 풍부하게: 핵심 프로그래밍 언어들은 크게 바뀌지 않을 겁니다. 다만, 서로의 좋은 기능들을 흡수하면서 더 풍부해지겠죠.
  • DSL과 실행 가능한 명세: 프로그래머의 일상 업무는 애플리케이션별, 도메인별 특화 언어(DSL)를 만들고, 이를 통해 실행 가능한 명세(executable specifications)를 작성하는 일이 더 중요해질 겁니다.
  • AI는 구현 담당, 우리는 명세 담당: 우리가 DSL로 “이런이런 기능이 필요해”라고 명세를 작성하면, AI가 그 명세에 맞춰 코드를 구현하는 방식이죠. 그리고 그 명세 자체가 자동화된 테스트가 되어 시스템이 제대로 작동하는지 검증할 수 있습니다.
  • TDD, BDD, DDD의 귀환: 결국 테스트 주도 개발(TDD), 행동 주도 개발(BDD), 도메인 주도 설계(DDD) 같은 2000년대 초반에 나왔던 개념들이 AI 시대에 다시 주목받게 될 거라는 겁니다!

자, 어떻습니까? AI가 아무리 발전해도 프로그래밍 언어의 본질적인 역할, 그리고 프로그래머의 핵심 역량은 쉽게 변하지 않는다는 것! 오히려 기본기가 더욱 중요해지는 시대가 올 거라는 게 이 두 전문가의 통찰입니다.

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*