ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Cursor IDE 동작원리 및 설치, 사용방법
    AI 2024. 6. 11. 22:46

    제가 코딩할 때 주로 쓰는 IDE는 IntelliJ와 VS Code인데요. 최근에는 이 에디터들만큼 자주 사용하는 도구가 하나 더 추가되었는데 바로 AI 기반 에디터인 Cursor입니다. 이전에는 AI를 활용해서 코드를 짠다고 하면 주로 ChatGPT에게 물어봐서 더 효율적인 함수를 찾거나, 기억이 잘 나지 않는 라이브러리를 찾거나 부트스트랩, 테일윈드 같은 css 프레임워크의 클래스명을 물어보는 용도로만 활용했었는데요.

     

    사실 ChatGPT만 사용해도 업무 효율이 엄청나기 때문에 굳이 AI 에디터를 사용해야 될까?라는 의문을 갖고 있다가 이번에 마침 Cursor라는 에디터가 떠오르고 있어서 한번 직접 조사해 보고 사용해 보았는데 생각보다 만족감이 높았습니다. 그래서 이번에는 Cursor 사용경험에 대한 후기를 공유드리고자 합니다.

     


     

    🤔 Cursor란?

    Cursor는 Anysphere라는 외국계 AI 소프트웨어 연구실에서 개발한 AI기반 코드 에디터입니다. Cursor는 다음과 같은 특징들을 가지고 있습니다.

     

    • VS Code를 Forking 해서 만든 프로젝트
    • VS Code의 모든 기능 및 확장프로그램 사용가능
    • 코드베이스 인덱싱 🌟
    • privacy mode 지원

     

    VS Code기반으로 만들어져 있기 때문에 이 도구에 익숙하신 분들이라면 이질감 없이 사용하실 수 있다는 점이 장점입니다. Cursor를 설치할 때 VS Code에 설치해 놓았던 확장프로그램도 이식이 가능하기 때문에 큰 시간과 비용을 들이지 않고 부담 없이 이용할 수 있습니다.

     

    또한, vector database를 활용한 코드베이스 인덱싱 기능을 지원하기 때문에 큰 사이즈의 코드나 프로젝트 단위의 질문도 가능합니다. 어떻게 내 프로젝트 전체를 기반으로 AI에게 질문할 수 있지?라는 의문을 가질 수 있는데 이렇게 큰 사이즈의 프로젝트에서 필요한 파일과 코드를 선별 후 사용자 쿼리와 조합해서 프롬프트를 엔지니어링 하는 능력이 바로 Cursor의 기술력입니다.

     

    따라서 많은 양의 코드를 소화하지 못하는 ChatGPT에게 직접 물어보는 것보다 조금 더 효율적인 솔루션을 제공합니다.  아래는 제가 공식문서와 포럼(*블로그 하단의 참고자료)을 참고해서 간략하게 만든 Cursor의 동작 원리 입니다. 

     

    Cursor의 코드베이스 인덱싱 동작 원리

     

    만약 코드보안이 걱정 되신다면 에디터 내 셋팅(  [Cursor Settings ⚙️ > Features] )에서 privacy mode를 enabled로 설정해 주시면 어떠한 코드 정보도 외부로 유출되지 않습니다. 단, 이 경우 코드베이스 인덱싱 기능이 비활성화되기 때문에 AI로 부터 생성되는 결과의 품질이 떨어질 수는 있습니다.

     

    Cursor를 제공하고 있는 연구소에 따르면 사용자의 코드를 직접 저장하지 않고 임베딩된 벡터값만 저장하기 때문에 데이터가 유출되는 일이 없다고 주장하고 있습니다. 하지만 벡터 검색을 하는 경우에 그 안전을 보장할 수는 없죠. 이럴 때는 더 안전하게 사용할 수 있는 방법이 바로 프라이버시 모드입니다. 프라이버시 모드를 사용하면 벡터 데이터베이스에 저장하는 인덱싱도 거절할 수 있게 됩니다.

     

    하지만 프라이버시 모드를 사용한다고 해도 100% 코드가 안전하다고 보장은 못합니다. 결국은 AI로부터 코드를 생성하기 위해서는 LLM에게 사용자 쿼리를 프롬프트로 전달해야 되기 때문이죠. 이러한 점들 때문에 다른 AI 에디터에서는 code llama 같은 폐쇄형 LLM을 지원하기도 하는데 Cursor에서는 따로 지원하지 않는다는 점이 아쉬웠습니다. 따라서 이 부분에 대해서는 사용하시면서 주의하시면 좋을 것 같습니다.

     


     

    🛠️ 설치방법

    Cusor는 아래 사이트 링크에서 다운받을 수 있습니다.

     

    Cursor

    The AI Code Editor

    www.cursor.com

     

    설치를 하고 실행을 하면 다음과 같이 셋팅 화면이 나타납니다.

    cursor 초기 셋팅

     

    위와 같이 설정해주시면 되고 설치시 CommandLine은 Installed “cursor”를 선택하시면 됩니다. 위 옵션들에 대해서 상세하게 알고 싶으시다면 cursor docs 공식문서를 찾아보시면 됩니다. 참고로 문서 상단에 검색창이 하나 있는데 이 검색창을 활용하시면 알아서 공식문서에서 잘 찾아서 답변을 제공합니다.

     

    사용하다 모르는거 있으면 cursor docs 검색창을 활용하면 된다.

     

    초기셋팅을 마치면 기존에 VS Code에서 사용하던 extension 들을 불러옵니다. extension이 많이 깔려있다면 이 작업은 오래 걸릴 수도 있습니다.

     

    VS Code Extensions 불러오기

     

    다음으로는 앞서 말씀드렸던 코드베이스 인덱싱을 할지말지 결정하는 단계인데요. 초기 셋팅 단계에서는 당연히 코드베이스 인덱싱이 안되어 있기 때문에 전 단계와 마찬가지로 프로젝트 사이즈에 따라 다소 시간이 걸릴 수 있습니다. 보안에 유의해서 선택하시면 좋을 것 같습니다.

     

    이 셋팅은 나중에 설정창( [Cursor Settings ⚙️ > Features] )에서 변경하실 수도 있고 지금까지 인덱싱 된 데이터들도 모두 지울 수 있습니다.

     

    프라이버시 모드 사용여부 체크

     

    마지막으로는 Cursor 회원가입을 하시면 되는데요. 이 부분을 skip 하시면 AI사용이 불가능하므로 반드시 회원가입을 하셔야 합니다. 메일, 구글, 깃헙 중에 선택할 수 있는데 저는 깃헙 계정과 연동하였습니다.

     

    github 계정 연동

     

    계정을 연동하고 나면 Cursor 에디터를 사용하실 수 있게 됩니다. 기존에 VS Code를 사용하고 계셨다면 VS Code에서 최근에 보고 있던 프로젝트 화면으로 열리게 됩니다.

     


     

    💸 구독 플랜

    Cursor의 구독 플랜은 다음과 같습니다. 회원가입 후 14일 동안은 Pro 플랜을 사용할 수 있습니다. 추후에 Pro로 업그레이드하려면 월 US$20.00 달러로 한화로 약 27000원 정도입니다. 그래도 GPT4에 코파일럿 기능까지 3만 원 이내로 사용가능하다면 나름 괜찮은 가격이라는 생각도 들긴 합니다. (물론 Github Copilot은 아닌 Cursor Copilot++ 입니다.)

     

    Hobby 플랜만 사용하는 경우에는 별도로 계좌를 연결할 필요는 없습니다. 단, 사용해보시면 알겠지만 체감상 한 달 2000 코파일럿은 너무 적다고 느껴질겁니다. 

     

    • Hobby
      • 14 days Pro trial
      • 50 slow GPT-4 uses
      • 200 cursor-small uses
      • 2000 Copilot++ uses
    • Pro
      • 500 fast GPT-4 uses per month
      • Unlimited slow GPT-4 uses
      • Unlimited cursor-small uses
      • Unlimited Copilot++ completions
      • 10 Claude Opus uses per month
    • Business
      • Usage information is the same as the Pro tier
      • Extra benefits, detailed on the pricing page
     

    Pricing | Cursor - The AI-first Code Editor

    500 fast GPT-4 uses per month Unlimited slow GPT-4 uses Unlimited cursor-small uses Unlimited Copilot++ completions 10 Claude Opus uses per day

    www.cursor.com

     


     

    🪄 사용방법

    Cursor에서 코딩을 도와주는 AI 기능은 크게 Copilot++, 간단한 코드 수정기능, Chat 기능 3가지가 있습니다. 따라서 커맨드도 많이 외우지 않아도 되고 딱 3가지 커맨드만 알고 계시면 됩니다.

     

    1. tab

    • 에디터에서 약 1초간 동작이 없는 경우 Cursor Copilot++ 이(가) 자동으로 코드를 추천
    • tab키를 누르면 Cursor Copilot++ 이(가) 자동으로 만들어주는 코드를 적용

     

    2. Ctrl + K

    • 간단한 코드를 생성하는 커맨드
    • 에디터 내 사용자 쿼리를 입력할 수 있는 창이 나타남
    • 간단한 함수를 만들거나 테일윈드, 부트스트랩 등 CSS 클래스명 붙일 때 편리
    • @Codebase, @Docs, @Web 등 여러 가지 심볼을 프롬프트로 사용 가능

     

    3. Ctrl + L

    • 에디터 화면 오른쪽에 LLM에게 대화할 수 있는 채팅창을 여는 커맨드
    • 복잡한 버그를 수정하거나 코드를 기술적인 도움이 필요한 경우 사용
    • 코드를 드래그 후 Ctrl + L 커맨드 입력 시 채팅창으로 코드가 자동으로 복사됨.
    • @Codebase, @Docs, @Web 등 여러 가지 심볼을 프롬프트로 사용 가능

     

    여기서 중요한 것은 심볼인데요. 이 심볼들을 조합해서 프롬프트를 효율적으로 만들어서 LLM에게 전달 할 수 있습니다. 여기서는 대표적으로 중요한 심볼 3가지만 소개해드리도록 하겠습니다.

     

    • @Codebase : 코드베이스 기반 검색 기능
    • @Docs : 문서기반 검색 기능
      • 설정 ( [Cursor Settings ⚙️ > Features] )에서 문서를 업로드하거나 채팅창에서 @Add로 문서 등록 가능
    • @Web : 웹 기반 검색 기능
      • 설정  ( [Cursor Settings ⚙️ > Features] )에서 항상 사용할지 체크 가능(default : 사용 안 함)

     

    웹 기반 검색 기능은 저도 사용해 봤는데 검색할 때 어떤 사이트를 참고하는지 출처가 표시가 됩니다. 이때 발췌하는 링크들을 보면 의외로 공식홈페이지 기반으로 문서를 찾아서 답변을 생성해 줘서 신뢰도가 꽤 높았습니다.

     

    추가로 심볼에는 없지만 채팅창에서는 이미지도 업로드해서 사용이 가능합니다. 제가 그라파나에서 그래프를 하나 캡처해서 그래프 내 데이터 기반으로 질문을 했는데 이미지를 잘 해석해서 답변을 잘 만들어주는 것을 확인해 볼 수 있었습니다.

     


     

    🌠 Cursor 사용에 대한 소견

    Cursor로 코딩을 하면 확실히 사용 안 할 때보다 훨씬 코드 생산속도도 빨라지고 품질도 좋아졌습니다. 사실 AI로 글을 쓴다고 했을 때는 뭔가 내 글이 아닌 것 같은 이질감이 들어서 기피했었는데 AI 에디터가 만들어주는 코드는 너무 깔끔해서 적용하고 싶다는 생각이 더 강하게 들었습니다. 확실히 가독성과 성능, 품질이 더 중요한 코딩이 창의성과 주관이 더 중요한 글 보다 훨씬 더 LLM과 잘 어울리는 것 같다는 생각이 듭니다.

     

    지금까지 제가 살펴본 Cursor의 단점이라고 하면 다음과 같을 것 같습니다.

    • 폐쇄형(private) GPT 지원을 안함.
    • 코드베이스 인덱싱으로 인한 무거움, 속도감 저하 (특히 리액트로 코딩할 때 핫로더가 조금 딜레이 되고 답답하게 동작)
    • 여러 프로젝트를 인덱싱 하는 경우 성능 저하 (다른 프로젝트의 코드를 추천해 줌.)
    • Cursor Copilot++ 이(가) import 경로를 잘 못 찾음.

     

    하지만 코드베이스 인덱싱 기능이 워낙 좋아서 다른 단점들이 상쇄되는 것 같습니다. 특히, Github Copilot은 외부 오픈소스를 바탕으로 코드를 추천해 주지만 Cursor Copilot++은 코드베이스 기반으로 추천해 주니까 반복되는 표현 같은 건 기가 막히게 완성해 주기 때문에 그만큼 코드 생산성이 올라갑니다.

     

    그 외에도 Chat 기능, 코드 생성 기능 모두 간단한 커맨드로 사용 가능하고 문서나 웹, 코드베이스 모두 간단한 심볼로 프롬프트에 넣어서 간편하게 사용 가능하다는 점에서 잘 만들어진 도구라는 게 느껴졌습니다. 특히 GPT4와 같은 가격으로 코딩 한정 더 범용적으로 사용할 수 있다는 점이 큰 매리트가 아닌가 싶습니다. 저는 개인적으로 Cursor 사용 경험에 만족감이 커서 앞으로도 계속 사용해 볼 예정입니다. 

     


     

    📜 참고자료

    TITLE URL
    Copilot의 한계와 Cursor IDE https://www.youtube.com/watch?v=F2YhSCcEZe8
    Local Codebase Indexing https://github.com/getcursor/cursor/issues/680
    Codebase Indexing https://forum.cursor.com/t/codebase-indexing/36/4
    Privacy Policy https://www.cursor.com/privacy
    Codebase Indexing VS Chat with codebase https://forum.cursor.com/t/codebase-indexing-vs-chat-with-codebase/283

     

    'AI' 카테고리의 다른 글

    Redis를 활용한 벡터 데이터베이스 구현하기  (6) 2023.06.22

    댓글

Designed by Tistory.