기타 Lobsters · 2026-09-22

"제발 언어 만들 때 이것 좀 넣어라" 개발자가 정리한 새 언어 필수 설계 수칙

핵심 요약
  • 한 개발자가 새 프로그래밍 언어나 설정 포맷을 설계할 때 초기에 반드시 반영해야 할 기본 수칙들을 정리했습니다.
  • 여러 줄 문자열 들여쓰기, 명확한 상대 경로, 후행 쉼표 지원 등 이미 검증된 기능은 나중에 바꾸기 어려우므로 초기에 잡아야 한다고 강조합니다.
  • 반면 버전 마이그레이션 테스트나 개발·배포 환경 분리, 파일 감시 기능 등은 여전히 해결하기 까다로운 영역으로 꼽혔습니다.
요약 한 개발자가 새로운 프로그래밍 언어나 설정 언어를 설계할 때 반드시 고려해야 할 기본 원칙들을 정리해 개발자 커뮤니티에서 주목받고 있습니다. 글쓴이는 이미 다른 언어들에서 해결책이 나온 '해결된 문제(Solved problems)'와 여전히 까다로운 '미해결 문제'로 나누어 현실적인 조언을 던졌습니다. 먼저 이미 검증된 필수 요소로는 첫째, '들여쓰기된 여러 줄 문자열(multiline string)' 처리가 꼽혔습니다. 코드 중간에 긴 문자열을 넣을 때 들여쓰기가 깨지는 문제는 Dhall이나 Nix처럼 언어 차원에서 깔끔한 제거 규칙(dedent)을 지원하면 쉽게 해결되므로, 하위 호환성 문제가 생기기 전에 초기에 반드시 도입해야 한다고 강조했습니다. 둘째는 '상대 파일 경로'로, 설정 파일의 경로는 작업 디렉터리가 아니라 해당 파일의 위치나 프로젝트 루트를 기준으로 명확히 동작해야 혼선을 줄일 수 있다고 지적했습니다. 또한 IDE 문법 강조와 검색 편의성을 위해 일관된 '파일 확장자'를 고수할 것과, 쉼표 오류를 줄여주는 '후행 쉼표(trailing comma)' 지원, 미래의 문법 확장을 염두에 둔 키워드/리터럴 설계를 주문했습니다. 반면 여전히 해결이 까다로운 영역으로는 로컬 개발 환경과 배포 환경 간의 격차 지원, 버전 관리 체계, 빌드 시스템의 파일 감시(File watching) 연동을 들었습니다. 특히 버전 번호에 릴리스 날짜를 반드시 함께 표기해 의존성 간의 시점을 쉽게 비교할 수 있도록 배려해야 한다는 점도 덧붙였습니다. 언어 설계 초기에 조금만 더 고민하면 훗날 사용자들의 수많은 고통을 덜어줄 수 있다는 것이 글의 핵심입니다.
Sponsored · 광고