커서 룰 파일로 AI 생성 레거시 코드 정리하기
TuBrief 편집팀
2026년 8월 25일
0
컴퓨터/소프트웨어원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
커뮤니티의 다른 글
댓글 (0)
Log in to leave a comment
아직 작성된 글이 없습니다
원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
Log in to leave a comment
아직 작성된 글이 없습니다
AI가 작성한 코드는 단일 스크립트로 뭉치기 쉽습니다. 모놀리식한 거대 객체 패턴이 만들어지면서 기존 구조가 망가집니다. 3년 차에서 7년 차 개발자가 디버깅에만 주당 8시간을 쏟는 이유입니다. 리팩토링을 건너뛰고 코드를 계속 덧붙이기 때문입니다.
프로젝트 루트에 .cursor/rules 디렉토리를 만들고 .mdc 규칙 파일을 넣으십시오. 코어 아키텍처 가이드라인 파일에서 alwaysApply: true 옵션을 켭니다. 의존성 방향을 Presentation -> Application -> Domain -> Infrastructure 순서로 고정합니다. 파일 길이는 150줄을 넘지 못하게 제한합니다.
이미 꼬인 컴포넌트를 고칠 때는 세 가지 프롬프트를 차례로 입력합니다. 먼저 레거시 코드를 분석해 타입을 뽑습니다. 다음으로 100줄짜리 커스텀 훅으로 비즈니스 로직을 떼어냅니다. 마지막으로 비테스트와 MSW를 묶어 단위 테스트 코드를 뽑아냅니다. 이 과정을 거치면 디버깅 시간이 주당 3시간 아래로 떨어집니다.
타입스크립트 컴파일러만으로는 AI가 던지는 API 응답 에러나 조건부 로직의 오류를 다 잡지 못합니다. 런타임 경계에서 타입을 확실하게 틀어막아야 합니다. 잰드와 이펙트 라이브러리로 스키마 레이어를 만듭니다. 잰드는 외부 API 검증을 맡고, 이펙트는 내부 도메인 로직을 관리합니다.
잰드 스키마를 먼저 선언하게 판을 짜야 합니다. 사용자 프로필 업데이트 API 입력값 검증용 잰드 스키마부터 AI에게 짜라고 시킵니다. 그 스키마와 타입을 받아 DB를 갱신하는 서비스 함수 구현을 이어서 요구합니다. 검증에 실패하면 400 에러를 뱉는 파싱 로직을 결합합니다.
의존성 크루저를 CI 파이프라인에 연결해 잘못된 코드가 메인 브랜치로 들어오는 길을 막습니다. .dependency-cruiser.cjs 설정 파일에 순환 의존성과 레이어 위반 금지 규칙을 적어둡니다. 깃허브 액션에 npx depcruise --config .dependency-cruiser.cjs src 명령어를 박아둡니다. 풀 리퀘스트 단계에서 아키텍처 위반 코드가 자동으로 걸러집니다.
AI는 학습 데이터의 한계 때문에 스벨트 5나 넥스트제스 14 같은 최신 프레임워크를 쓸 때 구버전 문법과 섞어 씁니다. 빌드 에러가 터지는 주원인입니다. 공식 문서의 핵심 마이그레이션 가이드를 압축해 컨텍스트에 밀어 넣어야 합니다.
프로젝트 내부에 최신 기술 스펙용 문서 저장소를 따로 파야 합니다. 프로젝트 루트에 .docs 폴더를 만들고 마이그레이션 가이드를 마크다운으로 저장합니다. .cursorignore 파일에 노드 모듈과 빌드 폴더를 적어 노이즈를 지웁니다. @.docs/svelte5-migration.md 문서를 직접 가리키는 프롬프트를 써서 최신 문법 코드를 유도합니다. 구버전 문법 오류를 잡으려고 헤매는 시간이 사라집니다.