Cursor는 재현 가능한 환경, 노트북 지원, AI 기반 코드 어시스트를 통해 데이터 사이언스 개발을 위한 통합 도구를 제공해. 이 가이드는 Python, R, SQL 워크플로우를 위한 필수 설정 패턴을 다뤄.

노트북 개발

전체 노트북 지원을 위해서는 ms-toolsai에서 배포한 Jupyter 확장(식별자: ms-toolsai.jupyter)을 다운로드해.
Cursor는 통합 셀 실행과 함께 .ipynb.py 파일을 모두 지원해. Tab, Inline Edit, 그리고 Agents는 다른 코드 파일에서와 마찬가지로 노트북에서도 잘 작동해. 핵심 기능:
  • 인라인 셀 실행으로 에디터 안에서 바로 코드를 실행할 수 있어
  • Tab, Inline Edit, 그리고 Agent는 pandas, NumPy, scikit-learn, 그리고 SQL 매직 커맨드를 포함한 데이터 사이언스 라이브러리를 이해해

데이터베이스 통합

데이터베이스는 두 가지 주요 방식(MCP 서버와 확장 프로그램)을 통해 Cursor와 통합할 수 있어.
  • MCP Servers를 사용하면 에이전트가 네 데이터베이스에 연결할 수 있어
  • Extensions는 IDE 전반을 네 데이터베이스와 통합해

MCP를 통한 통합

MCP 서버를 사용하면 에이전트가 데이터베이스에 직접 쿼리를 날릴 수 있어. 이를 통해 에이전트는 진행 중인 작업의 일부로 데이터베이스 쿼리 여부를 결정하고, 적절한 쿼리를 작성하고, 명령을 실행하고, 출력 결과를 분석할 수 있어. 예를 들어, 다음 MCP 설정을 Cursor에 추가해 네 Cursor 인스턴스에 Postgres 데이터베이스를 연결할 수 있어:
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/mydb"
      ]
    }
  }
}
MCP에 대해 더 알아보려면 우리의 MCP 문서를 확인해.

Extensions를 통한 통합

에디터에서 바로 쿼리를 실행하려면 데이터베이스별 확장 프로그램(PostgreSQL, BigQuery, SQLite, Snowflake)을 설치해. 그러면 도구 간 컨텍스트 전환이 사라지고 쿼리 최적화를 위한 AI 도움도 받을 수 있어.
-- Cursor는 인덱스, 윈도 함수, 쿼리 최적화에 대한 제안을 제공해
SELECT
    user_id,
    event_type,
    COUNT(*) as event_count,
    RANK() OVER (PARTITION BY user_id ORDER BY COUNT(*) DESC) as frequency_rank
FROM events
WHERE created_at >= NOW() - INTERVAL '7 days'
GROUP BY user_id, event_type;
에이전트를 사용해 느린 쿼리를 분석하고 성능 개선을 제안받거나, 쿼리 결과에 대한 시각화 코드를 생성해봐. Cursor는 SQL 문맥을 이해하고 네 데이터 구조에 맞는 적절한 차트 타입을 추천할 수 있어.
Snowflake Extension

데이터 시각화

Cursor의 AI 지원은 Matplotlib, Plotly, Seaborn 같은 데이터 시각화 라이브러리까지 확장돼. 에이전트가 시각화 코드를 생성해서 데이터를 빠르고 쉽게 탐색할 수 있게 해주고, 그대로 재현하고 공유할 수 있는 결과물도 만들어줘.
import plotly.express as px
import pandas as pd

# AI가 데이터 컬럼을 기반으로 적절한 차트 유형을 제안해
df = pd.read_csv('sales_data.csv')
fig = px.scatter(df, x='advertising_spend', y='revenue',
                 color='region', size='customer_count',
                 title='Revenue vs Advertising Spend by Region')
fig.show()

자주 묻는 질문

기존 Jupyter 노트북을 사용할 수 있어? 가능해. Cursor는 .ipynb 파일을 열어서 셀 전체 실행과 AI 보완(완성)을 완전히 지원해. 메모리에 들어가지 않는 대규모 데이터셋은 어떻게 처리해? Dask 같은 분산 컴퓨팅 라이브러리를 쓰거나, Remote-SSH로 더 큰 머신의 Spark 클러스터에 접속해. Cursor가 R과 SQL 파일도 지원해? 응, Cursor는 R 스크립트(.R)와 SQL 파일(.sql)에 대해 AI 지원과 구문 하이라이팅을 제공해. 개발 환경을 공유하는 권장 방법은 뭐야? .devcontainer 폴더를 버전 관리에 커밋해. 팀원이 프로젝트를 열 때 환경을 자동으로 재빌드할 수 있어. 데이터 처리 파이프라인은 어떻게 디버깅해? Cursor의 통합 디버거로 Python 스크립트에 브레이크포인트를 걸어 디버깅하거나, Agent를 활용해 복잡한 데이터 변환을 단계별로 분석하고 설명받아.

환경 재현성

개발 컨테이너

개발 컨테이너는 팀과 배포 환경 전반에서 런타임과 의존성을 일관되게 유지하도록 도와줘. 환경 특이 버그를 없애고 신규 팀원의 온보딩 시간을 줄일 수 있어. 개발 컨테이너를 쓰려면, 저장소 루트에 .devcontainer 폴더를 만드는 것부터 시작해. 그다음 devcontainer.json, Dockerfile, 그리고 requirements.txt 파일을 만들어.
// .devcontainer/devcontainer.json
{
  "name": "ds-env",
  "build": { "dockerfile": "Dockerfile" },
  "features": {
    "ghcr.io/devcontainers/features/python:1": { "version": "3.11" }
  },
  "postCreateCommand": "pip install -r requirements.txt"
}
# .devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/python:3.11
COPY requirements.txt .
RUN pip install --upgrade pip && \
    pip install -r requirements.txt
# requirements.txt
pandas==2.3.0
numpy
# 프로젝트에 필요한 다른 의존성을 추가해
Cursor는 devcontainer를 자동으로 감지하고 컨테이너에서 프로젝트를 다시 열지 물어봐. 또는 Command Palette (Ctrl+Shift+P)에서 Reopen in Container를 검색해 수동으로 컨테이너에서 다시 열 수도 있어. 개발 컨테이너의 장점:
  • 의존성 격리로 프로젝트 간 충돌 방지
  • 재현 가능한 빌드로 개발/프로덕션 전반에서 일관된 동작 보장
  • 온보딩 간소화로 신규 팀원이 수동 설정 없이 바로 시작

SSH를 통한 원격 개발

분석에 추가 컴퓨팅 리소스, GPU, 또는 프라이빗 데이터셋 접근이 필요하면 로컬 개발 환경을 유지한 채 원격 머신에 연결해.
  1. 필요한 리소스를 갖춘 클라우드 인스턴스를 프로비저닝하거나 온프레미스 서버에 접근
  2. .devcontainer 구성을 포함해 저장소를 원격 머신에 클론
  3. Cursor에서 연결: Ctrl+Shift+P → “Remote-SSH: Connect to Host”
이 방식은 필요한 만큼 컴퓨팅 리소스를 스케일하면서도 일관된 툴링을 유지해. 동일한 개발 컨테이너 구성이 로컬과 원격 환경 모두에서 그대로 동작해.