JetBrains, AI 코딩 에이전트용 '모던 고 가이드라인' 공개
최근 30일 조회수 — 좋아요 —핵심 요약
JetBrains가 AI 에이전트에게 go.mod 버전에 맞는 최신 Go 문법만 제안하도록 돕는 오픈소스 스킬 모음을 공개했다.
JetBrains가 자사 Go 통합개발환경(IDE) 골랜드(GoLand) 팀 명의로 AI 코딩 에이전트가 최신 Go 문법을 쓰도록 돕는 스킬 모음 ‘모던 고 가이드라인(Modern Go Guidelines)‘을 공개했다. GitHub 저장소로 배포되며, 터미널에서 동작하는 AI 코딩 에이전트와 함께 쓰도록 만들어졌다.
JetBrains 블로그에 따르면 이 도구를 만든 이유는 단순하다. AI 코딩 에이전트가 Go 코드를 짜긴 하지만 옛날 문법을 쓰는 경우가 많다는 것이다. 학습 데이터에 오래된 코드가 더 많이 섞여 있고, 최신 언어 기능이나 표준 라이브러리 추가분은 애초에 학습 시점 이후에 나온 것이라 모델이 아예 모를 수도 있다. 모던 고 가이드라인은 이 격차를 메우려고 만든 최신 문법 참고 자료로, 프로젝트가 실제로 지원하는 Go 버전에 맞는 기능만 골라 쓰도록 에이전트를 유도한다.
핵심은 버전 매칭이다. 이 스킬은 Go 1.0부터 1.27까지의 언어 기능과 표준 라이브러리 추가 사항을 다루는데, 프로젝트의 go.mod 파일에 적힌 go 지시자를 읽어서 그보다 새로운 버전의 기능은 아예 제외한다. 예를 들어 go 1.25로 선언된 프로젝트라면 에이전트는 Go 1.25에서 도입된 sync.WaitGroup.Go 같은 기능은 제안받지만, Go 1.26에서 추가된 errors.AsType는 제안받지 않는다. 이렇게 하면 에이전트가 생성한 코드가 실제로 컴파일되지 않는 상황을 막을 수 있고, 쓸 수도 없는 버전의 기능을 설명하는 데 토큰을 낭비하지도 않는다.
동작 방식은 go-modern-guidelines라는 명령줄 인터페이스(CLI) 도구를 축으로 한다. 이 도구는 go-modern-guidelines 플러그인에 포함된 use-modern-go 스킬을 통해 에이전트에게 언제, 어떻게 CLI를 호출할지 알려준다. 서브커맨드는 두 가지다. list는 특정 Go 파일이나 버전에 맞는 짧은 규칙 목록을 반환하고, explain은 개별 규칙에 대한 상세 설명과 코드 예시를 제공한다. 예컨대 아래처럼 파일 경로나 버전을 지정해 호출할 수 있다.
go-modern-guidelines list --file-path ./internal/worker/worker.go
go-modern-guidelines list --go-version 1.27
list 출력은 최신 규칙부터 나열되며 각 항목에는 sync_waitgroup_go, testing_t_context, json_omitzero 같은 고유 식별자(ID)가 붙는다. 이런 짧은 요약과 상세 설명을 분리한 구조를 JetBrains는 “점진적 공개(progressive disclosure)“라고 부른다. 편집 작업 전에는 간단한 목록만 보여주고, 에이전트가 특정 규칙의 세부 내용이 필요할 때만 explain으로 자세한 예시를 불러오게 해 불필요한 문맥(context) 부담을 줄이는 방식이다.
설치는 마켓플레이스나 로컬 저장소를 통해 이뤄지며, 통합에는 Go 툴체인이 필요하다. 로컬 캐시에서 동작하고 프로젝트 파일 자체는 건드리지 않는다. JetBrains는 이 스킬을 골랜드 팀이 Go 커뮤니티에 내놓는 오픈소스 기여로 소개했으며, 지원되는 여러 AI 코딩 에이전트에서 사용할 수 있다고 밝혔다.1
Footnotes
-
JetBrains Blog, “Help AI Coding Agents Write Up-To-Date Code With Modern Golang Skills” ↩
읽기 목록은 이 브라우저에 저장됩니다.
출처
- Help AI Coding Agents Write Up-To-Date Code With Modern Golang Skills - The JetBrains Blog — JetBrains Blog
이 글은 위 출처를 근거로 자동 생성된 뒤 발행됐습니다. 원문을 함께 확인해 주세요. 교차 보도 없이 단독 출처로 작성됐습니다.