어제 봤던 취업 공고들에서 눈에띄는 키워드 들이 있었다.
[취업 공고 키워드 정리]
1. A/B 테스트 : A안과 B안을 비교하는 대표적인 실험 방법. 대조군(통제군)과 실험군을 두고, 특정 변수 한 개만 다르게 변화를 주어 그 변수에 대한 효과를 측정하는 방법
2. RFM : 고객의 구매 행동인 최근성(Recency), 구매 빈도(Frequency), 구매 금액(Monetary)을 기준으로 고객 가치를 평가하고 세분화하는 마케팅 분석 기법
3. 코호트 분석 : 고객을 특정 단위로 쪼개서 분석하는 방법

4. 퍼널 분석 : 사용자가 목표 행동을 완료하기까지 거치는 단계(step)을 순서대로 분석하여 각 단계에서 얼마나 이탈(drop-off)하는지 파악하는 분석 방법

5. AARRR : 모바일 서비스를 관통하는 핵심 개념. Acquisition(사용자 획득), Activation(활성화), Retention(유지/재방문), Revenue(수익화), Referral(추천)
위의 키워드들을 토대로 주제를 생각하던 중 막막함을 느꼈고, 의문이 들었다.
[주제 선정을 위한 서칭중 든 의문점]
1. A/B 테스트, 퍼널분석, 코호트 분석, AARRR 등 공통적으로 요구되는 분석들이 있는데 이러한 것들을 과연 진행할 수 있는가?
2. 국내 데이터셋을 사용하고싶은데 과연 우리가 접근할 수 있을 것인가?
3. 남들과 다른 차별성을 가진 프로젝트를 진행하고싶은데 해당 도메인과 데이터셋들로 가능할 것인가?
[해결방안]
1. 우선은 A/B 테스트, 퍼널 분석, 코호트 분석, AARRR등 분석방법을 정해두기 보다는 팀이 어떤 문제를 해결하고 싶은지를 먼저 잡는게 더 중요하다.
2. 우리가 구할 수 있는 데이터로 어떤 분석이 가능한가를 먼저 보는게 더 현실적.
현실적으로는 공개 데이터 / 공개 웹에서 수집 가능한 비개인정보 데이터 / 해외 오픈 dataset + 국내 시장 해석. 이런 세 가지 방향 중 선택
3. 차별성은 데이터셋 자체 보다 누구의 어떤 의사결정을 돕는지 / 문제 정의가 얼마나 구체적인지 / 분석 결과를 어떤 액션으로 연결했는지에서 훨씬 크게 갈린다.
ex) 어떤 카테고리의 상품을 우선 운영해야 하는지 / 어떤 연령 및 성별 타겟에 어떤 상품군을 먼저 노출해야 하는지 / 재구매 가능성이 높은 고객군은 누구인지 / 이탈 가능성이 높은 고객군에게 어떤 메시지를 써야 하는지
정리하자면, 당장의 프로세스를
1. 누구의 의사결정을 돕는 프로젝트인지 정하기
2. 어떤 문제를 풀 것인지 정하기
3. 문제를 풀 수 있는 데이터가 있는지 확인하기
4. 분석 방법을 붙이기
순으로 진행하면 좋겠다고 판단했다.
팀원들 모두 동의했고, 일단 모두 패션관련 데이터셋들을 찾아보기로 했다.
나는 공개 API를 통해서 크롤링을 진행해보았다. 이전에 실습에서 네이버 검색 api를 통해서 진행 해봤었기 때문에, 네이버 쇼핑 api를 통해서 간단하게 진행해보았다.
진행할 수 있는 레퍼런스들은 많았다.

우선 가장 위의 쇼핑인사이트 분야별 트렌드 조회를 크롤링 하면서 감을 익히려 했다.
import requests
from pprint import pprint #딕셔너리를 보기좋게 하는 라이브러리
# API 요청 URL
service_url = 'https://openapi.naver.com/v1/datalab/shopping/categories'
headers={
'X-Naver-Client-Id' : client_id,
'X-Naver-Client-Secret' : client_secret
}
body = {
'startDate': '2025-01-01',
'endDate': '2025-12-31',
'timeUnit': 'month', # day, week, month
'category': [
{'name': '여성의류', 'param': ['50000167']}, # 1번째 카테고리
{'name': '남성의류', 'param': ['50000169']}, # 2번째 카테고리
{'name': '패션잡화', 'param': ['50000001']} # 3번째 카테고리
],
'device': '',
'gender': '',
'ages': []
}
response = requests.post(
service_url,
headers=headers,
json=body
)
# print(response.status_code) # 응답 코드 출력
shopping_results = []
if response.status_code == 200:
result = response.json() # json 형태의 응답 텍스트 결과를 딕셔너리로 반환
pprint(result)
이까지만 진행을 했을 때의 결과가 아래와 같다.
{'endDate': '2025-12-31',
'results': [{'category': ['50000167'],
'data': [{'period': '2025-01-01', 'ratio': 71.47497},
{'period': '2025-02-01', 'ratio': 64.61226},
{'period': '2025-03-01', 'ratio': 76.76955},
{'period': '2025-04-01', 'ratio': 74.12554},
{'period': '2025-05-01', 'ratio': 70.27673},
{'period': '2025-06-01', 'ratio': 66.15099},
{'period': '2025-07-01', 'ratio': 61.22641},
{'period': '2025-08-01', 'ratio': 36.10964},
{'period': '2025-09-01', 'ratio': 38.05684},
{'period': '2025-10-01', 'ratio': 46.85505},
{'period': '2025-11-01', 'ratio': 51.55804},
{'period': '2025-12-01', 'ratio': 46.96579}],
'title': '여성의류'},
{'category': ['50000169'],
'data': [{'period': '2025-01-01', 'ratio': 36.20601},
{'period': '2025-02-01', 'ratio': 31.23253},
{'period': '2025-03-01', 'ratio': 37.70146},
{'period': '2025-04-01', 'ratio': 35.55807},
{'period': '2025-05-01', 'ratio': 32.46524},
{'period': '2025-06-01', 'ratio': 28.20887},
{'period': '2025-07-01', 'ratio': 25.08116},
{'period': '2025-08-01', 'ratio': 15.88451},
{'period': '2025-09-01', 'ratio': 18.78175},
{'period': '2025-10-01', 'ratio': 27.14426},
{'period': '2025-11-01', 'ratio': 28.2326},
{'period': '2025-12-01', 'ratio': 23.60732}],
'title': '남성의류'},
{'category': ['50000001'],
'data': [{'period': '2025-01-01', 'ratio': 91.87743},
{'period': '2025-02-01', 'ratio': 90.55038},
{'period': '2025-03-01', 'ratio': 99.58413},
{'period': '2025-04-01', 'ratio': 99.93379},
{'period': '2025-05-01', 'ratio': 100},
{'period': '2025-06-01', 'ratio': 98.11807},
{'period': '2025-07-01', 'ratio': 93.46096},
{'period': '2025-08-01', 'ratio': 69.17017},
{'period': '2025-09-01', 'ratio': 62.60968},
{'period': '2025-10-01', 'ratio': 60.94504},
{'period': '2025-11-01', 'ratio': 56.79026},
{'period': '2025-12-01', 'ratio': 57.5468}],
'title': '패션잡화'}],
'startDate': '2025-01-01',
'timeUnit': 'month'}
실질적으로 알 수 있는건 구간별 클릭량의 상대적 비율(ratio)밖에 없었다.
연령과 성별, 기기에 대해서 차이를 볼 수는 있겠지만 전체적인 데이터셋으로 보기에는 조금 아쉬운 감이 들었다.
다른 쇼핑인사이트 API 레퍼런스도 비슷해서 일단은 네이버 쇼핑은 여기까지 보고,
내일 본격적으로 다른 데이터셋을 많이 찾아봐야겠다.