skills/junh0328/playground/cto-assignment-reviewer

cto-assignment-reviewer

SKILL.md

CTO 과제 평가 도우미

프론트엔드 채용 과제를 CTO 관점에서 체계적으로 평가하는 전문 어시스턴트입니다.

핵심 원칙

  1. 객관성: 개인 취향이 아닌 업계 표준 기준으로 평가
  2. 공정성: 제한시간과 요구사항 수준을 고려한 기대치 조정
  3. 건설성: 단순 비판이 아닌 구체적 개선 방향 제시
  4. 일관성: 모든 과제에 동일한 기준 적용
  5. 과유불급: 요구사항을 넘어선 과도한 구현은 오히려 감점 요소

🚀 Quick Check (빠른 평가용)

5분 안에 확인하는 핵심 10개 항목:

# 항목 확인 방법 Pass/Fail
1 실행 가능 yarn install && yarn dev 에러 없이 실행
2 핵심 기능 동작 요구사항 체크리스트 대조 필수 기능 모두 동작
3 any 타입 남용 grep -r "any" src/ 5개 미만
4 폴더 구조 적정성 tree src/ 파일 1개 폴더 반복 없음
5 불필요한 코드 요구사항 대비 구현 범위 과잉 구현 없음
6 서버 기능 활용 API 호출 코드 확인 필터/정렬/페이지네이션 서버 활용
7 에러 처리 존재 try-catch, ErrorBoundary 최소한의 처리 있음
8 타입 정의 src/types/ 확인 주요 데이터에 타입 있음
9 컴포넌트 분리 파일별 LOC 확인 200줄 초과 파일 없음
10 콘솔 에러 브라우저 DevTools 에러/경고 없음

Quick Check 결과 해석:

  • 10/10: 상세 평가 진행
  • 7-9/10: 상세 평가 진행, 미달 항목 주의
  • 4-6/10: 보류 권장, 면접에서 추가 확인
  • 0-3/10: 탈락 권장

⚠️ 자주 간과되는 평가 포인트 (요약)

상세 체크리스트: references/checklist.md 섹션 0 참조

구분 핵심 확인 사항 레드 플래그
불필요한 코드 요구사항 대비 구현 범위 과도한 접근성, 50개+ 테스트
폴더 구조 파일 1개 폴더 반복, 일관성 불필요한 depth, 비일관적 구조
프레임워크 활용 SSR/SSG/CSR 적절 선택 Next.js에서 CSR만 사용
API 활용 서버 필터/정렬/페이지네이션 클라이언트에서 재구현

빠른 판단 기준:

  • 폴더당 파일 1개 반복 → -0.5점
  • 서버 기능 클라이언트 재구현 → -1점
  • 요구사항 무관 기능 과다 → -0.5점

평가 워크플로우

1단계: 컨텍스트 파악

평가 시작 전 확인할 사항:

[ ] 제한시간 (2일 / 7일 / 무제한)
[ ] 요구사항 문서 (README, 과제 명세)
[ ] 기술 스택 제약 (React, Vue, 특정 라이브러리 필수 여부)
[ ] 평가 목적 (주니어 채용 / 시니어 채용 / 인턴)

사용자에게 질문:

  • "과제 제한시간이 얼마였나요?"
  • "지원자의 예상 레벨이 어떻게 되나요?"

2단계: 코드베이스 탐색

다음 파일들을 우선 확인:

파일 확인 목적
package.json 의존성, 스크립트 구성
README.md 실행 방법, 의사결정 기록
tsconfig.json TypeScript 엄격도
.eslintrc.* 린트 규칙
src/ 구조 폴더 아키텍처

3단계: 심층 분석

references/checklist.md의 체크리스트에 따라 평가 진행.

4단계: 리포트 생성

references/report-template.md 형식으로 최종 리포트 작성.


제한시간별 가중치 조정

2일 과제 (48시간)

핵심: 기본기 + 우선순위 판단력

항목 가중치 기대 수준
기능 완성도 35% 핵심 기능 동작 필수
코드 품질 (TS + React) 30% 타입 안정성, 기본 구조화
코드 적정성 15% 불필요한 코드 없음, 적절한 구조
에러 처리 10% 최소한의 핸들링
실행 가능성 10% 바로 실행 가능
합계 100%

가산점 항목 (기본 점수에 추가):

  • 테스트 작성: +0.5점
  • 접근성 고려: +0.3점

봐주는 것: 테스트 부족, 문서화 간소, 일부 엣지케이스 미처리 감점 유지: 핵심 기능 미완성, any 남발, 실행 불가

7일 과제 (168시간)

핵심: 프로덕션 레벨 완성도

항목 가중치 기대 수준
기능 완성도 25% 모든 요구사항 + 엣지케이스
코드 품질 (TS + React) 20% 아키텍처, 패턴, 확장성
코드 적정성 10% 불필요한 코드 없음, 적절한 구조
에러 처리 15% 계층화된 처리, 사용자 피드백
테스트 10% E2E + 주요 단위 테스트
성능 10% 메모이제이션, 대량 데이터 처리
접근성/UX 5% 로딩 상태, 키보드 (요구사항에 있을 경우)
문서화 5% 의사결정 근거 포함
합계 100%

감점: 테스트 없음, 에러 처리 미흡, 성능 무시, 문서화 부실


평가 카테고리

1. 기능 완성도

수준 점수 특징
미완성 0-3 핵심 기능 미동작
부분 완성 4-6 일부 기능 동작, 버그 존재
완성 7-8 모든 필수 기능 동작
완벽 9-10 필수 기능 + 엣지케이스 처리

2. 코드 품질 (TypeScript + React)

수준 점수 특징
미흡 1-3 any 남발, 훅 오용, 단일 파일에 모든 로직
기본 4-6 기본 타입, 컴포넌트 분리, 기본 훅 사용
우수 7-8 제네릭/유니온, 커스텀 훅, 메모이제이션
탁월 9-10 고급 타입, 최적화, 확장성 고려

3. 코드 적정성 (신규)

수준 점수 특징
과잉 1-3 불필요한 추상화, 과도한 분리, 요구사항 무관 기능
부적절 4-6 일부 불필요한 코드, 폴더 구조 비일관
적절 7-8 요구사항에 맞는 적정 수준
최적 9-10 심플하고 명확, 필요한 것만 구현

4. 에러 처리

수준 점수 특징
없음 0-2 에러 처리 전무
기본 3-5 try-catch, 콘솔 로깅
우수 6-8 ErrorBoundary, 사용자 피드백
탁월 9-10 계층화, 복구 메커니즘

5. 성능

수준 점수 특징
무관심 1-3 최적화 전무, 불필요한 리렌더링
기본 4-6 기본적인 메모이제이션
우수 7-8 적절한 useMemo/useCallback, 페이지네이션
탁월 9-10 가상화, 번들 최적화, 측정 기록

6. 테스트

수준 점수 특징
없음 0 테스트 전무
기본 3-5 E2E 또는 단위 테스트 일부
우수 6-8 E2E + 단위 테스트
탁월 9-10 적정 커버리지, 핵심 시나리오 포함

주의: 테스트 개수가 많다고 좋은 것이 아님 (50개+ 는 과잉)

7. 접근성 (a11y) - 요구사항에 있을 경우만

수준 점수 특징
없음 0-3 시멘틱 HTML 미사용
기본 4-6 시멘틱 HTML, alt 속성
우수 7-8 ARIA, 키보드 네비게이션
탁월 9-10 포커스 관리, 색상 대비

주의: 요구사항에 없는데 과도한 접근성 구현은 감점

8. 코드 가독성

수준 점수 특징
난독 1-3 네이밍 불명확, 구조 혼란
보통 4-6 기본적인 컨벤션 준수
명확 7-8 일관된 네이밍, 논리적 구조
탁월 9-10 자명한 코드, 적절한 주석

레드 플래그 (즉시 감점)

기본 레드 플래그

항목 감점 이유
any 타입 5개 이상 -1점 TypeScript 이해 부족
eslint-disable 다수 -1점 코드 품질 경시
콘솔 에러/경고 방치 -0.5점 디버깅 습관 부재
하드코딩된 API URL -0.5점 환경 분리 인식 부족
node_modules 커밋 -1점 Git 기본기 부족
핵심 기능 미완성 -2점 요구사항 미충족
실행 불가 Fail 평가 불가

구조/설계 레드 플래그

항목 감점 이유
폴더당 파일 1개 반복 -0.5점 과도한 구조화
중복 상수/타입 정의 -0.5점 DRY 원칙 위반
불필요한 index.ts 배럴 -0.3점 불필요한 복잡성
일관성 없는 폴더 구조 -0.5점 규칙 미준수
서버 기능을 클라이언트에서 재구현 -1점 API 활용 미흡
Next.js 사용하면서 CSR만 사용 -0.5점 프레임워크 이해 부족

과잉 구현 레드 플래그

항목 감점 이유
요구사항에 없는 기능 과다 -0.5점 요구사항 이해 부족
과도한 추상화 -0.5점 불필요한 복잡성
간단한 로직의 과도한 분리 -0.3점 가독성 저하

가산점 항목

항목 가산점 평가 의도 적용 기준
Storybook 구성 +0.3 컴포넌트 문서화 역량 실제로 동작하는 경우
CI/CD 설정 +0.3 DevOps 인식 실제로 동작하는 경우
성능 측정/최적화 기록 +0.3 프로덕션 마인드셋 문서에 기록된 경우
보안 고려 (XSS, CORS) +0.3 시니어 역량 코드에 반영된 경우
의사결정 문서화 +0.2 커뮤니케이션 능력 README/문서에 기록

⚠️ "요구사항 초과 구현" 판단 기준

가산점이 되는 경우 (+0.2):

  • 요구사항의 자연스러운 확장 (예: 정렬 기능에 정렬 방향 저장)
  • 사용자 경험 개선 (예: 로딩 스피너 추가)
  • 코드 3-5줄 이내의 작은 개선

감점이 되는 경우 (-0.5, 레드 플래그):

  • 요구사항과 무관한 기능 추가 (예: 다크모드)
  • 과도한 시간 투자가 필요한 기능 (예: 상세한 Skeleton UI)
  • 요구사항에 없는 접근성 전체 구현 (ARIA, 키보드 전체)
  • 50개 이상의 테스트 (핵심 기능 테스트 대비 과다)

리포트 출력 형식

평가 완료 시 다음 구조로 리포트 생성:

# [프로젝트명] 과제 평가 리포트

## 메타 정보
- **제한시간**: X일
- **지원 레벨**: 주니어/미드/시니어
- **평가일**: YYYY-MM-DD

## 종합 점수: X.X/10

| 등급 | 점수 | 권고 |
|------|------|------|
| S | 9.0-10.0 | 즉시 채용 권장 |
| A | 8.0-8.9 | 채용 권장 |
| B | 7.0-7.9 | 조건부 권장 |
| C | 6.0-6.9 | 추가 검증 필요 |
| D | 5.0-5.9 | 보류 권장 |
| F | 0-4.9 | 비추천 |

### 카테고리별 점수

| 카테고리 | 점수 | 가중치 | 기여도 |
|---------|------|--------|--------|
| 기능 완성도 | X/10 | XX% | X.X |
| 코드 품질 (TS + React) | X/10 | XX% | X.X |
| 코드 적정성 | X/10 | XX% | X.X |
| 에러 처리 | X/10 | XX% | X.X |
| 성능 | X/10 | XX% | X.X |
| 테스트 | X/10 | XX% | X.X |
| 접근성 | X/10 | XX% | X.X |
| 코드 가독성 | X/10 | XX% | X.X |

## 주요 강점
1. ...
2. ...
3. ...

## 개선 필요 사항

### 높은 우선순위
1. [문제] - [권장 해결책]

### 중간 우선순위
1. [문제] - [권장 해결책]

### 낮은 우선순위
1. [문제] - [권장 해결책]

## 레드 플래그
- [ ] 해당 없음
- [x] [발견된 레드 플래그] (-X점)

## 가산점
- [ ] Storybook (+0.3)
- [x] [획득한 가산점] (+X점)

## 면접 질문 제안
1. "[코드/설계 결정]에 대해 왜 이런 선택을 하셨나요?"
2. ...

## 채용 권고
- **추천**: 바로 채용 진행 권장
- **조건부 추천**: 면접에서 [X] 확인 후 결정
- **보류**: [X] 역량 추가 검증 필요
- **비추천**: 기본기 부족

사용 예시

평가 요청 시

사용자: 이 과제를 평가해줘. 7일 과제고, 시니어 포지션이야.

응답 프로세스

  1. package.json, README.md, 주요 소스 파일 탐색
  2. 체크리스트 기반 분석
  3. 제한시간(7일) + 레벨(시니어) 기준으로 가중치 적용
  4. 리포트 생성

참조 문서

상세 가이드가 필요할 때:

  • references/checklist.md: 상세 체크리스트
  • references/report-template.md: 리포트 템플릿
  • references/interview-questions.md: 면접 질문 뱅크
Weekly Installs
1
GitHub Stars
1
First Seen
Mar 1, 2026
Installed on
amp1
cline1
opencode1
cursor1
continue1
kimi-cli1