웃긴 Lobsters · 2026-09-26

개발자가 찾아낸 자바스크립트 역대급 문법 말장난 ㅋㅋ

핵심 요약
  • 자바스크립트의 태그드 템플릿 리터럴과 단축 객체 표기법을 합쳐 흔한 머스태시 템플릿처럼 보이게 만드는 트릭이 소개되었습니다.
  • 사람 눈에는 일반적인 템플릿 변수 문법처럼 보이지만 JS 엔진은 단축 객체로 파싱해 변수 이름과 값을 동시에 추출할 수 있습니다.
  • 작성자는 이를 '하나의 문자열에 두 가지 파싱이 존재하는 말장난'이라 칭하며 실제 LLM 도구 SDK에도 반영되었다고 밝혔습니다.
요약 해외의 한 개발자가 자바스크립트의 문법적 특성을 이용해 발견한 기발한 '말장난(Pun)' 트릭을 소개해 개발자 커뮤니티에서 소소한 화제를 모았습니다. 글쓴이는 셰익스피어의 희곡 속 언어유희를 예로 들며 말장난의 본질을 설명합니다. 셰익스피어가 단어의 품사를 절묘하게 바꾸거나 문맥적 이중 의미를 활용했듯, 프로그래밍 언어의 문법에서도 두 가지 방식으로 해석되는 말장난이 가능하다는 것입니다. 그가 공개한 비결은 자바스크립트의 태그드 템플릿 리터럴(Tagged Template Literal)과 객체 축약 표기법(Object Shorthand)의 조합입니다. 웹 개발에서 머스태시(Mustache), 핸들바, 진자2(Jinja2), 뷰(Vue) 등 수많은 템플릿 엔진은 중괄호 두 개를 감싸는 '{{ 변수 }}' 문법을 흔히 사용합니다. 글쓴이는 자바스크립트 태그 함수 안에서 `${{ url }}` 형태로 작성하면, 사람이 보기에는 익숙한 머스태시 템플릿 문법처럼 보이지만, 자바스크립트 인터프리터 입장에서는 템플릿 리터럴의 보간식 `${ ... }` 안에 `{ url: url }` 형태의 단축 객체가 들어간 것으로 정상 파싱된다는 점을 짚어냈습니다. 이 트릭을 활용하면 별도의 템플릿 파서를 구현하지 않고도 태그 함수(prompt)가 객체의 키 이름과 전달된 값을 온전히 파악해 LLM 프롬프트 관측 도구(Helicone)에 적합한 메타데이터 형태로 변환할 수 있습니다. 작성자는 보는 사람과 기계가 서로 다른 문법으로 인식하는 이 절묘한 일치를 "하나의 문자열에 두 가지 파싱이 존재하는 최고의 말장난"이라며, 실제로 2024년 헬리콘(Helicone) 공식 SDK에도 반영된 아이디어라고 유쾌하게 밝혔습니다.
Sponsored · 광고