개발자로 살아남기

안드로이드에서 Cursor IDE 활용하기 본문

0x40. 기타

안드로이드에서 Cursor IDE 활용하기

banjjak123 2025. 4. 13. 17:06

Cursor IDE?

AI를 활용해 좀 더 생산성 있게 코딩할 수 있도록 도와주는 VSCode 기반의 도구

처음 가입 시 Trial로 Pro 기능을 14일간 사용 가능 (Pro 버전은 2025년 4월 기준 달마다 20$)

가격 정보: https://www.cursor.com/pricing

공식 사이트: https://www.cursor.com/

공식 문서: https://docs.cursor.com/get-started/welcome

어떻게 생산성을 높일 수 있을까?

뒤에서 살펴보겠지만 아래와 같이 생산성을 높일 수 있을 것이라고 판단했다.

  1. MCP를 활용해 Figma의 디자인을 가져와 구현
  2. 기존 프로젝트에 참여해야 할 경우 빠르게 프로젝트 구조 파악 가능
  3. 반복적인 작업 자동화
  4. 특정 기능이 있는 코드를 찾는 등의 작업 처리 가능
  5. 기타 등등

이 외에도 직접 하기엔 귀찮은 많은 부분을 AI가 대신 해줌으로써 개발자는 핵심 부분에 집중할 수 있을 것이다.

Cursor 기본 설정

커서 사용법 및 설명에 대해서는 공식 문서를 참고하면 된다. 이 글은 Cursor 0.48.8 버전으로 작성되었다.

커서를 본격적으로 사용하기 전 규칙(Rule)을 설정해주면 좋은데, 규칙에는 User Rules와 Project Rules가 있다.

Rules?

프로젝트 또는 전역에 규칙을 적용해서 AI의 답변을 원하는 스타일대로 커스텀할 수 있음

 

User Rules: 응답 방식 등 모든 프로젝트에서 항상 적용되어야 하는 규칙을 지정할 경우 사용

  • 항상 한국어로 대답할 것
  • 추측성 답변일 경우 추측이라고 알려줄 것 등

Project Rules: 프로젝트별로 규칙을 정해서 여러 부분에서 AI 동작을 세밀하게 제어할 때 사용

  • 프레임워크 별 규칙 (ex. Jetpack Compose 스타일인지, 테스트에서는 JUnit4인지, Coroutine 테스트는 어떻게 할 것인지 등)
  • 커스텀 UI 개발 패턴
  • 코드 스타일 및 아키텍처 등

Project Rules 예시

그럼 모든 프로젝트에서 항상 포함되어야 하는 규칙(User Rules)에는 어떤걸 작성해야할까?

질문에 대한 답변을 할 때 이러한 규칙을 가지고 답변을 해달라! 는 내용으로 추가하면 된다. 안드로이드에서만 커서를 사용한다면 거기에 맞게 작성하면 되겠지만 만약 BE나 FE도 같이 개발을 한다면 범용적으로 사용할 수 있도록 작성하는게 더 좋을 것이다.

규칙은 커서에서 여러 사람들이 등록한 사이트를 참고하거나 인터넷에 돌아다니는 규칙을 참고하고 필요한 부분은 추가/수정/삭제하면서 적용하면 된다. 나는 https://x.com/kayladotdev/status/1853272891023872450와 GPT를 이용해서 User Rules를 적용했다 (한국어를 영어로 번역할 때 오역될 가능성이 있어서 적용할 규칙들을 영어로 번역하고 의미가 정확한지 확인해볼 것을 권장)

 

User Rules 적용 전/후를 살펴보면 아래와 같은데, 단순히 모든 문장마다 이모지를 추가해달라는 규칙을 지정해보았다.

적용 전
적용 후

적용 후에는 문장마다 이모지가 추가된 것을 볼 수 있으며 구현된 코드는 이미지 상 보이지 않지만 두 질문 모두 다 비슷한 코드가 구현되었다. 이처럼 내가 원하는 형식의 대답을 듣고 싶을 경우 설정해두면 매번 똑같은 말을 작성하지 않아도 동일한 결과를 얻을 수 있다.

Project Rules에 대해서는 뒤에서 테스트해볼 때 사용해볼 예정이다.

코드베이스 인덱싱

커서에는 코드베이스 인덱싱이라는 기능이 존재한다. Cursor Settings -> Features에 들어가면 볼 수 있는데, 이 기능은 기존에 작성된 코드를 기반으로 답변을 작성해준다. 자세한 내용은 공식 문서를 참고하면 된다.


진짜로 생산성을 높일 수 있을까?

위에서 생산성을 높이는 방법으로 몇 가지 예시를 들었었다.

  1. MCP를 활용해 Figma의 디자인을 가져와 구현
  2. 기존 프로젝트에 참여해야 할 경우 빠르게 프로젝트 구조 파악 가능
  3. 반복적인 작업 자동화
  4. 특정 기능이 있는 코드를 찾는 등의 작업 처리 가능

위 리스트를 토대로 하나씩 커서를 이용해서 Compose 기반 테스트 프로젝트와 안드로이드 샘플인 nowinandroid로 진짜로 생산성을 높일 수 있을지 테스트해볼 것이다. (View 기반 테스트는 추후 진행할 예정이다)

Figma MCP를 이용한 디자인 구현

MCP(Model Context Protocol)에 대해서 들어본 사람도 있고 아닌 사람도 있을텐데 간단히 설명하자면 아래와 같다.

 

LLM(ChatGPT, Claude, ...)과 IDE (Cursor, Claude Desktop, ...) 사이에 존재하며 상호간에 통신을 통해 Context를 주고받기 위한 표준화된 통신 프로토콜을 의미한다.

※ Context: 어떤 정보를 이해하거나 판단할 때 참고하는 정보

 

LLM은 단순히 텍스트 기반으로 학습된 언어 모델이기 때문에 어떤 API를 호출하거나 DB 등에 접근해 무언가 작업을 할 수 없다. 그렇기 때문에 MCP를 이용해서 API를 호출하거나 DB에 접근하는 로직을 구현하고 LLM에서는 MCP의 tool을 호출해 받아온 데이터를 기반으로 사용자가 원하는 작업을 도와주는 형태로 동작한다.

※ Tool: MCP에서 구현된 함수들을 보통 Tool(도구)라고 부름

 

MCP 공식 문서에서 MCP 서버를 직접 만들어서 테스트해볼 수 있는 예제가 있으니 한 번 직접 구현해보면 어떤 느낌인지 대략적으로 알 수 있을 것이다.

 

그럼 본격적으로 커서와 Figma MCP를 이용해서 화면(Screen)과 UI 컴포넌트를 어디까지 구현할 수 있는지 테스트 해볼 것이다. Figma MCP는 레포지토리에서 확인할 수 있다. 설정이 끝나면 아래 이미지와 같이 노출된다. (초록불이 들어와야 사용할 수 있음)

 

먼저 미리 결과를 얘기하자면 마법처럼 완벽하게 피그마 디자인대로 구현되지는 않는다🥲

그러나 개발자가 직접 구현해야하는 공수를 조금은 줄일 수 있을 것이다.

 

그럼 먼저 UI 컴포넌트를 한 번 Figma 디자인대로 구현이 되는지 확인해보자.

위 디자인에서 텍스트필드를 구현할 예정이다. Figma에 있는 텍스트필드의 URL을 가져와 커서에 입력한 후 이 UI에 필요한 기능을 작성하면 된다. 아래는 그 예시이다. (모델은 claude-3.7-sonnet을 사용했다)

위와 같이 대략적인 기능과 디자인 등 내가 원하는 내용을 입력하면 비슷하게 구현해준다. 물론 한 번에 잘 구현해주는 경우도 있고 그렇지 않은 경우도 있다. 그렇지 않은 경우라도 몇 번 더 요청을 해보면 원하는대로 동작되는 코드를 얻을 수 있다. 그래서 한 번 작성할 때 초등학생한테 설명하는 것처럼 사소한 것 하나라도 작성하거나 위 예시처럼 특정 기능(VisualTransformation)을 사용해달라고 명시하면 생각한대로 최대한 구현해준다. (한 번 요청할 때마다 요청 가능한 횟수가 차감되기 때문에 처음부터 잘 설명하는게 좋다)

작성된 코드를 보면 수정이 필요한 부분이 있긴 하지만 직접 구현하는 것에 비해서 다듬기만 하면 되기 때문에 시간이 절약된다는 장점이 있고 이마저도 귀찮다면 규칙을 이용해 이러한 경우에는 어떻게 해라 라고 설정할 수도 있다. 아래는 커서가 작성한 코드를 실행한 결과 영상이다.

나름 원하는대로 잘 구현된 것 같다

다음으로 새로운 채팅을 열고 Figma에 정의된 비교적 간단한 UI인 화면 전체를 그려달라고 해볼 것이다. (하나의 채팅에서 계속해서 대화하면 Context가 섞일 수 있어서 새로운 채팅을 만드는 것을 권장)

이 간단한 스크린을 AI가 어느정도로 구현할 수 있는지 확인해보자.

UI에서 필요한 내용들을 대략적으로만 작성했다. AI가 구현한 UI는 어떻게 생겼고 어떻게 동작하는지 한 번 살펴보자.

완전 동일하지는 않지만 어느정도 비슷한 레이아웃을 만들 수 있는 것을 볼 수 있다. 기능적으로나 요구사항이 제대로 적용되지 않는 등 여기저기 문제가 있긴 하지만 이런 경우도 Project Rules를 활용하거나 좀 더 상세한 정보를 입력하면 간단한 스크린 정도는 쉽게 처리할 수 있을 것으로 보인다.

기존 프로젝트 구조 파악

기존에 개발된 프로젝트에 참여해야 할 경우가 있는데 그럴 경우 프로젝트의 구조와 의존관계 및 모듈 별 역할들을 빠르게 파악할 경우 업무에 도움이 될 수 있을 것이다. AI가 분석한 프로젝트가 얼마나 비슷하게 나오는지 nowinandroid로 한 번 테스트 해봤다. AI 모델은 복잡한 문제를 해결하기 위해 설계된 사고 모델(thinking model) 중 하나인 gemini-2.5-pro-exp-03-25를 사용했다. 내용이 길어서 일부만 첨부했다.

AI가 준 답변을 보면 이정도면 대략적인 프로젝트 구조를 파악하기에는 나쁘지 않은 결과라고 생각한다. 

몇 번 테스트 해봤는데 build-logic이라고 명시해야 조금 더 정확하게 나오는 것 같아 작성했고 nowinandroid는 md파일에 프로젝트 구조와 각 모듈에 대한 설명 및 기능들을 작성해두었는데 이러한 정보 없이 분석만으로 얼마나 잘 파악해줄지 판단하기 위해서 마크다운 파일은 확인하지 말라고 요청했다.

 

요청한 결과 각 모듈 별 역할과 의존관계를 알 수 있었는데, 의존관계는 mermaid 형식으로 보여준다. 처음 받은 그래프는 디테일하지만 너무 복잡한 느낌이 있어서 core 모듈쪽 의존관계만 자세히 그려달라고 몇 번 더 요청했다. (mermaid 형식은 https://mermaid.live/edit 에서 확인할 수 있다.)

그 결과 위와 같은 의존관계 그래프를 그려주었고 실제 nowinandroid의 모듈 그래프를 보면 비슷하게 그려준 것을 알 수 있었다. 이정도면 그래도 기존 프로젝트에 참여할 때 단기간에 구조와 모듈 별 역할 등을 파악해서 업무에 활용할 수 있을 것으로 보였다. 그 뿐 아니라 특정 ViewModel의 로직들을 파악해서 어떤 기능을 하는지 설명해달라고 하면 연관된 부분들의 코드까지 분석해서 판단하고 알려준다.

반복적인 작업 자동화

안드로이드 멀티 모듈 프로젝트에서 feature 모듈 하나를 추가하면 build.gradle부터 route, navigation 설정 등 해야할 것들이 많다. 그렇다면 이 귀찮은 작업을 매번 feature 모듈을 만들때마다 설정해야하는데 AI한테 맡기면 어떻게 되는지 테스트 해보았다.

Feature 모듈 생성 요청

왼쪽 프로젝트 패널에서 다른 feature 모듈을 참고해 완벽하지는 않지만 비슷한 구조로 추가해준 것을 볼 수 있다. 여기서 개발자는 필요한 부분만 적절히 수정하면 모듈 추가 후 사용하기 위한 초기 세팅은 금방 끝난다.

근데 매번 커서에게 저런 장문의 글을 써서 만들어달라고 하는 건 비효율적이다. 이럴 경우에 Project Rules를 활용할 수 있다.

규칙은 기존에 요청했던 것과 비슷하게 작성했고 ViewModel은 이러한 형식으로 구현해달라는 예시를 추가해봤다. 그리고 만든 규칙을 참조해서 다시 요청하니 기존에 요청했던 것과 동일하게 모듈을 생성해주었고 ViewModel은 예시로 작성한대로 구현이 된 것을 볼 수 있었다. 예시는 feature 모듈 생성이지만 어떤 것을 반복적으로 작업해야할 경우 상세한 내용과 예시 코드를 이용해 규칙으로 등록해두고 필요할 때마다 사용하면 개발에 좀 더 도움이 될 것으로 보인다.

 

결론

커서와 적절한 규칙들을 이용하면 개발하면서 마주칠 수 있는 귀찮거나 반복적인 부분들을 쉽게 해결할 수 있다. 또한 구현이나 아이디어가 떠오르지 않아 어려움이 있을 때에도 많은 도움을 주기 때문에 나만을 위한 시니어 개발자 1명이 있는 것과 비슷한 효과를 낼 수 있다. 

물론 규칙을 처음 작성할 땐 시간이 많이 들기도하고 작성하고 원하는대로 되는지 테스트하는 과정이 힘들 수 있지만 장기적으로 보면 생산성 측면에서 상당히 큰 도움이 될 수 있을 것이다.