데이터 분석

[250527] 기회 규모 추정 프로세스, API 강의 복습

경 민 2025. 5. 28. 10:03
👩🏻‍💻  Point of Today I LEARNED 
📌 선택학습반 (Product Data Science)
↗ 2회차

📌 API 강의 복습

 

 


1. Product Data Scientist

기회 규모 추정 방법론 (3단계 Framework)

1단계 동기 이해
  • 고객/회사 모두 이 기능을 통해 어떤 이점을 얻을 수 있나. 뭐가 편해지나? 
  • 특히 고객 입장에서 이 기능이 얼마나 가치가 있는지 파악
2단계 기회 규모 추정
  • 이 기능이 주요 지표에 얼마나 큰 변화를 가져올 것인지를 정량적으로 추정
  • 구체적인 영향을 계산해서 기대가능한 기회규모를 산출
  • A/B 테스트 전에 미리 계산
3단계 비용 / 리스크 평가
  • 개발 비용, 잠재적 리스크 평가
  • 다른 기능이나 다른 프로젝트와 비교해서 우선순위를 결정

⬇︎

설정 : ㅇㅇ페이에서 정기 결제 기능을 도입하려고 한다. 이 기능을 구축할 가치가 있는가?

 

1) 동기 이해

[ 고객 관점 ]

고객이 매월 정기적으로 납부/송금해야 하는 경우를 생각해보면,

1. 월세 / 공과금 납부

2. 가족, 지인에게 송금

3. 자산 관리

등이 있음.

 

→ 반복 작업 필요 없이 편리하게 정기 납부/송금을 해결할 수 있어서 편리하고, 효율적임.

 

[ 회사 관점 ]

1. Retention ↑

2. Transaction Volume ↑


2) 기회 규모 추정

1단계 '기존 데이터' 분석 - 규모 추정
현재까지의 데이터를 기준으로 이 기능을 도입할만한 규모, 가치가 마련되어있는지 확인
  • 정기 결제 특징 정의
    • 동일 수취인에게 반복적으로 이체
    • 일정한 주기로 이체
    • 결제/이체 금액이 일정~비슷
  • 데이터 레이블링
    • High Likelihood (높은 가능성) : 위 3가지 조건을 모두 충족하는 거래
    • Medium Likelihood (중간 가능성) : 2가지 조건 충족
    • Low Likelihood (낮은 가능성) : 1가지 조건만 충족
  • 결과 집계
    • SQL, Python 활용해서 그룹별 거래 수, 거래 금액 계산
    • 하한값 (Lower Bound) : High Likelihood 그룹의 거래 총액
    • 상한값 (Upper Bound) : Low, Medium, High Likelihood 그룹의 거래 총액의 합
“ㅇㅇ페이에서는 현재 약 500억 원(하한)에서 1,200억 원(상한) 사이의 정기 결제가 이미 이루어지고 있는 것으로 추정됩니다.”
2단계 기능 도입 후의 기대 효과 추정
도입 후 얼마나 많은 고객이 이 기능을 사용할까
  • 유사한 과거 기능 도입 사례 분석
    • ex) QR 결제 기능, 해외 송금 기능 
    • 이 기능 도입 후 채택률이 얼마나 증가했는지 파악
    • 여기에 A/B 테스트 결과 있으면 좋음
  • 관련 서비스 내 유사 사례 분석
    • ㅇㅇ페이 외 자사 서비스 (ㅇㅇ뱅크, ㅇㅇ모빌리티 등)에서 유사한 기능을 도입한 사례 확인
      • ex) ㅇㅇ뱅크에서 자동이체 서비스 제공한 후 신규 사용자 전환율, 리텐션율이 어떻게 변화했는지 확인
  • 경쟁사 분석

☞ 정확한 예측은 어렵다. 추가적인 분석으로 보완이 필요

추가분석 1. 가정을 여러가지 변경해가면서 최악/최상의 시나리오를 모두 포함한 범위를 제시해줘야 한다.

민감도 분석

  • 채택율이 낮은 시나리오 : 초기 채택률 5%
  • 채택율이 높은 시나리오 : 초기 채택률 15%
최소 채택률 5%: 500억 * 5% = 25억
최대 채택률 15%: 1,200억 * 15% = 180억
→ “민감도 분석 결과, 보수적 시나리오에서는 채택률 5%로 최소 25억 원, 낙관적 시나리오에서는 채택률 15%로 최대 180억 원의 추가 거래 규모를 기대할 수 있습니다.”

 

추가분석 2. 정성적인 데이터 찾기

사용자의 요구, 시장의 실제 니즈를 이해하는 데에 도움

  • 고객지원팀: 고객 요청 데이터 분석 (예: “자동이체 기능이 있나요?“와 같은 문의)
  • 사용자 인터뷰 및 설문조사: 정기 결제 기능에 대한 수요와 기대 확인
  • 앱 리뷰 및 SNS 분석: 정기 결제에 대한 언급 빈도 및 피드백 확인

 


3) 비용/리스크 평가

기회규모, 개발 및 디자인 비용, 리스크를 종합적으로 평가

“정기 결제 기능은 초기 개발 비용이 5억 원으로 추정되며, 25억 ~ 180억 원의 추가 거래 규모를 창출할 가능성이 있습니다. 리스크는 상대적으로 낮고 ROI가 높은 것으로 판단되어, 현재 백로그 상위권의 프로젝트로 제안합니다.”
“기회 규모가 상대적으로 작고(25억 원), 구현 비용과 리스크가 높아 현재로서는 다른 프로젝트에 리소스를 집중하는 것이 더 적합합니다.”

2. API 강의 복습 및 실습

API를 활용한 네이버 블로그 검색 

1) 네이버 개발자 센터에서 기본적으로 제공하는 코드를 사용했더니 mac os 환경에서는 오류가 났다.

[Mac 전용] 인증서 설치 스크립트를 실행시켜야 해결되는 문제였다.

 

2) requests 라이브러리를 사용해서 호출하는 방법으로 재시도

# 1. 검색어 설정
search = '유럽 여행'

내가 찾고 싶은 검색어

⬇︎

# 2. API 기본 URL
base_url = 'https://openapi.naver.com/v1/search/blog'

네이버 블로그에서 제공하는 기본 URL 입력

⬇︎

# 3. API 요청 헤더 설정
client_id = " "
client_secret = " "

header = {
    'X-Naver-Client-Id' : client_id,
    'X-Naver-Client-Secret' : client_secret
}

요청자 (나)의 정보 입력

⬇︎

# 4. API 요청 파라미터 설정
params = {
    'query' : search,
    'display' : 10,
    'start' : 1,
    'sort' : 'sim'
}

파라미터설정 (query 검색어 필터링은 당연히 필수)

⬇︎

# 5. GET 요청 보내기
response = requests.get(
    base_url, # 여기 들어가서
    headers= header, # 이 정보 권한으로
    params= params # 이렇게 가져와줘
)

request 라이브러리 본격 활용 시작.

HTTPS 프로토콜에 GET 메서드를 써서 정보 요청

⬇︎

# 무엇을?

⬇︎

# 6. 응답 상태 코드 확인 후 정상이면 결과 출력
if response.status_code == 200:   #200번대: 성공, 400대: 클라이언트측 문제, 500번대: 서버측 문제
    result = response.json()      #결과 데이터를 json형식으로 파싱
    print(result)

    print(f'총 검색 결과: {result['total']}건')
    print(f'현재 페이지: {params['start']} / {result['total']}')
    print('-' * 50)

    # 검색 결과 출력
    for item in result.get('items', []):
        print(f'제목: {item['title']}')
        print(f'블로거: {item['bloggername']}')
        print(f'작성일: {item['postdate']}')
        print(f'링크: {item['link']}')
        print(f'설명: {item['descrption']}')
        print('-' * 50)

else:
    print(f'Error Code: {response.status_code}')
    print(f'Error Message: {response.text}')

 

결과목록 출력