본문으로 건너뛰기
cd /languages
오래된 .NET프로그래밍완전한 그래프 지원

Maguyva의 C# 지원: .NET 코드베이스를 위한 더 안전한 리팩터링

Maguyva는 AST 파싱과 심볼 추출로 C#을 지원하여, AI 에이전트가 .NET 서비스, LINQ 중심의 비즈니스 로직, 공유 라이브러리, 오래된 엔터프라이즈 저장소 전반에서 작업할 수 있게 합니다.

성숙한 .NET 코드베이스에서 중요한 것

AI 도구를 사용하는 많은 팀은 그린필드 JavaScript가 아니라 .NET 환경에 살고 있습니다. API, 워커 프로세스, 공유 모델, 내부 라이브러리, 그리고 수년간 쌓인 비즈니스 로직을 갖고 있죠. 문제는 LLM이 C# 문법을 뽑아낼 수 있는지가 아닙니다. 잘못된 수정 하나가 서비스, 모델, 공유 추상화 전반으로 파급될 수 있는 저장소 안에서 근거를 잃지 않을 수 있는지가 진짜 문제입니다.

C# 페이지가 “지원함”보다 더 구체적이어야 하는 이유가 바로 여기에 있습니다.

Maguyva가 C#에서 실제로 추출하는 것

Maguyva는 using import를 정규화하고, 정의에서 ?, [] 같은 nullable 및 배열 접미사를 제거하며, 생성자 형태의 호출 노드를 제네릭 괄호를 벗겨낸 인스턴스화로 처리합니다. 이런 디테일은 클래스가 많은 C# 저장소에서 실제 도메인 타입 주변의 그래프를 더 깔끔하게 만들어주므로 유용합니다.

설정은 또한 상당량의 BCL 및 LINQ 노이즈를 필터링합니다. 이는 듣기보다 훨씬 중요합니다. 성숙한 .NET 코드베이스에서 프레임워크 호출이 지배하는 그래프는 그다지 도움이 되지 않습니다. 진짜 유용한 그래프는 저장소 고유의 컨트롤러, 서비스, DTO, 헬퍼 클래스가 여전히 두드러지는 그래프입니다.

.NET 코드베이스를 위한 유용한 MCP 워크플로

실전 흐름은 보통 다음으로 시작합니다.

  • 컨트롤러, 서비스, DTO, 모델 이름을 알고 있을 때는 find_symbol
  • 인바운드 사용처가 많을 수 있는 공유 서비스나 타입을 수정하기 전에는 dependency_search
  • 경로가 여러 레이어에 걸쳐 있을 때 “이 요청을 컨트롤러에서 리포지토리까지 따라가줘” 같은 프롬프트에는 get_task_context

이 페이지가 유용한 경우

이 페이지는 장난감 프로젝트가 아니라 실제 .NET 코드베이스 안에서 AI 지원을 원하는 팀을 위한 것입니다. 주변 시스템이 .NET보다 JVM에 가깝다면 Java와 비교해 보세요. C# 레이어가 더 큰 폴리글랏 시스템의 일부일 뿐이라면, 인접한 TypeScript 페이지도 대체로 관련이 있습니다.

가장 적합한 경우

  • >웹 엔드포인트, 작업(job), 공유 라이브러리가 뒤섞인 ASP.NET, 워커 서비스, 내부 플랫폼 저장소.
  • >LINQ, 비동기 흐름, 프레임워크 추상화가 실제 실행 경로를 가려버리는 성숙한 .NET 자산을 유지보수하는 팀.
  • >비즈니스 로직을 다시 작성하기 전에 에이전트가 계층화된 .NET 코드에서 근거를 잃지 않는지 검증하는 팀.

에이전트 워크플로

  • >비즈니스 로직을 수정하기 전에 컨트롤러, 서비스, 리포지토리 경로를 따라갑니다.
  • >모델, DTO, 공유 유틸리티가 저장소 전체에서 어디서 인스턴스화되는지 확인합니다.
  • >에이전트가 무언가를 다시 작성하기 전에 주변의 LINQ나 비동기 패턴을 파악합니다.

엔진 세부 정보

  • >`using` 접두사는 임포트에서 정규화되고, `?`나 `[]` 같은 nullable 또는 배열 접미사는 심볼 정의에서 제거됩니다.
  • >인스턴스화는 제네릭 괄호 제거가 적용된 호출 노드를 사용하여, 그래프에서 생성자와 유사한 사용을 읽기 쉽게 유지합니다.
  • >설정에서 대량의 BCL 및 LINQ 노이즈를 명시적으로 필터링하여 리포지토리 고유의 서비스와 모델이 더 쉽게 드러나도록 합니다.

유용한 MCP 진입점

  • find_symbol

    곧 건드릴 컨트롤러, 서비스, DTO, 공유 타입 이름을 알고 있을 때 사용하세요.

  • dependency_search

    애플리케이션 전반에서 사용되는 핵심 서비스나 모델을 편집하기 전에 수신 순회를 사용하세요.

  • get_task_context

    레이어가 나뉜 .NET 코드베이스에서 "이 요청을 컨트롤러부터 리포지토리까지 추적" 같은 프롬프트에 유용합니다.