상세 코드 리뷰 체크리스트

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)에 대한 테스트가 있는가?