C# code review skill. Analyzes code quality from OOP, SOLID, GoF design pattern, modern C# features, and performance perspectives. Use before pull requests, when optimizing code, or auditing legacy codebases.
# 코드 리뷰 결과
## 요약
- 파일: {파일 경로}
- 종합 평가: {우수/양호/개선 필요/심각}
- 주요 이슈: {N}건
- .NET 버전 준수: {.NET 8/9 기능 활용도}
## SOLID 원칙 분석
### SRP 위반 (심각도: 높음/보통/낮음)
- 위치: `ClassName.cs:line`
- 문제: {설명}
- 개선안: {코드 예시 포함}
### OCP 위반
...
## 최신 C# 기능 적용 기회
### {기능명} 권장
- 위치: `file.cs:line`
- 현재: {기존 코드}
- 개선: {최신 C# 문법}
- 이점: {설명}
## 성능 이슈
### {이슈 제목} (심각도: 높음/보통/낮음)
- 위치: `file.cs:line`
- 문제: {영향 포함 설명}
- 현재: {문제 코드}
- 개선: {최적화 코드}
- 효과: {예상 개선점}
## 비동기 코드 이슈
### {이슈 제목}
- 위치: `file.cs:line`
- 문제: {설명}
- 위험: {데드락/성능/기타}
- 해결: {코드 수정}
## 적용 가능한 디자인 패턴
### {패턴명} 패턴 권장
- 현재 코드: {문제점}
- 적용 시 이점: {설명}
- 예시 코드: {간략 예시}
## 보안 우려사항
### {이슈 제목} (심각도: 심각/높음/보통/낮음)
- 위치: `file.cs:line`
- 취약점: {설명}
- 해결: {코드 수정}
## 코드 품질 이슈
### {이슈 제목}
- 위치: `file.cs:line`
- 현재: {코드}
- 개선: {코드}
## 우선순위별 개선 사항
1. [심각] {보안 이슈}
2. [높음] {SOLID 위반, 성능 이슈}
3. [보통] {코드 품질, 최신 기능 적용}
4. [낮음] {스타일 개선}
가이드라인
수정이 필요한 이슈만 보고합니다. 긍정적 피드백은 포함하지 않습니다.
구체적인 코드 예시와 함께 개선안을 제시합니다.
과도한 엔지니어링을 권장하지 않습니다.
맥락을 고려한 실용적인 제안을 합니다.
보안 이슈를 최우선으로 다룹니다.
대상 .NET 버전을 고려하여 기능을 제안합니다.
최신 기능과 팀 친숙도 사이의 균형을 고려합니다.
1---2name: csharp-code-review3description: C# code review skill. Analyzes code quality from OOP, SOLID, GoF design pattern, modern C# features, and performance perspectives. Use before pull requests, when optimizing code, or auditing legacy codebases.4---56# C# 코드 리뷰 스킬78OOP 원칙, SOLID 원칙, GoF 디자인 패턴, 최신 C# 기능, 성능 관점에서 C# 코드를 체계적으로 리뷰합니다.910**중요: 모든 리뷰 결과는 반드시 한국어로 작성합니다.** 코드 식별자, 기술 용어, 패턴 이름 등은 원문 그대로 유지하되, 설명·문제점·개선안 등 서술 부분은 한국어를 사용합니다.1112## 인자1314- `$ARGUMENTS[0]`: 대상 파일 또는 디렉토리 경로 (선택, 미지정 시 최근 수정된 .cs 파일을 탐색)1516## 실행 단계1718### 1단계: 리뷰 대상 식별19사용자가 파일을 지정하지 않은 경우:20- 최근 수정된 `.cs` 파일 확인21- 또는 사용자에게 리뷰할 파일/디렉토리 지정 요청2223### 2단계: 코드 분석24대상 코드를 읽고 아래 관점에서 분석합니다.2526## 리뷰 체크리스트2728### OOP 4대 원칙29| 원칙 | 리뷰 항목 |30|------|-----------|31| **캡슐화** | private 필드, 프로퍼티 접근, 구현 세부사항 은닉 |32| **상속** | 적절한 상속 계층, 상속보다 합성 우선 |33| **다형성** | 인터페이스/추상 클래스 활용, virtual 메서드 적절성 |34| **추상화** | 적절한 추상화 수준, 불필요한 세부사항 노출 |3536### SOLID 원칙37| 원칙 | 리뷰 항목 | 위반 징후 |38|------|-----------|-----------|39| **SRP** | 클래스가 단일 책임을 갖는가? | 여러 이유로 클래스가 변경됨, 메서드 과다 |40| **OCP** | 확장에 열려있고 수정에 닫혀있는가? | 새 기능 추가 시 기존 코드 수정 필요, switch/if-else 체인 |41| **LSP** | 하위 타입이 상위 타입을 대체할 수 있는가? | 하위 클래스에서 예외 발생, 빈 메서드 오버라이드 |42| **ISP** | 클라이언트별로 인터페이스가 분리되어 있는가? | NotImplementedException, 미사용 메서드 |43| **DIP** | 추상화에 의존하는가? | new 직접 인스턴스화, 구체 클래스 타입 의존 |4445### GoF 디자인 패턴 적용 기회46코드에서 다음 패턴을 적용할 수 있는 부분을 식별합니다:4748**생성 패턴**49- 복잡한 객체 생성 → Builder50- 객체 생성 로직 분리 → Factory Method / Abstract Factory51- 전역 단일 인스턴스 → Singleton (주의: 남용 금지)5253**구조 패턴**54- 호환되지 않는 인터페이스 연결 → Adapter55- 동적 기능 추가 → Decorator56- 복잡한 하위 시스템 단순화 → Facade57- 객체 트리 구조 → Composite5859**행동 패턴**60- 교체 가능한 알고리즘 → Strategy61- 상태에 따른 행동 변경 → State62- 객체 간 통신 → Observer / Mediator63- 요청 처리 체인 → Chain of Responsibility64- 실행 취소/재실행 → Command + Memento6566### 최신 C# 기능 (C# 12/13)67| 기능 | 권장 시점 |68|------|-----------|69| **Primary constructors** | 간단한 초기화를 가진 클래스 |70| **Collection expressions** | 배열/리스트 초기화 `[1, 2, 3]` |71| **required properties** | 생성자 없이 필수 초기화 보장 |72| **init-only setters** | 불변 객체 |73| **record types** | 값 기반 동등성, DTO |74| **Pattern matching** | 복잡한 조건문, 타입 검사 |75| **File-scoped namespaces** | 들여쓰기 축소 |76| **Raw string literals** | 여러 줄 문자열, JSON, SQL |7778### 성능 리뷰79| 카테고리 | 리뷰 항목 |80|----------|-----------|81| **메모리 할당** | 핫 경로에서 불필요한 할당, Large Object Heap (>= 85KB) |82| **Async/Await** | 차단 호출 (.Result, .Wait()), ConfigureAwait 누락 |83| **컬렉션** | 잘못된 컬렉션 타입, LINQ 다중 열거 |84| **문자열** | 루프 내 문자열 결합, StringBuilder 미사용 |85| **박싱** | 불필요한 값 타입 박싱 |86| **Span/Memory** | Span<T>, Memory<T> 없는 버퍼 연산 |8788### 비동기 코드 리뷰89- [ ] `.Result` 또는 `.Wait()` 호출 없음 (데드락 위험)90- [ ] 라이브러리 코드에서 `ConfigureAwait(false)` 사용91- [ ] 적절한 CancellationToken 전파92- [ ] 캐시된 결과가 있는 핫 경로에 `ValueTask` 사용93- [ ] 스트리밍 데이터에 `IAsyncEnumerable` 사용94- [ ] 이벤트 핸들러 외 async void 없음9596### 코드 품질 리뷰97- [ ] 명명 규칙 (PascalCase, camelCase, _privateField, Async 접미사)98- [ ] null 안전성 (nullable reference types, `?.`, `??`, `??=`)99- [ ] 예외 처리 (구체적 예외, `when` 필터, 적절한 로깅)100- [ ] IDisposable 패턴 준수 (using 문, Dispose 구현)101- [ ] 컬렉션 사용 (적절한 타입 선택, 효율적인 LINQ)102- [ ] 매직 넘버/문자열은 상수로 선언103- [ ] 중복 코드 제거104- [ ] 상속 불필요 클래스에 `sealed` 적절히 사용105106### 보안 리뷰107- [ ] 입력 유효성 검사 (SQL Injection, XSS, 경로 탐색)108- [ ] 민감 데이터 처리 (하드코딩된 비밀 없음, 적절한 암호화)109- [ ] 인증/권한 확인110- [ ] 보안 난수 생성 (`Random` 보안 용도 사용 금지)111- [ ] XML External Entity (XXE) 방지112113## 3단계: 리뷰 결과 출력114115### 출력 형식116117모든 내용은 **한국어**로 작성합니다. 코드 식별자와 기술 용어는 원문을 유지합니다.118119```markdown120# 코드 리뷰 결과121122## 요약123- 파일: {파일 경로}124- 종합 평가: {우수/양호/개선 필요/심각}125- 주요 이슈: {N}건126- .NET 버전 준수: {.NET 8/9 기능 활용도}127128## SOLID 원칙 분석129130### SRP 위반 (심각도: 높음/보통/낮음)131- 위치: `ClassName.cs:line`132- 문제: {설명}133- 개선안: {코드 예시 포함}134135### OCP 위반136...137138## 최신 C# 기능 적용 기회139140### {기능명} 권장141- 위치: `file.cs:line`142- 현재: {기존 코드}143- 개선: {최신 C# 문법}144- 이점: {설명}145146## 성능 이슈147148### {이슈 제목} (심각도: 높음/보통/낮음)149- 위치: `file.cs:line`150- 문제: {영향 포함 설명}151- 현재: {문제 코드}152- 개선: {최적화 코드}153- 효과: {예상 개선점}154155## 비동기 코드 이슈156157### {이슈 제목}158- 위치: `file.cs:line`159- 문제: {설명}160- 위험: {데드락/성능/기타}161- 해결: {코드 수정}162163## 적용 가능한 디자인 패턴164165### {패턴명} 패턴 권장166- 현재 코드: {문제점}167- 적용 시 이점: {설명}168- 예시 코드: {간략 예시}169170## 보안 우려사항171172### {이슈 제목} (심각도: 심각/높음/보통/낮음)173- 위치: `file.cs:line`174- 취약점: {설명}175- 해결: {코드 수정}176177## 코드 품질 이슈178179### {이슈 제목}180- 위치: `file.cs:line`181- 현재: {코드}182- 개선: {코드}183184## 우선순위별 개선 사항1851. [심각] {보안 이슈}1862. [높음] {SOLID 위반, 성능 이슈}1873. [보통] {코드 품질, 최신 기능 적용}1884. [낮음] {스타일 개선}189```190191## 가이드라인192- 수정이 필요한 이슈만 보고합니다. 긍정적 피드백은 포함하지 않습니다.193- 구체적인 코드 예시와 함께 개선안을 제시합니다.194- 과도한 엔지니어링을 권장하지 않습니다.195- 맥락을 고려한 실용적인 제안을 합니다.196- 보안 이슈를 최우선으로 다룹니다.197- 대상 .NET 버전을 고려하여 기능을 제안합니다.198- 최신 기능과 팀 친숙도 사이의 균형을 고려합니다.
Run npx skillmds@latest add jeongheonk/csharp-code-review in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
C# code review skill. Analyzes code quality from OOP, SOLID, GoF design pattern, modern C# features, and performance perspectives. Use before pull requests, when optimizing code, or auditing legacy codebases. It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
jeongheonk (@jeongheonk) published this skill. Their other Agent Skills are listed on their SkillMD profile.