게임회사 데이터분석가 코딩테스트를 준비하면서 직접 풀어볼 수 있는 CSV 데이터와 Jupyter Notebook을 만들어봤다.
실제로 응시했던 코딩테스트는 Google Colab 환경에서 진행됐다. 이번 자료도 시험과 비슷한 환경에서 연습할 수 있도록 Colab 사용을 기준으로 구성했다.
문제는 실제 코딩테스트에서 경험한 유형과 데이터 분석 부트캠프에서 배운 내용을 바탕으로 만들었다. ChatGPT를 활용해 문제와 데이터를 구성했고, pandas 기초 문법부터 데이터 정제, 통계 해석, 시각화까지 한 번에 연습할 수 있도록 범위를 잡았다.
제작하게 된 이유
실제로 데이터분석가 코딩테스트를 치러보니 생각보다 기초 문법의 비중이 높았다.
데이터를 불러오거나 조건에 맞는 행을 찾는 문제뿐만 아니라 평균, 중앙값, 분산, 표준편차, 왜도, 첨도를 계산하고 결과를 해석하는 문제도 나왔다.
문법을 알고 있어도 제한된 시간 안에 Colab을 켜고 직접 코드를 작성하려니 바로 손이 움직이지 않는 경우가 있었다. 결국 코딩테스트는 개념을 아는 것과 실제로 코드를 작성하는 것이 별개였다.
그래서 시험에서 경험한 문제 유형과 부트캠프에서 배운 분석 과정을 하나의 연습 자료로 정리해봤다.
파일 구성
자료는 CSV와 Jupyter Notebook 두 개로 구성되어 있다.
| data_analyst_coding_test_game_marketing.csv | 게임 마케팅·사용자 행동 로그 형태의 연습 데이터 |
| data_analyst_coding_test_game_marketing.ipynb | 30개 문제와 정답·해설이 포함된 Colab 실습 파일 |
CSV는 3,659행, 20개 컬럼으로 만들었다.
게임명, 플랫폼, 국가, 유입 채널, 광고비, 노출 수, 클릭 수, 세션 수, 플레이 시간, 구매 횟수, 매출, D1·D7 리텐션 등의 데이터가 들어 있다.
깔끔한 데이터만 넣으면 정제 연습을 할 수 없기 때문에 결측치, 중복 행, 음수값, 극단치도 일부러 섞어두었다.
Google Colab에서 사용하는 방법
두 파일을 내려받은 뒤 Google Colab에 접속한다.
먼저 Notebook 파일을 Colab에서 열고, 왼쪽 파일 메뉴에서 CSV 파일도 업로드하면 된다. 두 파일이 같은 작업 공간에 있어야 아래 코드로 데이터를 불러올 수 있다.
import pandas as pd
df = pd.read_csv(
'data_analyst_coding_test_game_marketing.csv'
)
df.head()
Colab에 직접 업로드한 파일은 런타임이 종료되면 사라질 수 있다.
다시 접속했을 때 CSV 파일을 찾을 수 없다는 오류가 나온다면 파일을 다시 업로드해야 한다.
문제 구성
노트북은 문제편과 정답·해설편으로 나누었다.
문제편에서 먼저 코드를 작성하고, 전체 문제를 푼 다음 정답과 비교하는 방식이다.
주요 문제 범위는 다음과 같다.
- 데이터 구조와 타입 확인
- 컬럼 선택과 조건 필터링
- 중복·결측치·음수값 처리
- 날짜 변환과 파생변수 생성
- 평균·중앙값·분산·표준편차 계산
- 왜도·첨도와 이상치 해석
- 교차표와 피벗테이블 작성
- ARPU, CTR, CPC, ROAS 계산
- 과금 전환율과 D7 리텐션 분석
- 상관관계와 이동평균 계산
- 히스토그램·박스플롯·히트맵 작성
- 계산 결과를 근거로 분석 코멘트 작성
통계량을 한 번에 확인하는 연습
실제 코딩테스트에서는 통계량을 하나씩 구하는 방법뿐만 아니라 여러 컬럼의 결과를 한 번에 출력하는 방법도 알아둘 필요가 있었다.
stat_cols = [
'play_time_sec',
'sessions',
'ad_clicks',
'total_revenue'
]
multi_stats = df_analysis[stat_cols].agg(
['count', 'mean', 'median', 'var', 'std', 'skew', 'kurt']
).T
multi_stats
여기서 계산만 하고 끝내지는 않았다.
평균과 중앙값이 왜 차이 나는지, 분포가 어느 방향으로 치우쳤는지, 극단값이 평균과 분산에 어떤 영향을 주는지도 함께 해석하도록 문제를 구성했다.
사용자 단위와 이벤트 단위 구분
로그 데이터를 분석할 때는 이벤트 행의 개수와 실제 사용자 수를 구분해야 한다.
예를 들어 이벤트 행에서 과금 여부를 바로 평균 내면 활동량이 많은 사용자가 결과에 더 큰 영향을 준다. 과금 전환율을 계산하려면 먼저 게임과 사용자 단위로 데이터를 묶는 과정이 필요하다.
user_game = df_analysis.groupby(
['game_title', 'user_id'],
as_index=False
).agg(
user_revenue=('iap_revenue_usd', 'sum')
)
user_game['is_payer'] = (
user_game['user_revenue'].gt(0)
)
단순히 pandas 문법만 맞히는 것이 아니라 어떤 단위로 지표를 계산해야 하는지도 같이 연습할 수 있다.
이벤트 단위와 사용자 단위를 구분하지 않으면 코드는 정상적으로 실행돼도 분석 결과가 잘못 나올 수 있기 때문이다.
추천 활용 방법
첫 번째에는 정답을 보지 않고 100분 동안 실제 시험처럼 풀어보는 것이 좋다.
두 번째에는 틀린 문제만 다시 풀면서 사용한 pandas 문법을 따로 정리한다.
세 번째에는 코드를 바로 작성하지 말고, 어떤 단위로 집계할지와 결과를 어떻게 해석할지 먼저 말로 설명해본다.
그다음 코드를 작성하면 문법만 외우는 것보다 분석 흐름을 익히는 데 도움이 된다.
게임회사나 플랫폼 회사의 데이터분석가 직무를 준비하고 있다면 사용자 행동 로그, 광고 지표, 매출, 리텐션을 한 번에 다룰 수 있어 반복 연습용으로 활용하기 괜찮을 것 같다.
사용할 때 주의할 점
이 자료는 실제 코딩테스트 문제를 그대로 복원한 것이 아니다.
응시 과정에서 확인한 문제 유형과 부트캠프에서 배운 내용을 바탕으로 ChatGPT를 활용해 새롭게 구성한 연습 자료다.
정답 코드 역시 하나의 기준 답안일 뿐이다. 같은 결과가 나온다면 다른 pandas 문법을 사용해도 된다.
실무에서는 결측치를 0으로 바꾸거나 이상치를 제거하기 전에 데이터 정의와 수집 과정을 먼저 확인해야 한다. 연습 문제에서 사용한 처리 기준을 실제 데이터에 그대로 적용하면 안 된다.
핵심 정리
실제로 응시했던 게임회사 데이터분석가 코딩테스트는 Google Colab에서 진행됐다.
이에 맞춰 이번 자료도 Colab에서 CSV를 불러오고 문제를 해결하는 방식으로 만들었다.
실제 시험에서 경험한 문제 유형과 데이터 분석 부트캠프에서 배운 내용을 종합했으며,
pandas 기초 문법부터 데이터 정제, 기술통계, KPI 계산, 시각화, 결과 해석까지 총 30개 문제로 구성되어 있다.
한 번 풀고 끝내기보다는 실제 시험처럼 시간을 정해두고 반복해서 풀어보는 편이 좋다.
출처
실제 데이터분석가 코딩테스트 응시 경험 및 데이터 분석 부트캠프 학습 내용
ChatGPT를 활용해 제작한 코딩테스트 연습 자료
'데이터분석 > python' 카테고리의 다른 글
| #9. 팰린드롬 (0) | 2025.10.28 |
|---|---|
| aliasing (0) | 2025.10.28 |
| dictionary함수 (0) | 2025.10.28 |
| #8. 피타고라스 삼조 (1) | 2025.10.27 |
| for문 정리 (0) | 2025.10.27 |