13P by neo 1일전 | ★ favorite | 댓글 4개
  • AI 코딩 도구의 발전으로 인해 개발자가 새로운 언어로 빠르게 진입할 수 있는 환경이 형성됨
  • 10년간 Ruby만 사용하던 개발자였으나, 올해 AI 코딩 에이전트(예: Cursor, Claude Code)와의 협업 덕분에 C, C++, Rust 등 시스템 언어로 실질적 기여가 가능해짐
  • Claude Code와 Cursor 같은 툴은 언어 문법, 관용구, 일반 이론에서 특히 큰 도움을 주는 역할을 함
  • AI는 코드 생성기가 아니라 "언어 전문가 페어 엔지니어"로서 기존 경험과 결합하여 실시간 질문, 맥락 설명, 예시 분석을 통해 학습 효율을 극대화함
  • AI가 프로젝트별 맥락이나 깊은 내부 구조까지 모두 알지는 못하지만, 언어 구문, 전형적 패턴, 표준 라이브러리 등은 즉각적으로 조언하며, 덕분에 100시간 이상의 사전 학습 없이도 실제 기여가 가능
  • AI 도구의 활용으로 프로그래밍 언어 전문성에 대한 전통적 인식이 빠르게 변화하고 있으며, 점점 더 많은 개발자가 여러 언어에서 생산적으로 일할 수 있는 환경이 열리고 있음

10년 Ruby 개발자, 다중 언어로의 전환

  • 필자는 2014~2024년까지 Ruby 및 Rails 생태계 전담 개발자로 활동
    • 그동안 Ruby 생태계에서 Rails, IRB, RDoc, debug gem 등 핵심 툴 개발 및 유지보수 경험을 축적함
  • 2025년부터는 Sorbet(C++), RBS 파서(C), ZJIT(Rust) 등 Ruby 외부의 시스템 레이어 프로젝트에 기여함
  • 이런 변화가 가능했던 배경에는 AI 코딩 에이전트의 도입(Cursor, Claude Code) 이 있었음
  • Shopify 내부에서도 이 AI 툴의 적극적 활용이 장려되고 있음

기회의 완벽한 조성

  • 단순히 AI 때문만이 아니라, 몇 가지 중요한 조건이 함께 갖춰져 있었음
    • Ruby DX팀의 로드맵 변경으로 Sorbet의 RBS 지원이 필요해짐 → 필연적으로 C/C++ 경험이 요구됨
    • Shopify의 Ruby & Rails 인프라팀 멤버들의 노하우 공유와 적극적 튜터링 환경 제공
  • 레거시적으로도 훌륭한 멘토와 실제 프로젝트 기회는 존재했으나, AI가 학습 장벽과 러닝 커브를 혁신적으로 단축시킴

시스템 프로그래밍의 복합성

  • ZJIT(새로운 JIT Ruby 컴파일러) 프로젝트 사례:
    • 다양한 복합 지식/스킬이 동시에 필요함
    • Rust(주 언어), C(Ruby 핵심 구현 언어), JIT/컴파일러 이론, ZJIT 고유 구조 및 설계, Ruby 내부 동작 원리, Ruby 빌드 시스템(autoconf, Makefile 등)
    • 한 번의 Pull Request가 2~4개 영역을 동시에 다룸
  • Claude Code의 효율성
    • 구문, 일반적 컴파일러 이론, Rust/C/C++ 등 언어 문법표현 패턴에서는 높은 정확성
    • 프로젝트 고유 문맥, Ruby 내부 구현, 복잡한 빌드 시스템 지원은 다소 제한적
    • 그럼에도 학습 과정의 진입 장벽이 절반 이하로 줄어듦
  • AI가 언어 구문/이론/패턴 학습을 즉각 지원, 프로젝트 고유 맥락은 사람의 몫

AI와의 페어 프로그래밍

  • AI를 단순한 코드 생성기가 아닌 보완적 파트너로 인식하게 됨
  • 실제 협업 방식
    • 개발자는 과업 요구사항과 맥락을 전달함
    • AI는 패턴을 찾고 언어 전문가 역할을 수행함
    • 개발자는 설계 이유를 질문함
    • AI는 코드를 수정하거나 이론을 탐색하고 결과를 제공함
    • 대화형 학습을 통해 언어 자체와 실제 활용법을 동시에 습득
  • 예시 : Ruby 바이트코드 명령어 프로파일링 과제에서, AI에게 과거 PR 검색 및 한 줄씩 해설 요청 가능
    • "바보 같은 질문"도 부담없이 가능(“JIT 컴파일러는 왜 프로파일링이 필요한가?” 등)
    • 익숙치 않은 문법 관련 즉각적 피드백 획득
  • 실패 사례도 존재함
    • 프로젝트 방향이 잘못되면 결국 동료 멘토의 교정 필요
    • 궁극적으로 인간 전문가의 경로 조정 능력은 여전히 필수적임

프로그래밍 언어 장벽의 해체

  • 이제 새로운 C 프로젝트에 기여하기 위해 100시간의 사전 학습이 필요하지 않은 시대
    • C, Rust 등 "진입장벽이 높은 언어"도 AI의 도움으로 당장 기여 가능
  • AI가 초심자의 실수(구문 오류, 타입 오류, 도구 사용법 오해 등) 를 빠르게 잡아줘 바로 실질적 기여 가능
  • 깊은 전문성은 여전히 중요하나, 복수 언어 생산성을 더 많은 개발자가 달성 가능해짐
  • 문법/표준 함수/패턴은 AI에게 맡기고, 개발자는 진짜 문제 해결에 집중
  • 나 같은 Ruby 전업 개발자가 1년 이내에 멀티랭귀지 개발자가 된 변화는 혁신적 트렌드
    • “한 언어만 쓰는 개발자”에서 “다언어 생산자”로의 전환이 현실화
    • 앞으로 언어별 전문성 개념 자체가 바뀌는 흐름의 시작점일 가능성 있음

결론

  • AI 코딩 에이전트는 프로그래밍 언어의 진입장벽을 급격히 낮추며,
    개발자가 여러 언어에서 즉각적으로 생산성 있게 일할 수 있는 새로운 시대를 열고 있음

코드의 생성은 그렇겠지만 코드 검수나 리뷰는 누가...

사용해보지 않은 기술 혹은 경험해보지 않은 영역에 대해 이전보다 정말 빠르게 나아갈수 있게 된거 같아요.

Hacker News 의견
  • AI가 러닝 커브를 바꾸고 있는지, 아니면 단순히 경험을 더 편하게 하는지 궁금함
    10년간 Ruby만 하다가 1년 만에 다중 언어 개발자가 된 것이 혁신적이라고 느꼈다는 사람의 경험에, 그건 오히려 “10년 동안 안 해본 것”이라 생각함
    프로그래밍 첫 언어를 배울 때와 이미 몇 년간 경험이 쌓인 상태에서 새로운 언어를 배울 때는 전혀 다른 경험

    • 나도 똑같은 생각을 함
      10년 동안 한 언어만 했던 개발자에 대해 공감하기 어려움
      초창기엔 선택한 언어에 대한 정체성이 강했지만 정말 경험 많은 개발자들에게서 “언어는 도구일 뿐”이라는 걸 배움
      여러 언어를 접하면 시각이 엄청 넓어지고, 말로 설명하기 어려운 깨달음이 있음
      그런 경험을 했던 것이 정말 행복

    • “AI 없어도 1년이면 충분히 여러 언어 배우는 게 가능했을 것”이라는 의견은 어느 정도 사실이라 생각함
      내 경험상 o4로 Python 미니 프로젝트를 할 때, 재밌는 특이 케이스들을 만났는데, AI 없었다면 그로 인해 많은 작업이 중단됐을 것
      예를 들면, unraid에서 xml vm을 처리하는 방식이나 dockers에서 발생하는 문제 같은 것이 그렇고, 그걸 자체적으로 파고들면 하루도 걸림
      이런 부분도 이제는 AI가 가이드해주니 훨씬 매끄럽게 넘어감
      그래서 무섭기도 한데, 정말 잘 동작함
      참고로 내 첫 프로그래밍 언어는 예전의 BASIC이었음

  • AI는 주류 언어를 더 인기 있게 만듦
    AI가 가장 적게 실수하는 언어들이 보통 큰 커뮤니티와 방대한 데이터셋을 가진 Python, JS, Ruby 같은 언어들임
    그래서 비주류 언어는 접근성 향상 효과가 크지 않음
    프로그래머 대부분이 사소한 버그를 잡아낼 만큼 비주류 언어에 능숙하지 않기 때문임
    머신러닝의 교훈처럼, 결국 트레이닝 데이터가 많은 쪽이 유리함

    • AI는 패턴 매칭에 강함
      문제를 기존 패턴에 맞추면 좋은 코드 샘플을 바로 제시해줌
      하지만 문제가 복잡하거나 특이할수록 AI는 덜 유용함
      인간은 더 추상적이고 동적인 개념을 유연하게 다룰 수 있음

    • 비주류 언어를 쓰는 사람들은 보통 인기보다 다른 가치(예: 효율, 돈, 학습 등)를 더 중시함
      만약 언어 인기가 필요하다면, 전문가가 아이디엄에 맞는 좋은 샘플 코드를 많이 만들어두고 AI가 다양한 변형을 생성하게 하면 진입 장벽이 급격히 낮아질 수 있음
      소규모 코딩이 쉬워지면 사람들이 언어 자체에 더 관심을 가지게 됨

    • LLM은 비주류 언어에서 더 자주 헛소리를 하는 경향이 있음
      나는 Scala 개발자인데, 대부분의 AI 유용성 논의는 사용하는 언어의 종류에 따라 달라진다고 봄
      JS 같은 언어라면 더 유용할지도 모르겠음

    • AI가 새로운 언어나 프레임워크가 등장했을 때 정확한 지원이 부족하면 사람들이 변화를 꺼릴까봐 걱정임
      이익보다 불편함이 더 크다고 느낄 수 있음
      새로운 릴리스가 나올 때마다 AI 친화적인 MCP 문서나 추가 자료가 꼭 필요해짐

    • 나 같은 경우는 claude와 Elm을 써보며 매우 긍정적인 경험을 함
      정적 타입 시스템 덕분에 정확도가 높아 도움이 많았음
      물론 가끔 이상한 답도 나오지만, 다들 그런 경험이 있지 않을까 생각함

  • 메이저 언어 사이에 사실상 장벽이 거의 없는 시대라고 생각함
    지금 애플리케이션 개발에 널리 쓰이는 10개 언어만 봐도, 대부분이 C나 ALGOL 계열로 유사한 문법, call-by-reference, 자동 메모리 관리라는 공통점을 가짐
    프로 개발자라면 이들 언어 사이에서 크게 애 쓰지 않고 스위칭할 수 있음
    메모리 관리를 처음 배우는 건 약간 힘들 수도 있지만, 익숙한 패턴과 경고, 린터만 잘 써도 견딜 만함
    실제로 러닝 커브가 심한 언어는 Rust, Ada SPARK, Lisp, Forth, ML 등이고 이들은 메이저가 아님

  • AI를 보조 프로그래밍 파트너로 활용 중임
    AI의 “넓고 얕은 지식”을 이용해서 우선 탐색한 뒤, 특정 영역 깊이 파고들 때 요청함
    새로운 프로그래밍 언어보다는 새로운 개념이나 기술(예: webauthn 백엔드, passkey 통합 구현) 학습에 적극 사용함
    초보자 입장에서도 AI가 큰 도움이 됨
    단, AI가 잘못된 예시(예: 폐기된 의존성)를 줄 때도 있었는데, 결과적으로 더 깊이 이해하게 되어 오히려 좋았던 경험임
    AI에게 완전히 자동으로 앱을 개발하게 맡기고 싶진 않음
    자잘한 실수가 종종 있으니 반드시 검토 필요함

  • 최근 새롭게 접한 Swift 코드베이스를 공부하는 데 AI가 큰 도움이 됨
    궁금한 점을 빠르게 해결하고 학습 속도를 높여줌
    다만, 복잡한 프로젝트에 실질적으로 공헌하려면 여전히 스킬과 경험이 필수
    내가 아는 언어에서도 잘못된 부분이 많은데 모르는 언어라면 검토도 힘듦

    • 어떻게 모르는 언어에서 AI 결과물에 자신감을 가질 수 있는지 이해하기 어려움
      새로운 언어 파고들 때마다 리뷰하려면 익숙해질 때까지 시간이 많이 걸림
      언어 장벽이 줄었다고 하는데, 실제로는 WhatsApp이 데스크톱 앱 대신 웹앱으로 옮기는 사례도 있고, 장벽은 완전히 사라지지 않음
  • Microsoft가 예전에 .Net 플랫폼 내세워 J#, Fortran.Net, Cobol# 등 다양한 언어로 한 팀에서 협업하고자 했던 시도가 떠오름
    이 방식이면 뛰어난 #Intercal 인재들도 생산성 네 배향상 가능할 거라 홍보했었음

    • 예전엔 진짜 그런 걸 믿었던 시절로 돌아가고 싶음
  • AI로 인해 프로그래밍 언어가 강력한 Hindley Milner 타입 시스템을 탑재한 쪽으로 진화할 것으로 예상함
    Haskell은 배우기 어렵지만, 데이터셋만 충분하다면 코딩 에이전트에 완벽한 타겟임
    고수준이면서 형식 검증 가능하고, 언어 서버와 AI를 간편하게 연동할 수 있음

    • 현실은 반대로 Haskell이 오히려 AI 지원에서 소외될 분위기임
      함수형 언어 좋아한다면, 왜 자연어 프로그래밍이 매력적인지 고민해봐야 함
      자연어는 결과를 모호하게 표현할 수 있는데, 기계가 그 부분을 자동 보완해줌
      진짜 혁신이 되려면 강한 논리체계+모호성을 도입한 프로그래밍 방식, 예를 들어 MTL 같은 논리 기반 도입이 필요함
      아쉽게도 이 분야 연구는 거의 중단되고, 신경망이 대세임

    • Haskell은 LLM 입장에서 깊이 있는 언어 특성이 많아 덜 친화적임
      LLM은 주로 텍스트 패턴을 다루기 때문임
      단순한 특징과 친절한 컴파일 오류를 제공하는 언어(예: Go)는 AI가 잘 다룸
      개인적으로는 타입 추론이 잘 되는 언어가 좋지만, AI 관점에서는 다름

    • LSP MCP 툴+LLM을 써봤는데, 약간 실망스러움
      LSP는 원래 인간 사용자를 위한 설계라 AI와 궁합이 완벽하진 않음
      LLM은 패턴 매칭에는 강하고, 타입 구조가 단순하면 타입 에러 거의 발생 없음
      복잡한 구조에서는 LLM이 해결 못 하거나 사용자가 이해 못 할 수도 있음

    • “Haskell로 대규모 형식 검증 사례가 있냐”는 질문도 있는데, seL4, CompCert 등은 대부분 C나 Coq+OCaml 기반임

    • Agda 같은 의존 타입 언어 사용이 늘어날 수도 있음
      다만, 데이터셋이 너무 적으면 AI 지식 이전이 어려워질 수도 있음

  • AI를 페어 프로그래밍 파트너로 대하면 좋음
    사용자가 배울수록 AI의 역할이, 처음엔 기초 설명과 작은 코드 생성, 이후엔 고급 토론+큰 단위 코드 생성, 코드 리뷰로 전환됨
    시간이 갈수록 스스로 더 많은 버그를 발견하게 됨

  • AI를 단순한 코드 생성기가 아닌, 보완 기술 가진 파트너로 보면 진짜로 도움이 됨
    모르는 언어라면 AI가 제시하는 솔루션을 꼼꼼히 질문해야 함
    “왜 이렇게 하는지”, “다른 시나리오에서는?” 등 구체적으로 물어보면 정말 배우는 데 도움이 큼

    • 질문을 하면 AI가 내 생각을 검증해주지만, 몇 번 반복하다 보면 완전히 신뢰하긴 어렵게 됨

    • “AI에게 명확하게 질문하도록 시키는 습관”도 가지면 좋음
      그렇게 하면 이해가 틀렸거나 논리가 부족한 부분을 미리 발견할 수 있음

  • Gemini의 코드 생성력을 테스트해보고자 bash 스크립트를 요청했는데 오류가 있었음
    다행히 bash를 알기에 바로 잡을 수 있었지만, 만약 모르는 언어라면 이런 문제가 언어 장벽을 제거한다고 하긴 어렵다고 생각함

    • 이건 bash 특유의 문제라고 생각함
      예를 들어 Go로 비슷한 자동화 작업을 LLM에 맡겼을 때는 한번에 잘 동작

    • bash보다는 Gemini의 문제라고 보긴 어렵고, AI 모델에 대한 정확한 정보 없이 브랜드명만으로 비판하는 건 동의할 수 없음
      실제로 “Gemini 2.5 Pro (Jan 2025), 온도 0.15” 등으로 세팅하니 훌륭한 idiomatic bash script를 바로 생성함
      (예시 코드 생략)
      단, WSL2에서 Windows Notepad로 편집한 파일의 엔터처리 문제도 겪었는데, Gemini가 친절하게 해결 방법도 알려줌
      재밌는 점은, bash에서는 마지막 줄에 엔터가 없으면 제대로 처리 안 되는 문제는 bash 자체의 한계임
      PowerShell은 거의 원라이너로 동일 작업 가능하고, 끝에 엔터 없어도 문제 없음
      Gemini 도와줌으로써 PowerShell도 짧은 코드로 최적화할 수 있었음

https://ruby-news.kr/articles/…
제가 만드는 서비스에서 요약. 번역 한 것인데 비슷하지만 긱뉴스가 좀 더 정리가 잘 되었고 보기 좋네요