PromleeBlog
sitemap
aboutMe

posting thumbnail
AI 코드 편집기 활용법 AI와 스마트하게 코딩하기 (Cursor, Copilot, ChatGPT, VSCode)
Mastering Cursor Editor Smart Coding with AI (Cursor, Copilot, ChatGPT, VSCode)

📅

🚀

들어가기 전에 🔗

오늘은 코딩의 패러다임을 바꾸고 있는 도구, 바로 AI 기반 코드 편집기
Cursor
의 유용한 활용 팁들을 함께 알아보려고 합니다.
👨‍💻
Cursor은 물론, Copilot, Codeium 등 다양한 AI 코딩 도구들에도 적용되는 팁들이니, AI 코딩 도구를 사용하고 계신 분들이라면 꼭 참고해 보시기 바랍니다.
이 글을 통해 Cursor의 강력한 AI 기능들을 어떻게 활용할 수 있는지 배우고, 여러분의 코딩 작업을 더욱 스마트하게 만들어 보세요!

🚀

AI 기반 코드 편집기란 무엇일까요? 🔗

AI 기반 코드 편집기는 인공지능(AI) 기술을 활용하여 개발자들이 코드를 작성하고 수정하는 과정을 지원하는 도구입니다.
그 종류는 다양하지만, 대표적으로 Cursor, GitHub Copilot, Codeium 등이 있습니다.
VSCode Copilot
VSCode Copilot

🚀

핵심 AI 기능 활용팁 🔗

AI 코드 편집기의 강력한 AI 기능을 200% 활용하기 위한 여러 가지 유용한 팁들을 하나씩 살펴보겠습니다.
이 내용들은 Cursor를 기준으로 작성되었지만, 다른 AI 코딩 도구에서도 유사하게 적용할 수 있는 팁들입니다.

1. YOLO 모드(AI에게 믿고 맡기는 코드 수정) 🔗

Cursor 설정에는 "YOLO 모드"라는 재미있는 이름의 기능이 있습니다.
이 모드를 켜면, AI 에이전트가 단순히 코드를 생성하거나 수정 제안을 하는 것을 넘어, 실제로 테스트를 실행하고 빌드 오류를 확인하며, 문제가 해결될 때까지
스스로 코드를 반복해서 수정
하도록 허용할 수 있습니다.
예를 들어, 다음과 같은 프롬프트를 YOLO 모드에 설정해둘 수 있습니다.
any kind of tests are always allowed like vitest, npm test, nr test, etc.
also basic build commands like build, tsc, etc.
creating files and making directories (like touch, mkdir, etc) is always ok too
이렇게 설정하면, AI가 TypeScript 코드(tsc)를 빌드하다가 오류를 발견하면, 스스로 그 오류를 수정하고 다시 빌드를 시도하는 작업을 반복하여 결국 빌드를 성공시키는 놀라운 경험을 할 수 있습니다.

2. 테스트 주도 AI 코딩(더 신뢰성 높은 코드 생성) 🔗

복잡한 기능을 AI에게 요청할 때, 단순히 "이런 함수 만들어줘" 라고 하는 것보다 테스트 케이스를 먼저 작성하도록 지시하는 것이 훨씬 효과적입니다.
마치 우리가 TDD(Test-Driven Development)를 하는 것처럼요!
예를 들어, "마크다운 문자열을 HTML 문자열로 변환하는 함수를 만들어줘.
테스트를 먼저 작성하고, 그 다음에 코드를 작성해줘. 그리고 테스트를 실행해서 통과할 때까지 코드를 수정해줘.
" 와 같이 요청하는 것입니다.

Cursor는 프로젝트의 package.json 등을 분석하여 적절한 테스트 파일을 생성하고, AI가 작성한 코드가 해당 테스트를 통과하는지 스스로 확인하며 코드를 개선해 나갑니다.
물론, AI가 항상 완벽한 것은 아니므로 중간중간 진행 상황을 지켜보며 필요시 "잠깐, 방향이 이상한데?" 하고 개입하는 것이 좋습니다.

3. 기존 테스트 코드 활용(코드 견고성 높이기) 🔗

이미 잘 작성된 테스트 코드가 있다면, 이를 활용하여 코드의 견고성을 더욱 높일 수 있습니다.
예를 들어, "기존 테스트에 이런 케이스들을 추가해줘. 그리고 모든 테스트를 통과하도록 코드를 수정해줘." 와 같이 요청할 수 있습니다.
실제 운영 환경에서 발생했던 오류 케이스들을 하나씩 테스트로 추가하고 AI에게 수정하도록 하면, 시간이 지날수록 코드가 점점 더 튼튼해지는 것을 경험할 수 있습니다.

4. TypeScript 오류, AI에게 맡기기 🔗

열심히 코딩하다 보면 TypeScript 타입 오류나 빌드 오류가 쌓이는 경우가 종종 있습니다.
이럴 때 일일이 수정하는 대신, Cursor AI에게
빌드 오류가 좀 있네. npm run build (또는 프로젝트의 빌드 명령어) 실행해서 오류 확인하고, 빌드 성공할 때까지 수정해줘.
라고 요청할 수 있습니다.
많은 개발자들이 작업 막바지에 이런 방식으로 Prettier, ESLint, tsc 오류 등을 한 번에 정리한다고 합니다.
➡️

예시 (TypeScript 오류 수정 요청) 🔗

AI에게 다음과 같이 요청할 수 있습니다.
"아래 TypeScript 코드에서 타입 오류를 수정해줘:"
// AI에게 수정 요청할 예시 코드
function greet(person: string, date: Date): string { // 반환 타입 명시
  console.log(`Hello ${person}, today is ${date.toDateString()}!`);
  return `Hello ${person}, today is ${date.toDateString()}!`; // 반환문 추가
}
 
// 만약 다른 곳에서 date를 string으로 전달하려고 할 때 발생하는 오류를 AI가 수정하도록 유도
// const todayString = new Date().toISOString();
// greet("Alice", new Date(todayString)); // AI는 Date 객체로 변환하거나, 함수 시그니처를 바꿀 수 있음
Cursor는 타입 불일치를 감지하고, 예를 들어 greet 함수 호출 시 date 파라미터가 Date 객체가 되도록 수정하거나, 함수의 매개변수 타입을 더 유연하게 변경하는 등의 제안을 할 수 있습니다.

5. 로그 기반 디버깅: AI와 함께 문제 해결하기 🔗

까다로운 버그를 잡을 때는 로그를 활용하는 것이 매우 효과적입니다. Cursor AI에게 코드에 로그를 추가하도록 요청하고, 그 로그 결과를 다시 AI에게 전달하여 문제의 원인과 해결책을 찾아 나갈 수 있습니다.
➡️

예시 🔗

로그 기반 디버깅 요청 예시
이 React 컴포넌트의 `useEffect` 훅이 예상대로 동작하지 않는데, 주요 상태(state)와 속성(props) 값의 변화를 확인할 수 있도록 `console.log`를 추가해줘.
Cursor AI
: (컴포넌트 코드에 console.log 추가)
// 예시: React useEffect 디버깅
import React, { useState, useEffect } from 'react';
 
interface MyComponentProps {
  userId: number;
}
 
function MyComponent({ userId }: MyComponentProps) {
  const [userData, setUserData] = useState(null);
 
  useEffect(() => {
    // AI가 로그 추가 요청 시 아래와 같이 로그를 삽입 가능
    console.log(`[useEffect] userId changed: ${userId}`); 
    if (userId) {
      console.log(`[useEffect] Fetching data for userId: ${userId}`);
      fetch(`/api/users/${userId}`)
        .then(res => res.json())
        .then(data => {
          console.log(`[useEffect] Data received:`, data);
          setUserData(data);
        })
        .catch(error => {
          console.error(`[useEffect] Error fetching data:`, error);
        });
    }
  }, [userId]); // userId가 변경될 때마다 실행
 
  return (
    <div>
      {/* 사용자 데이터 표시 */}
    </div>
  );
}
AI에게 로그 분석 요청 예시
userId가 1일 때 로그 결과는 이렇네. `userData`가 `null`로 계속 나오는데, 뭐가 문제인 것 같아?
Cursor AI
: (로그 분석 후 "API 호출 경로가 잘못되었을 수 있습니다." 또는 "데이터 파싱에 문제가 있을 수 있습니다." 등 원인 추정 및 해결 코드 제안)
이 과정을 몇 번 반복하다 보면 복잡한 문제도 해결의 실마리를 찾을 수 있습니다.

6. 유용한 단축키 🔗

Cursor에는 AI 기능을 빠르게 호출할 수 있는 유용한 단축키들이 있습니다.

7. 터미널에서도 AI 사용 🔗

Cursor의 Command K 기능은 터미널에서도 사용할 수 있습니다.
복잡한 git 명령어 등을 외울 필요 없이, "가장 최근 5개 git 브랜치 목록 보여줘" 또는 "현재 브랜치에서 main 브랜치로 rebase 해줘" 와 같이 자연어로 명령을 내릴 수 있습니다. 이를 통해 터미널 작업의 효율을 크게 높일 수 있습니다.

8. 똑똑한 자동 완성 활용법 (Autocomplete) 🔗

Cursor의 자동 완성 기능은 단순한 코드 조각 완성을 넘어, 전체 코드 라인이나 블록을 제안하기도 합니다.
회색으로 표시되는 제안을 보고 Tab 키를 눌러 수락할 수 있는데, 때로는 Tab 키가 다음 제안으로 넘어가거나 코드의 다른 부분으로 점프하는 등 약간의 적응이 필요할 수 있습니다.
꾸준히 사용하며 감을 익히는 것이 중요합니다.

9. AI가 써주는 커밋 메시지 🔗

Git을 사용할 때 커밋 메시지를 작성하는 것도 은근히 귀찮은 일입니다. Cursor는 이 작업도 도와줍니다.
소스 컨트롤 탭에서 마법봉 아이콘을 클릭하면, 변경된 코드를 기반으로 AI가 자동으로 커밋 메시지를 생성해줍니다. 완벽하지는 않더라도 좋은 초안이 될 수 있습니다.
커밋 메시지 작성
커밋 메시지 작성

10. 버그 파인더 (Bug Finder) 기능 🔗

Command Shift P (또는 Ctrl Shift P)를 눌러 명령 팔레트를 열고 "bug finder"를 검색하면 버그 파인더 기능을 사용할 수 있습니다.
이 기능은 현재 변경 사항을 메인 브랜치와 비교하여 잠재적인 버그를 찾아내려고 시도합니다.
예를 들어, UI 작업 시 특정 값이 0일 경우를 처리하지 않은 부분 등을 지적해 줄 수 있습니다.

🚀

AI 지원과 코딩 기술의 균형 🔗

AI 코딩 도구를 사용하면 코딩 실력이 줄어들지 않을까 걱정하는 목소리도 있습니다.
하지만 AI는 많은 반복적인 작업을 자동화하여 개발자가 더 어렵고 중요한 문제에 집중할 수 있도록 도와주는
도구
입니다.
AI가 모든 것을 해결해 줄 수는 없으며, 여전히 코드를 이해하고 디버깅하며, 올바른 방향으로 AI를 이끌어갈 수 있는 개발자의 기본 역량은 매우 중요합니다.
오히려 AI 도구를 잘 활용하는 능력 자체가 미래 개발자의 중요한 경쟁력이 될 수 있습니다.
개발자와 AI
개발자와 AI

🚀

결론 🔗

오늘은 AI 기반 코드 편집기의 다양한 활용 팁에 대해 알아보았습니다.
YOLO 모드, 테스트 주도 AI 코딩, 자동 오류 수정, 로그 기반 디버깅 등 Cursor의 강력한 AI 기능들은 잘 활용한다면 개발 생산성을 크게 향상시킬 수 있는 잠재력을 가지고 있습니다.

물론 AI가 모든 것을 대신해 줄 수는 없으며, 기본적인 프로그래밍 지식과 문제 해결 능력은 여전히 개발자에게 가장 중요한 자산입니다.
Cursor와 같은 AI 도구를 현명하게 활용하여, 반복적인 작업은 AI에게 맡기고 우리는 더 창의적이고 중요한 문제 해결에 집중하는 스마트한 개발자가 되어봅시다!

참고 🔗