.NET Tools How-To's

JetBrains AI Assistant를 사용하여 코드 변경을 보다 쉽게 이해하기

Read this post in other languages:

소프트웨어 개발자들은 대부분의 시간을 코드 베이스를 읽고 이해하는 데 보냅니다. 빠르게 변경되는 코드 베이스를 읽고 이해하는 일은 부담스러울 수 있으며, 특히 원래 작성자에게 연락하거나 이전 문서를 이용하기 어려운 경우에 더욱 그렇습니다. 다행히 코드는 결코 거짓말을 하지 않습니다. 입력된 내용을 분석 및 요약하는 LLM 및 AI Assistant의 기능이 향상됨에 따라 이전 작업에 대한 이해도를 높이고 코드 베이스를 확장하거나 수정하기 위한 계획을 세울 수 있습니다.

이 글에서는 JetBrains AI Assistant를 사용하여 Git 저장소의 과거 커밋을 요약하고, 기여자의 작업을 더 구체적으로 요약하며, 심볼 내에서 기여자의 작업을 더 깊이 이해하는 방법을 살펴보겠습니다. 끝에서는 직접 사용해 볼 수 있는 몇 가지 프롬프트 예시를 보여드리겠습니다.

시작하기 전에 JetBrains AI Assistant 플러그인이 활성화되어 있어야 하므로, 유효한 JetBrains AI Assistant 서비스 구독이 필요합니다.

JetBrains AI Assistant로 커밋 요약

JetBrains IDE에는 기존 저장소 내의 모든 브랜치와 커밋을 볼 수 있는 세계적 수준의 소스 제어 클라이언트가 있습니다. JetBrains 도구 모음으로 작업해 본 경험이 있다면 Git Tool Window(Git 도구 창) 및 기존 코드 베이스 탐색에 익숙할 것입니다. AI Assistant가 활성화되면 여러 커밋을 강조 표시한 후, ‘Explain Commits with AI Assistant'(AI Assistant로 커밋 설명) 옵션을 선택할 수 있습니다.

AI Assistant를 사용한 커밋 설명을 보여주는 컨텍스트 메뉴가 있는 JetBrains Rider Git 도구 창

그러면 새로운 AI Assistant 채팅이 생성되고 선택한 커밋이 컨텍스트로 제공됩니다. AI Assistant는 Git 커밋과 해당 로그 정보만 JetBrains 서비스로 보낸다는 점을 기억하세요. AI Assistant는 파일 자체를 보내지 않지만, 로컬에서는 추가적인 정보 제공을 위해 참조 파일의 내용을 표시할 수 있습니다.

커밋을 컨텍스트와 설명으로 제공하는 JetBrains AI Assistant 채팅

스크린샷에서 볼 수 있듯이 선택한 커밋 내의 모든 코드 변경 내용에 대한 요약이 표시됩니다. 우리가 수행한 작업을 제외하도록 채팅 범위를 좁힐 수 있습니다. 여기에서는 기존 채팅에 “Summarize all the work by everyone except Khalid Abuhakmeh”(Khalid Abuhakmeh를 제외한 모든 이의 모든 작업 요약)를 입력해 보았습니다.

Khalid Abuhakmeh를 제외한 모든 사람의 작업을 보여주는 JetBrains AI Assistant

자신의 기존 코드 베이스로 테스트하려면 프롬프트에서 자신의 이름으로 변경하세요. 향후 채팅에 사용할 수 있도록 이 메시지를 저장하면 워크플로 속도를 더욱 높일 수 있습니다.

또한, ‘Group all summaries by contributors'(모든 요약을 기여자별로 그룹화) 프롬프트를 사용하여 요약을 기여자별로 그룹화하는 방법도 유용합니다.

작업을 기여자별로 그룹화하여 보여주는 JetBrains AI Assistant

채팅 응답을 읽으면서 관심 있는 심볼을 볼 수 있습니다. 이는 특정 심볼에 대한 설명을 더 세부적으로 다듬을 수 있는 좋은 기회입니다. 여기서는 HTMX.NET 코드 베이스로 작업하고 있으므로 “What work did Ricky do in HtmxHeadersTagHelperTests“(HtmxHeadersTagHelperTests에서 Ricky가 수행한 작업)라는 프롬프트를 사용하여 HtmxHeadersTagHelperTests 클래스에 영향을 미치는 모든 변경 사항을 보는 것도 가능합니다.

csharp 클래스에서 Ricky가 수행한 작업을 보여주는 JetBrains AI Assistant

AI Assistant 요약을 더욱 구체화하기 위한 아이디어를 추가로 소개하면 다음과 같습니다.

  • What work was performed within JavaScript files?(JavaScript 파일 내에서 어떤 작업이 수행되었는가?)
  • Who made the most changes within these commits?(이러한 커밋에서 가장 많은 변경을 수행한 사람은 누구인가?)
  • How many test files are within these commits?(이러한 커밋에는 몇 개의 테스트 파일이 있는가?)
  • Did any two contributors work on the same file within these commits?(이러한 커밋 내에서 두 명의 기여자가 동일한 파일로 작업했는가?)
  • How many commits were there, excluding merge commits?(병합 커밋을 제외하고 몇 개의 커밋이 있었는가?)
  • Give me the selected commit history in a CSV format using only commas and quoted values.(선택한 커밋 내역을 쉼표와 인용 부호 처리된 값만 사용하여 CSV 형식으로 알려주세요)

이러한 프롬프트를 이용하면 상황을 명확하게 파악할 수 있는 동시에 개발 팀 내의 다른 사람들과 정보를 공유하는 데에도 유용합니다. 참고로, 항상 응답의 정확성과 완전성을 재차 확인하는 것이 좋습니다.

결론

JetBrains AI Assistant는 자신과 다른 사람이 기존 코드 베이스 내에서 이미 수행한 작업을 검색하고 그에 대한 생각을 정리 및 구체화하는 데 도움을 줄 수 있습니다. 이러한 이해를 바탕으로 아이디어를 더 효과적으로 처리하고 팀원에게 효과적으로 전달할 수 있습니다. 효과적인 아이디어 교환은 팀 효율성을 개선하고, 버그를 발견하여 제거하며, 소프트웨어를 개선할 수 있습니다.

이 글에서는 코드 베이스에 이미 적용된 작업을 찾을 때 JetBrains AI Assistant를 사용해 볼 수 있는 몇 가지 아이디어를 다루었습니다. 이 아이디어를 바탕으로 JetBrains AI Assistant를 직접 사용해 보세요. 신규 사용자를 위한 7일 평가판을 이용해 보세요. 기존 사용자라면 자신이 일상적인 워크플로에서 사용 중인 다른 프롬프트에 대한 아이디어를 알려주세요.

게시물 원문 작성자

Jessie Cho

Khalid Abuhakmeh

image description

Discover more