처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.04.17 31

R 언어가 Tree-sitter를 품다, 통계 코드 편집이 달라지는 순간

Hacker News 원문 보기

R 생태계에 불어온 새로운 바람

R이라고 하면 통계나 데이터 분석을 하시는 분들이 주로 떠올리실 거예요. 학계에서 논문 쓸 때, 또는 데이터 사이언티스트가 EDA(탐색적 데이터 분석)를 할 때 많이 쓰는 언어죠. 그런데 R에는 오랫동안 아쉬운 점이 하나 있었어요. 에디터 지원이 다른 모던 언어에 비해 약했다는 거예요.

RStudio라는 강력한 IDE가 있긴 하지만, VS Code나 Neovim, Emacs 같은 범용 에디터에서 R 코드를 편집할 때는 구문 강조(문법에 따라 색깔 입혀주는 거)가 깨지거나, 함수 정의로 점프하는 기능이 어설프거나 하는 문제가 많았거든요. 이번에 rOpenSci에서 발표한 건, Tree-sitter 기반의 R 파서를 커뮤니티가 제대로 만들어서 이런 문제를 근본적으로 해결하겠다는 이야기예요.

Tree-sitter가 뭐길래

먼저 Tree-sitter를 짧게 설명드릴게요. 이게 뭐냐면, 소스 코드를 읽어서 트리 구조로 파싱해주는 라이브러리예요. GitHub에서 처음 만들었고, 지금은 대부분의 모던 에디터가 이걸 표준처럼 쓰고 있어요. Neovim 0.5 이후로는 기본 내장이고, GitHub의 코드 뷰어도 Tree-sitter로 돌아가거든요.

기존의 정규식 기반 구문 강조는 한계가 명확했어요. 예를 들어 문자열 안에 있는 function 같은 키워드까지 잘못 강조하거나, 중첩된 구조를 제대로 파악하지 못했죠. Tree-sitter는 언어의 문법 규칙을 실제로 이해하고 추상 구문 트리(AST)를 만들어요. 그래서 "이 위치는 함수 이름이다", "이 범위는 for 루프의 본문이다" 같은 의미론적 정보를 정확히 알 수 있습니다.

그리고 무엇보다 증분 파싱(incremental parsing)이 가능해요. 파일을 수정할 때마다 전체를 다시 파싱하는 게 아니라, 바뀐 부분만 다시 처리하거든요. 그래서 거대한 파일에서도 실시간으로 빠르게 동작합니다.

R에 적용되면 뭐가 달라지는가

이번에 공개된 tree-sitter-r 파서는 R 문법 전체를 커버해요. 여기에는 R 특유의 까다로운 부분도 포함돼요. 예를 들어 R은 <-, =, <<- 같은 여러 할당 연산자가 있고, 파이프 연산자도 두 종류(%>%|>)가 있어요. 또 함수의 인자 매칭 규칙이 파이썬이나 자바스크립트와 많이 다르거든요. 이런 걸 다 문법 수준에서 정확히 이해하는 파서가 생긴 거예요.

실무적으로 어떤 게 편해지냐면, 우선 정확한 코드 접기(folding)가 가능해져요. 긴 함수나 ggplot2 체인을 깔끔하게 접었다 펼 수 있죠. 그리고 구조적 편집이 가능해집니다. "이 함수 전체를 선택", "이 if 블록을 지우기" 같은 작업을 키 하나로 할 수 있어요.

또한 Linter나 포매터를 만들기가 훨씬 쉬워져요. 기존에는 R 코드를 분석하려면 R 자체의 파서를 불러와야 했는데, 그러면 R 런타임이 필요했거든요. Tree-sitter를 쓰면 R 없이도, 심지어 브라우저에서도 R 코드를 정확히 분석할 수 있어요. GitHub의 코드 네비게이션, 온라인 R 튜토리얼 사이트, Jupyter 확장 등에서 바로 효과가 나타납니다.

다른 언어 생태계와 비교해보면

Python은 이미 Tree-sitter 파서가 성숙해 있고, ruff 같은 초고속 린터가 이걸 기반으로 나왔죠. Rust는 말할 것도 없고, TypeScript, Go, Java 전부 Tree-sitter 지원이 탄탄해요. R은 사실 이 흐름에서 꽤 뒤처져 있었어요. 학계 중심 커뮤니티라 에디터 다양성에 대한 수요가 상대적으로 적었던 것도 이유예요. 다들 RStudio 쓰면 되니까요.

그런데 요즘은 분위기가 바뀌고 있어요. Positron이라는 Posit(RStudio를 만든 회사)의 새 IDE가 VS Code 기반으로 나오면서 R과 Python을 함께 쓰는 워크플로우가 표준이 되어가고 있거든요. 이런 맥락에서 Tree-sitter R 파서는 거의 필수 인프라에 가까워요.

한국 개발자에게 주는 시사점

R을 쓰시는 분이라면, 앞으로 몇 달 안에 VS Code나 Neovim에서의 R 경험이 눈에 띄게 좋아질 거예요. Neovim 유저라면 nvim-treesitter에 R 파서를 추가하는 것만으로 바로 혜택을 보실 수 있고요. VS Code에서는 R 확장이 Tree-sitter를 내부적으로 채택하면서 자동완성과 심볼 네비게이션이 개선될 거예요.

한국에서는 의학 통계, 경제학, 사회과학 연구실에서 R을 많이 쓰시는데, 재현 가능한 연구(reproducible research) 관점에서 이런 도구 개선은 큰 의미가 있어요. 동료 리뷰를 할 때 GitHub에서 R 코드의 구조를 더 잘 이해할 수 있게 되고, 주피터 노트북 기반 교육 자료도 품질이 올라갈 거예요.

좀 더 넓게 보면, Tree-sitter 파서를 직접 만들어 기여하는 것도 좋은 오픈소스 기여 포인트예요. 한국어처럼 니치한 도메인 언어나 DSL을 쓰는 회사라면, 자체 Tree-sitter 파서를 만들어서 사내 에디터 지원을 높일 수도 있거든요.

마무리

Tree-sitter는 이제 선택이 아니라 현대 에디터의 기본 인프라예요. R처럼 학계 중심 언어도 이 흐름에 올라탄다는 건, 결국 모든 프로그래밍 언어가 가야 할 길이라는 뜻이기도 합니다.

여러분이 쓰시는 언어나 DSL 중에 에디터 지원이 부족해서 답답했던 게 있으신가요? 어쩌면 직접 Tree-sitter 파서를 만들어볼 기회일지도 몰라요.


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.