상세 코드 리뷰 체크리스트
TypeScript 특화 체크리스트
타입 안전성
-
any타입 사용을 최소화했는가? -
unknown타입을 적절히 좁혀서(narrowing) 사용하는가? - 제네릭을 활용하여 재사용 가능한 타입을 정의했는가?
-
as타입 단언(type assertion)을 불필요하게 사용하지 않는가?
함수 설계
- 함수가 단일 책임 원칙(SRP)을 준수하는가?
- 함수 매개변수가 3개 이하인가? (초과 시 객체로 묶기 권장)
- 순수 함수(pure function)로 작성 가능한 경우 그렇게 했는가?
- 함수 반환 타입이 명시되어 있는가?
비동기 처리
-
Promise를 올바르게 처리했는가? (.catch()또는try/catch) -
async/await와.then()패턴을 혼용하지 않는가? - 병렬 실행 가능한 비동기 작업에
Promise.all()을 사용했는가?
보안 (OWASP Top 10)
- 사용자 입력값을 직접 SQL 쿼리에 삽입하지 않는가?
- XSS 방지를 위해 사용자 입력을 HTML에 직접 삽입하지 않는가?
- 민감한 정보(API 키, 비밀번호)가 코드에 하드코딩되어 있지 않는가?
- 인증/인가 로직이 서버 사이드에서 검증되는가?
성능
- 불필요한 반복 계산을 캐싱하거나 메모이제이션으로 최적화했는가?
- 대용량 배열/객체를 불필요하게 복사하지 않는가?
- 루프 내에서 DOM 조작이나 네트워크 요청을 최소화했는가?
테스트 가능성
- 외부 의존성이 의존성 주입으로 분리되어 있는가?
- 단위 테스트가 작성되어 있는가?
- 엣지 케이스(빈 값, null, undefined)에 대한 테스트가 있는가?