바이브 코딩 & R 데이터 분석 강의 주요내용
1. 강의 핵심 3줄 요약
- 바이브 코딩 = 자연어(한국어)로 AI에게 명령 → AI가 코드 작성 → 단계별 확인·수정 반복
- 도구 스택: R + Positron IDE + GitHub Copilot (무료 or 교육 할인)
- 실습 흐름: 국토부 부동산 실거래가 Excel 다운 → 데이터 전처리 → 통계 → 시각화
2. 왜 이 도구들인가?
GitHub Copilot을 쓰는 이유
- 가격: Claude Code, Cursor 등은 종량제(많이 쓸수록 비용↑), Copilot은 정액제 월 10달러
- 멀티모델 지원: Claude, GPT, Gemini 등 모델을 자유롭게 선택 가능
- 코드 특화 학습: 전 세계 개발자 코드를 학습 → 코드 품질·효율성이 높음
- 전 세계 개발자 설문(StackOverflow)에서 업무용 AI 도구 1위 (ChatGPT는 개인용에 치우침)
Positron IDE를 쓰는 이유
- R Studio를 만든 Posit 재단이 개발 (VS Code 기반)
- R 사용자를 위한 기본값 세팅 내장 (단축키, 변수창 등)
- 오른쪽 변수창: 현재 작업 중인 변수를 실시간 확인 (VS Code에는 없음)
- Jupyter Notebook 지원 → Python·R·Julia 혼용 가능
- 코드 → HTML → PDF 내보내기 가능
3. 초보자 단계별 설치 가이드
STEP 1. R 설치
- 다운로드: CRAN R Project 공식 사이트
- 최신 버전: R 4.5.3 (버전 앞자리가 3이면 반드시 업데이트)
- Windows/macOS 각각 맞는 버전 다운로드 후 설치
- 설치 시 "동의합니다"만 계속 클릭하면 OK
⚠️ R이 없으면 오늘 바이브 코딩 불가. 반드시 먼저 설치.
STEP 2. Positron IDE 설치
- 다운로드: Positron 공식 페이지 접속
- 다운로드 버튼 클릭 → Pre-download 체크박스 해제 → 다운로드 목록 활성화
- Windows: System Level 설치 파일 선택 (위에 있는 것)
- Mac: M1/M2/M3 → ARM 64, 인텔 Mac → Intel 버전 선택
- 설치 순서: R 먼저 → Positron 나중에
STEP 3. GitHub 계정 가입
- github.com 접속 → 회원가입
- 교육기관 이메일(.ac.kr 또는 .edu) 사용 권장 → 교육 할인 가능
- 가입 시 본인 인증 퍼즐 통과 필요:
- 비주얼 퍼즐: 왼쪽 그림과 가장 비슷한 그림 10개 중 선택
- 오디오 퍼즐: 3개 소리 중 다른 동물 소리 찾기 (10번 반복) — 오디오가 더 쉬움
STEP 4. GitHub Copilot 활성화
- GitHub 로그인 → 오른쪽 상단 프로필 클릭
- Copilot Settings 선택
- “Copilot을 무료로 사용하시겠습니까?” 클릭 → 첫 달 Pro 무료 제공
- 이후 무료 플랜으로 전환 (토큰 제한·속도 차이 있지만 사용 가능)
교육 할인(2년 무료): Settings → Billing → Education Benefit → Start Application → 영문 재학/재직증명서 업로드 → 1~2일 후 승인 메일
STEP 5. Positron에 Copilot 연결
- Positron 실행 → 왼쪽 패널에서 안경 쓴 로봇 아이콘 클릭
- Enable Positron Assistant 클릭
- 팝업의 체크박스 2개 체크
- Sign in to Provider → GitHub Copilot (OAuth) 선택 → Sign in 클릭
- 8자리 코드 자동 복사됨 → Copy & Continue → 웹브라우저 자동 열림
- GitHub 로그인 → 8자리 코드 붙여넣기(Ctrl+V) → Continue → Authorize
- Positron으로 돌아와서 Reload 클릭
- 채팅창에 AI 모델 선택 드롭다운 표시되면 완료 (기본값: GPT-4o mini)
4. 바이브 코딩 개념
바이브 코딩이란?
- 자연어 대화로 AI에게 코드를 시키는 방식 (2025년 2월 Andrej Karpathy가 정의)
- 핵심: Low Code, High Impact — 코드를 직접 치는 것이 아니라 의도(Intent)를 전달
- AI 오타 없음, 실수 줄어듦, 에러 발생 시 설명도 요청 가능
비유: 아이언맨의 토니 스타크가 자비스에게 "이거 빨간색 금색으로 바꿔줘"라고 하는 것처럼
논문·데이터 분석에서의 바이브 코딩 주의점
- 한 번에 2,000줄짜리 코드를 뽑지 말 것 → 중간 어디서 잘못됐는지 모름
- Step by Step: 단계별로 코드를 확인하며 진행
- 중간 결과물 기록 필수 (논문 재현성 때문에)
- Jupyter Notebook 활용 이유: AI에게 뭘 요구했는지 기록 + 단계별 확인 가능
5. 꼭 외워야 할 R 단축키 3가지
| 단축키 | 기능 | 비고 |
|---|---|---|
Alt + - |
변수 저장 (<-) |
Mac: Option + - |
Ctrl + Shift + M |
파이프 오퍼레이터 (%>%) |
Mac: Cmd + Shift + M |
Shift + Enter |
코드 실행 | 현재 셀 실행 |
이 3가지만 알면 오늘 강의의 90% 완료
6. 바이브 코딩 실습 방법 (주석 기반)
방법: 채팅창 대신 주석으로 명령
# tidyverse 패키지 설치
install.packages("tidyverse") # AI가 자동 완성
# tidyverse 패키지 불러오기
library(tidyverse) # 탭 키로 추천 수락
# mtcars 예제 데이터 불러오기
data(mtcars)
동작 원리:
- 코드 창에
#으로 한국어 주석 입력 - AI(Copilot)가 반투명 글씨로 코드 추천
Tab키로 수락,Enter후 다음 줄 추천 수락Shift + Enter로 실행- 에러 발생 시 → Fix 버튼 클릭 or 로봇 창에 에러 복사해서 질문
교수님 팁: “저는 알 코드 하나도 안 쳤고요, 다 주석 주석 주석만 했습니다”
7. 파이프 오퍼레이터 (%>%) 개념
왜 쓰나?
코드 가독성을 높이기 위해 — 괄호 안에서 바깥쪽으로 읽는 대신, 왼쪽에서 오른쪽으로 순서대로 읽을 수 있게 함
비교 예시
# 파이프 없이 (괄호 중첩 — 안에서 바깥으로 읽어야 함)
round(log(sum(1:10)))
# 파이프 사용 (왼쪽에서 오른쪽으로 순서대로 읽힘)
1:10 %>% sum() %>% log() %>% round()
- 두 코드의 결과는 동일 (값: 4)
- 파이프가 있으면 “1부터 10까지 합산 → 로그 → 반올림” 순서가 직관적
8. 부동산 데이터 분석 실습 흐름
STEP 1. 데이터 다운로드
- 국토부 실거래가 사이트 접속 (
rt.molit.go.kr) - 아파트 매매 실거래가 → 조건별 자료 제공
- 기간: 원하는 연도 설정 (예: 2024년 1월~12월)
- 시도: 서울시 선택 → 엑셀 다운로드
- 다운받은 파일을 작업 폴더에 저장
STEP 2. Positron 작업 폴더 설정
- Positron 실행 → Open Folder 클릭
- 새 폴더 생성 후 선택
- New Notebook → R Notebook 선택
Ctrl + S로 저장 (파일명 예:260314_realestate.ipynb)
STEP 3. 패키지 로드 및 파일 읽기
# tidyverse 패키지 불러오기
library(tidyverse)
# readxl 패키지 이용해서 파일 불러오기 (상위 12줄 스킵)
library(readxl)
df <- read_excel("파일명.xlsx", skip = 12)
국토부 실거래가 파일은 상단에 주석 12줄이 자동 삽입됨 →
skip = 12필수
STEP 4. 데이터 확인 및 전처리
# df 변수명 확인
names(df)
# 변수명 일괄 변경 (영문 약어 + 한글 포함)
df <- df %>% rename(
sgg = `시군구`,
area_m2 = `전용면적(㎡)`,
price = `거래금액(만원)`,
contract_ym = `계약년월`,
apt_name = `단지명`,
floor = `층`
# ... 나머지 변수도 동일하게
)
# 자료형 변환 (문자형 → 숫자형, 쉼표 제거)
df <- df %>%
mutate(
area_m2 = as.numeric(area_m2),
price = as.numeric(gsub(",", "", price))
)
# 평당 가격 변수 생성 (1평 = 3.3㎡)
df <- df %>%
mutate(price_per_pyeong = price / (area_m2 / 3.3))
# 주소 분리 (시군구 → 시, 구, 동 분리)
df <- df %>%
separate(sgg, into = c("si", "sgg", "dong"), sep = " ")
STEP 5. 기초 통계
# 시군구별 거래건수, 평균가격, 평균면적 통계
df_summary <- df %>%
group_by(sgg) %>%
summarise(
count = n(),
mean_price = mean(price, na.rm = TRUE),
mean_area = mean(area_m2, na.rm = TRUE)
) %>%
arrange(desc(mean_price)) # 가격 높은 순 정렬
STEP 6. 시각화
# 전용면적 vs 가격 산점도 (시군구별 색깔 구분)
ggplot(df, aes(x = area_m2, y = price, color = sgg)) +
geom_point(alpha = 0.5) +
labs(x = "전용면적(㎡)", y = "거래금액(만원)") +
theme_minimal()
# 막대그래프 (시군구별 거래건수)
ggplot(df_summary, aes(x = reorder(sgg, count), y = count)) +
geom_bar(stat = "identity") +
coord_flip() +
theme_minimal()
9. 에러 처리 방법
| 상황 | 대처법 |
|---|---|
| 코드 에러 발생 | 에러 메시지 옆 Fix 버튼 클릭 → AI가 자동 수정 |
| AI 추천이 안 맞을 때 | 로봇 채팅창에 에러 복사 후 “왜 오류가 났어?” 질문 |
| 복잡한 변환이 필요할 때 | ChatGPT에 붙여넣어 변환 요청 → 결과를 Positron에 복사 |
| 자동완성이 안 뜰 때 | 주석을 조금 더 구체적으로 작성 |
10. 결과물 저장 방법
Ctrl + Shift + K → Preview 모드 (HTML 미리보기)
Ctrl + S → .ipynb 파일로 저장
HTML로 내보내기 → 웹브라우저에서 열기 → 인쇄 → PDF 저장
11. 핵심 패키지 정리
| 패키지 | 용도 |
|---|---|
tidyverse |
데이터 분석 통합 패키지 (dplyr, ggplot2 등 포함) |
readxl |
엑셀 파일 불러오기 |
writexl |
엑셀 파일로 내보내기 |
ggplot2 |
데이터 시각화 (tidyverse 포함) |
dplyr |
데이터 전처리 (tidyverse 포함) |
12. 교수님 핵심 조언
“R code를 외우는 데 시간을 허비하지 마세요. 통계 이론이나 더 가치 있는 지식을 쌓으세요. 한국어로 명령만 할 줄 알면 AI가 나머지를 해줍니다.”
- 코드를 한 번에 다 돌리지 말고 스텝 바이 스텝으로 확인
- 결과물은 항상 노트북에 기록으로 남길 것 (논문 재현성)
- Copilot은 쓸수록 내 코딩 패턴을 학습 → 시간이 지날수록 더 정확해짐
- 로봇 채팅창의 @DF 기능: 현재 데이터를 참조해서 분석 추천 가능