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

Go 코드를 그대로 끼워 넣는 스크립트 언어, Tiny가 보여주는 임베디드 언어의 매력

Hacker News 원문 보기
Go 코드를 그대로 끼워 넣는 스크립트 언어, Tiny가 보여주는 임베디드 언어의 매력

작은 언어 하나가 던지는 질문

새 프로그래밍 언어 소식은 늘 넘쳐나지만, 이번에 소개할 Tiny는 결이 좀 달라요. 온갖 기능을 다 욱여넣은 언어가 아니라 '동적 타입을 가진 인터프리터 언어'라는 단출한 뼈대 위에, Go 네이티브 함수를 코드 안에 곧바로 끼워 넣을 수 있다는 한 가지 매력 포인트를 얹은 프로젝트거든요.

용어부터 쉽게 풀어볼게요. 인터프리터 언어가 뭐냐면, 우리가 쓴 코드를 미리 기계어로 통째로 번역(컴파일)해 두는 게 아니라 실행하는 순간 한 줄씩 읽어 내려가며 바로 처리하는 방식이에요. 파이썬이나 자바스크립트가 대표적이죠. 동적 타입은 변수에 '너는 정수야' 하고 타입을 못 박지 않는 성격이에요. x = 3 했다가 바로 다음 줄에서 x = "hello"로 바꿔도 군말 없이 받아주거든요. 그만큼 빠르게 짜서 빠르게 굴려보기에 좋은 언어죠.

핵심은 '호스트 언어와의 다리'

Tiny에서 가장 눈여겨볼 부분은 단연 inline Go native function이에요. 이게 뭐냐면, 스크립트만으로는 표현하기 번거롭거나 속도가 느린 작업을 Go 함수로 직접 짜서 언어 안에 등록해두고, 스크립트에서는 그냥 평범한 함수처럼 불러 쓰는 구조예요. 비유하자면 통역사를 끼고 외국인과 대화하다가, 정말 중요한 대목에서는 그 외국인이 직접 한마디 거드는 느낌이랄까요. 무거운 연산, 파일 입출력, 네트워크 호출 같은 건 빠른 Go가 처리하고, 흐름을 조립하는 가벼운 로직은 스크립트가 맡는 식으로 역할을 나눌 수 있어요.

이런 구조가 왜 좋냐면요, 프로그램을 다시 빌드하지 않고도 동작을 바꿀 수 있기 때문이에요. 게임 몬스터의 행동, 서버의 규칙 설정, 데이터 변환 파이프라인 같은 걸 스크립트 파일로 빼두면, Go로 만든 본체는 그대로 두고 스크립트만 고쳐서 동작을 바꿀 수 있거든요. 이걸 보통 '임베디드 스크립팅(내장형 스크립트)'이라고 불러요.

인터프리터는 어떻게 만들까

Tiny 같은 트리 순회형(tree-walking) 인터프리터는 대체로 세 단계를 거쳐요. 먼저 렉서(lexer)x = 3 + 4 같은 글자 덩어리를 의미 있는 토큰 단위(x, =, 3, +, 4)로 잘게 쪼개요. 그다음 파서(parser)가 이 토큰들을 문법 규칙에 맞춰 트리 모양 구조인 AST(추상 구문 트리)로 엮어요. 마지막으로 인터프리터가 이 트리를 위에서부터 쭉 따라 걸어 내려가며 실제로 값을 계산하죠. '3 더하기 4 노드'를 만나면 양쪽 가지를 계산해 7을 돌려주는 식이에요.

이 구조를 직접 만들어보면 평소 무심코 쓰던 변수 스코프, 함수 호출, 연산자 우선순위가 사실은 누군가 일일이 규칙으로 짜둔 결과라는 걸 체감하게 돼요. 그래서 작은 언어 만들기는 예전부터 최고의 공부 소재로 꼽혀 왔고요.

업계에는 비슷한 친구들이 많아요

사실 Go 생태계에는 임베디드 스크립트 언어가 꽤 있어요. 루아를 Go로 옮긴 gopher-lua, Go스러운 문법의 Tengo, 구글이 만든 설정용 언어 Starlark, 자바스크립트를 Go에서 돌리는 goja, 그리고 Go 코드를 인터프리터로 실행하는 공식 실험작 yaegi까지 다양하죠. Tiny는 이들 사이에서 '아주 작고, 동적이고, Go 함수와의 연결이 쉬운' 자리를 노리는 셈이에요. 기능 경쟁보다는 구조가 단순해서 읽고 이해하기 좋은 게 강점이고요.

한국 개발자에게

당장 실무 핵심 언어로 쓰자는 이야기는 아니에요. 다만 두 가지 가치가 분명해요. 하나는 공부용이에요. 인터프리터가 어떻게 도는지 궁금했다면 이렇게 작은 코드베이스가 최고의 교재거든요. 토르스텐 발의 책 《Writing An Interpreter In Go》와 함께 보면 더 좋고요. 다른 하나는 설계 아이디어예요. 여러분이 Go로 서버나 도구를 만든다면, 자주 바뀌는 규칙을 코드에 박아두는 대신 작은 스크립트 레이어로 빼는 패턴을 떠올려볼 수 있어요.

작게 만들었지만 던지는 질문은 작지 않은 프로젝트예요. 여러분이라면 프로젝트의 어떤 부분을 '스크립트로 빼서 다시 빌드 없이 바꾸고 싶다'고 느끼시나요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

파이썬으로 자동화를 시작해보세요

파이썬 기초부터 자동화까지 실전 강의.

파이썬 강의 보기

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

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

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

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

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