# mtcars histogram
hist(mtcars$mpg)
RStudio를 쓰고 있는데 코파일럿을 아직 사용하지 않는 분
R에서 코파일럿이 어떻게 동작하는지 궁금하신 분
1. Copilot 소개
프로그래머를 위한 AI 짝궁으로 깃헙에서 출시한 - OpenAI와 공동 개발한 - 코파일럿. 쓰지 않은 사람은 있어도 한 번 쓰고 안 쓰는 사람은 없을 것 같아요. 그만큼 코파일럿을 사용할 때 코드 작성하는 시간이 크게 단축되고 있습니다. 깃헙에 저장된 수많은 프로그래밍 언어를 기반으로 훈련된 LLM AI 모델로 수시로 바뀌는 최신 패키지 내용도 잘 숙지하고 있어요. 개인적인 소감으로는 챗GPT 보다 더 간결하면서 명확한 코드, 특히 깔끔한 주석을 제안해 주기 때문에 “코파일럿이 한 수 위다”라고 생각합니다.
깃헙 공홈에서도 RStudio에서 코파일럿이 활용 가능하다는 점을 홍보하지 않고 있기 때문에 의외로 RStudio 사용자들이 코파일럿을 사용하지 않는 경우가 있는 것 같습니다. 이 글에서는 RStudio에서 코파일럿을 사용하는 방법을 소개하고, 코파일럿을 사용하면서 느낀 점을 공유하겠습니다.
(1) 깃헙 계정 준비
코파일럿은 유료이며 깃헙 계정 연동이 필요합니다.
깃헙 계정이 개인 계정이라면 개인용 코파일럿을 사용합니다.
회사(단체) 깃헙을 사용한다면 회사에서 구매한 코파일럿을 함께 활용할 수 있습니다.
이 글에서는 개인용 코파일럿 사용법을 중심으로 설명합니다.
(2) 코파일럿 비용
2024년 3월 현재, 개인용 코파일럿 비용은 월 $10 USD 입니다. 월 구독 형태로 언제든 해지 가능하구요. 연 구독을 이용하면 $100 USD로 약 2달 정도 금액을 할인해 줍니다. 깃헙 계정당 1회에 한해 첫 30일은 무료로 활용할 수 있으니 조금 써 보다가 생각보다 활용도가 높지 않다면 30일 이내에 해지하는 것도 가능합니다.
여러 개 IDE를 사용해도 코파일럿 비용은 월 1건만 청구됩니다. 저는 R은 RStudio, 파이썬은 VS Code를 이용하고 있어 2군데 다 연동을 해 놓았습니다. RStudio에서는 코파일럿 연동이 조금 늦게 되어서 (2023.11월 정식 출시) 코파일럿 연동된 VS Code 쓰다가 RStudio를 쓰면 조금 느려진 느낌이었는데, 이제 RStudio에서도 코파일럿을 맘껏 쓸 수 있어 너무 좋습니다.
2. RStudio에 Copilot 연동하기
RStudio 버전 2023.09.0 이후 버전부터 코파일럿 연동을 제공하고 있으니 최신 버전을 Posit 홈페이지를 통해 설치하시는 것을 추천합니다.
(1) 깃헙에서 코파일럿 유료 구독 하기
- 깃헙 로그인 후 우측 상단 내 계정 아이콘을 눌러 “Setting” 메뉴에 접속합니다.
- 3번째 ‘Code, planning, and automation’ 메뉴에서 Copilot을 선택합니다.
- 결제 정보 입력 후 구독을 시작합니다.
(2) 코파일럿 연동하기
RStudio가 제공하는 메뉴를 활용해서 1분 이내로 쉽게 연동할 수 있습니다. 하단 동영상에 자세한 방법을 소개했으니 참고해 주세요.
- RStudio 메뉴에 Tools > Global Options > Copilot을 선택합니다.
- 첫번째 옵션에서 “Enable GitHub Copilot”을 체크박스를 선택합니다.
- 팝업 창에서 링크와 코드를 안내합니다. 팝업 창 닫지 말고 코드를 메모하세요.
- 팝업 창 내 링크를 열어서 코파일럿을 구독하는 내 깃헙 계정으로 로그인 합니다.
- 로그인 후 나오는 코드 입력 창에서 안내 받은 코드 8자리를 입력하세요.
(3) 코파일럿 사용 옵션
RStudio에서 Tools > Global Options > Copilot 메뉴로 접속하면, 2가지 옵션이 더 있습니다.
- Copilot Indexing: 작업하는 프로젝트 폴더를 코파일럿이 접근하여 해당 코드를 활용하도록 허용할지 결정합니다. 체크박스를 선택 시 접근 허용하게 됩니다.
- Copilot Completion: 마지막 입력 후 시간이 얼마나 지났을 때 코파일럿이 코드를 제안할 지 시간을 설정합니다. 기본값은 300ms 입니다.
3. Copilot 활용 시연
코파일럿을 활용한 코드 작성 시연을 통해 어떻게 코드를 제안하는지 확인해 보겠습니다.
간단히 R에 내장된 mtcar
데이터를 활용하여 histogram을 그려보도록 코파일럿을 활용하겠습니다.
- 먼저 코파일럿에게 내가 무엇을 할 지 간단히 주석으로 설명합니다.
- 입력을 멈추고 기다리면 코파일럿이 코드를 제안하기 시작합니다. 제안하는 코드는 연한 회색으로 표시됩니다.
- 제안한 코드를 받아들여 사용하려면
Tab
키를 누르면 됩니다.
다음 코드는 100% 코파일럿이 제안한 코드 입니다. 코파일럿이 생성하는 코드는 매번 달라지기 때문에 여러분이 쓰실 때와 다를 수 있습니다.
- 기본 버전
- ggplot2 버전
# mtcars histogram with dplyr and ggplot2
library(dplyr)
library(ggplot2)
%>%
mtcars ggplot(aes(x = mpg)) +
geom_histogram()
- ggplot2 고급 버전
# mtcars histogram with ggplot2, white background, blue fill color
# better bins, better title
library(dplyr)
library(ggplot2)
%>%
mtcars ggplot(aes(x = mpg)) +
geom_histogram(fill = "blue", bins = 20) +
theme_minimal() +
labs(title = "Histogram of mtcars mpg")
제가 한 것이라고는 주석을 잘 달아서 방향을 알려준 뒤, tab
과 enter
키를 누른 것 뿐 입니다.
설치 및 활용 동영상
코파일럿 설치부터 샘플 코드 작성까지 아래 동영상을 통해 확인해 보세요.
4. Copilot 활용 팁
코파일럿을 사용하면서 몇 가지 팁을 공유하겠습니다.
(1) 명확한 주석 달기
코파일럿에게 코드 추천을 잘 받으려면 명확하게 주석을 달아주는 것이 중요합니다. 위 예시에서 보았듯이 dplyr과 ggplot2를 사용하여 히스토그램을 그리겠다고 하니, 해당 패키지를 활용하는 코드로 제안해 줍니다.
(2) 제안 코드 확인하기
코파일럿이 제안하는 코드가 꼭 내가 작성하려던 내용이 아닐 수 있습니다. 따라서 코드를 무작성(무지성으로) 받지 않고, 한줄 한줄 꼼꼼하게 읽으면서 내가 원하는 코드인지 확인해야 합니다.
프로그래밍 초보 시절에는 특히 코드가 무엇을 의미하는지 100% 이해하지 못하고 여기저기서 ctrl + c & v 하기 바쁜데요. 이 때 해당 코드를 한줄 한줄 실행하면서 어떤 결과가 나오는지 직접 확인하는 것이 좋습니다.
만약 결과값이 내가 예상한 방향이 아니라면 코파일럿 제안 내용을 삭제하고 좀 더 명확한 주석을 적어 코파일럿이 다시 제안하도록 합니다.
(3) 제안 코드 수정하기
코파일럿이 제안한 코드가 아주 방향이 다르지 않을 때는, 해당 코드를 직접 수정합니다. 가령 위 예시에서 히스토그램을 ggplot2 패키지로 그렸을 때 막대 너비를 수정하고 싶었는데 코파일럿이 제대로 제안하지 못 했어요. bins
옵션을 직접 추가해서 해결할 수 있었습니다.
5. Copilot 활용 후기
- 코파일럿을 사용하면서 코드 작성 시간이 확실히 단축되었습니다.
특히 코파일럿은 코드만 제안하는 것에서 더 나아가 명확한 주석도 추가해 주기 때문에, 코드를 읽고 이해하기 쉽게 작성할 수 있었습니다. 다른 팀원들과 코드를 공유해야 한다면 코파일럿 사용 시 편안하게 코드를 작성할 수 있습니다.
- 코파일럿에 제안하는 주석이나 코드가 내가 읽기에 명확하지 않을 때도 있어요.
코파일럿이 대충 써 준 내용을 정교하게 다듬으면서 나의 문서 작성 실력도 한층 업그레이드 되는 것 같습니다.
- 시작을 망설이거나 빈 화면에 부담을 느끼는 시간이 크게 단축 됩니다.
코파일럿과 함께 코드 작성을 바로 시작하세요. 코드를 하나도 몰라도 시작할 수 이어요.
코파일럿을 사용 시 비용이 꾸준하게 발생하지만, 프로그래밍에 있어서는 어떤 AI 지원 도구보다 만족도가 높습니다.
[Disclaimer] 제 후기가 너무 칭찬 일색이라 의심하실 수도 있을 것 같은데, 이 글은 깃헙에서 어떠한 지원도 받지 않은 활용기 입니다. 여러분도 코파일럿과 함께 빠르게 R 숙련도를 높이면 좋겠다는 바람으로 작성하였으니 오해 없으시길 바랍니다.