소셜 리스닝, API 하나로 모든 SNS를 한 번에 보는 법
소셜 리스닝을 API 하나로 직접 만드는 법이에요. 인스타그램·유튜브·틱톡 공식 데이터 접근의 진짜 제약과 코드 예제, 썸트렌드 비교까지 담았어요.
소셜 리스닝은 브랜드나 제품 관련 언급을 여러 플랫폼에서 한곳에 모아 실시간으로 확인하는 일이에요. 인스타그램, 유튜브, 틱톡처럼 플랫폼마다 공식 API를 따로 붙이면 계정 요건도, 호출 한도도, 응답 포맷도 전부 달라서 얼마 못 가 무너지고, 통합 데이터 API 하나로 붙이면 이 문제가 한 번에 풀려요.
이 개념은 회사마다 소셜 미디어 모니터링, SNS 모니터링, 소셜 모니터링, 브랜드 평판 관리, 온라인 평판 관리, 여론 모니터링처럼 다른 이름으로 불러요. 소셜 데이터, 소셜 미디어 데이터를 다루는 작업이라는 점에서는 다 같은 얘기예요.
이 글에서는 인스타그램·유튜브·틱톡 공식 API가 실제로 어디서 막히는지 숫자로 짚어보고, SocialCrawl API로 curl과 JavaScript 코드를 직접 돌려가며 통합 리스닝을 만드는 법을 알려드릴게요. 직접 크롤러를 만들 때 무너지는 지점과 국내 대표 도구인 썸트렌드와의 차이도 함께 다뤄요.
준비물
시작하기 전에 이것만 준비하면 돼요.
- API 키 — 발급 페이지에서 바로 받을 수 있어요
- 코드 예제 언어 — curl과 JavaScript(fetch)를 같이 써요. 공식 API의 제약을 보여줄 땐 curl로, 통합 API 응답을 다룰 땐 JS로 통일했어요
- 사전 지식 — REST 호출과 JSON 파싱 정도만 알면 충분해요
- 인스타그램 비즈니스·크리에이터 계정 — 있으면 좋지만 없어도 괜찮아요. 통합 API로 붙이면 이 요건을 우회할 수 있거든요, 3단계에서 바로 확인해요
1단계 — 소셜 리스닝 툴을 살까요, API로 직접 만들까요?
소셜 리스닝을 시작하는 방법은 크게 세 갈래예요. 상용 툴을 사거나, 플랫폼마다 공식 API를 직접 붙이거나, SNS 통합 관리를 API 레벨로 가져가는 거예요. 어떤 길을 고르든 실제로 해내야 하는 일은 같아요. 키워드·브랜드명 언급량을 추적하고, 해시태그와 키워드를 동시에 감시하고, 경쟁사 계정을 따라가고, 좋아요·댓글 같은 원시 신호를 인게이지먼트율로 정규화하고, 이걸 얼마나 자주 확인할지 알림 주기를 정하는 일이에요. 세 갈래 길이 이 다섯 가지를 얼마나 잘 해내는지 비교해봤어요.
| 방식 | 비용 | 커버리지 | 유지보수 | 실시간성 | 데이터 정규화 |
|---|---|---|---|---|---|
| 상용 툴 (썸트렌드 등) | 요금제 고정, 채널이 티어별로 잠김 | 벤더가 정한 채널만 | 거의 없음 (벤더가 담당) | 벤더 배치 주기에 종속 | 화면 안에서만, 원시 데이터 반출은 어려움 |
| 공식 API 직접 연동 | 무료~종량제, 플랫폼마다 별도 계약 | 플랫폼별 자격·심사 통과분만 | 인증·페이지네이션·스키마를 플랫폼마다 각각 유지보수 | 플랫폼별 쿼터가 폴링 간격을 강제함 | 필드명부터 다시 통일해야 함 |
| 통합 데이터 API | 호출당 종량제, 계정 하나 | 여러 플랫폼을 한 스키마로 | 엔드포인트 하나만 관리 | 쿼터 관리를 API가 대신 함 | 계산 필드(engagement_rate 등)로 자동 정규화 |
이 글은 세 번째 길, 통합 데이터 API로 만드는 법을 다뤄요. 직접 만드는 게 나은지 사는 게 나은지는 팀 사정에 따라 갈리는데, 이건 8단계에서 다시 짚을게요.
2단계 — 플랫폼마다 SNS API가 이렇게 다른 이유
플랫폼마다 SNS API가 이렇게 다른 건 각 회사가 데이터 접근을 서로 다른 목적으로 설계했기 때문이에요. 인스타그램은 자기 계정 관리용으로, 유튜브는 검색 품질 보호용으로, 틱톡은 아예 학술 연구용으로만 문을 열어놨거든요. 그래서 직접 붙이면 계정 요건, 호출 한도, 상업적 이용 가능 여부를 플랫폼마다 새로 배워야 해요. 핵심만 표로 정리했어요.
| 유튜브 | 인스타그램 | 틱톡 | 스레드 | |
|---|---|---|---|---|
| 계정 요건 | 구글 클라우드 프로젝트만 있으면 됨 | 비즈니스·크리에이터 계정 + 페이스북 페이지 연결 필수 | Research API는 미국·EEA·영국·스위스 학술기관 또는 EU 비영리 연구소만 자격 | 앱 리뷰 승인 필요, 승인 전엔 본인 게시물만 검색 |
| 핵심 한도 | search.list 하루 100콜 별도 버킷 + 나머지 10,000 units 공동 풀 | 해시태그 검색 7일에 30개, 레이트리밋은 "내 계정 노출수 × 4800" | 표준 접근 하루 1,000요청 · 최대 10만 레코드 | 승인 후에도 24시간에 2,200쿼리 |
| 상업적 이용 | 가능 | 계정 요건 충족 시 가능 | 불가 (상업적 이해관계로부터 독립이어야 함) | 발행 중심, 검색은 승인 필요 |
각 숫자를 하나씩 짚어볼게요. 유튜브는 공식 쿼터 문서가 2026년 6월 1일 자로 명시한 대로, search.list 호출에 하루 100콜짜리 별도 버킷이 새로 생겼어요. 그 밖의 조회(videos.list, channels.list, comments.list 등)는 여전히 하루 10,000 units 공동 풀을 나눠 써요. 예전에 흔했던 "search.list 100유닛짜리가 10,000유닛 풀 안에 있다"는 설명은 지금은 안 맞으니 참고하세요.
인스타그램은 Instagram Platform 문서(2026년 4월 17일 갱신)에 따르면 두 로그인 방식 모두 비즈니스 또는 크리에이터 계정이 필요하고, 해시태그 검색과 다른 계정의 데이터 조회는 페이스북 페이지 연결까지 있어야 해요. 해시태그는 7일에 30개까지만 조회할 수 있어요(이 페이지는 2024년 7월 갱신이라 다소 오래된 자료라는 점은 감안해서 봐 주세요). 더 짓궂은 건 레이트리밋 공식이에요. 24시간 호출 한도가 "내 계정 노출수 × 4800"으로 정해지는데, 시장 전체를 보려는 모니터링 목적과는 정반대 구조예요. 신규 브랜드 계정일수록 노출이 적어서 감시 예산도 그만큼 작아지거든요.
틱톡은 아예 다른 문제예요. Research API 자격 요건은 "상업적 이해관계로부터 독립적이어야 한다"는 조건을 명시하고 있어서, 마케팅팀이나 영리 기업은 애초에 신청 자격이 없어요. 비싸서 못 쓰는 게 아니라 상업적 이용은 처음부터 배제된 채널이라는 뜻이에요.
스레드는 공식 개요 문서가 밝히듯 원래 "본인 계정으로 발행하고, 그 게시물을 본인에게만 보여주는" 용도로 설계됐어요. 키워드 검색 문서를 보면 threads_keyword_search 권한을 승인받기 전에는 본인이 쓴 게시물만 검색되고, 승인 후에도 24시간에 2,200쿼리가 상한이에요.
인스타그램, 유튜브, 틱톡을 하나의 API로 수집할 수 있느냐는 질문을 자주 받는데, 답은 "네, 다만 각자 다른 벽을 하나씩 대신 넘어야 해요"예요. 다음 단계부터 각 플랫폼을 실제로 붙여볼게요.
3단계 — 인스타그램 API의 공식 제약, 어떻게 우회할까요?
인스타그램 데이터는 공식 API로 다 가져올 수 있을까요? 아니요, 다는 아니에요. 비즈니스·크리에이터 계정 없이는 해시태그 검색도, 남의 계정 지표 조회도 안 되고, 그마저 페이스북 페이지 연결과 앱 리뷰까지 통과해야 해요. 통합 API를 쓰면 이 요건 없이 바로 해시태그·키워드 검색을 붙일 수 있어요.
아래는 API 키 하나로 인스타그램 해시태그를 검색하는 예제예요.
curl -s "https://www.socialcrawl.dev/v1/instagram/search/hashtag?hashtag=socialcrawl&type=recent" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"
응답은 플랫폼이 달라도 같은 스키마로 돌아와요. 인게이지먼트율 같은 계산 필드도 같이 붙어요.
{
"success": true,
"platform": "instagram",
"endpoint": "/v1/instagram/search/hashtag",
"data": {
"items": [
{
"post": {
"id": "3xxxxxxxxxxxxxxxxxx",
"url": "https://www.instagram.com/p/Cxxxxxxxxxx/",
"content": { "text": "이번 캠페인 후기예요 ...", "media_urls": ["https://..."] },
"author": { "username": "brand_kr", "verified": false },
"engagement": { "views": 18400, "likes": 942, "comments": 61, "shares": null },
"published_at": "2026-08-05T09:12:00Z"
},
"computed": {
"engagement_rate": 0.0545,
"language": "ko",
"content_category": "beauty",
"estimated_reach": 22080
}
}
],
"next_cursor": "eyJvZmZzZXQiOjI1fQ=="
},
"credits_used": 5,
"credits_remaining": 4995
}
engagement_rate, estimated_reach, content_category, language는 플랫폼별 원시 응답을 대신 계산해서 붙여주는 필드예요. 인스타그램 게시물 데이터를 API로 가져올 때 가장 자주 필요한 게 바로 이 정규화 작업인데, 여기서는 따로 코드를 짜지 않아도 돼요. 인스타그램 엔드포인트 전체 보기에서 프로필, 댓글, 좋아요 목록 같은 나머지 엔드포인트도 확인할 수 있어요.
4단계 — 유튜브 API 쿼터 문제, 어떻게 피할까요?
유튜브 API 쿼터는 어느 정도면 충분할까요? 공식 쿼터로 직접 계산해보면, search.list 하루 100콜을 키워드 4개에 나누면 키워드당 25콜, 즉 약 1시간 간격이 폴링 상한이에요. 브랜드명 하나에 경쟁사 세 개만 추적해도 실시간에 가까운 감시는 물리적으로 불가능하다는 뜻이에요.
통합 API로 붙이면 이 계산을 직접 관리할 필요가 없어요. 검색을 요청할 때마다 쿼터를 대신 챙겨주거든요.
curl -s "https://www.socialcrawl.dev/v1/youtube/search?query=socialcrawl&sortBy=relevance" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"
const res = await fetch(
"https://www.socialcrawl.dev/v1/youtube/search?query=%EC%86%8C%EC%85%9C%20%EB%A6%AC%EC%8A%A4%EB%8B%9D&sortBy=relevance",
{ headers: { "x-api-key": process.env.SOCIALCRAWL_API_KEY } },
);
const { data } = await res.json();
console.log(data.items.map((item) => item.post.content.text));
유튜브 댓글을 대량으로 수집하려면 /v1/youtube/video/comments에 영상 URL만 넘기면 돼요. continuationToken으로 다음 페이지를 이어가는 방식이라 별도 인증 갱신 없이 계속 페이지를 넘길 수 있어요. 유튜브 엔드포인트 전체 보기에서 채널·재생목록·트렌딩까지 나머지 엔드포인트를 더 볼 수 있어요.
5단계 — 틱톡 API로는 왜 데이터를 못 가져올까요?
틱톡 공식 API로 못 하는 게 뭘까요? 상업적 모니터링 자체예요. Research API FAQ를 봐도 표준 접근이 하루 1,000요청·최대 10만 레코드까지 열려 있지만, 애초에 신청 자격이 학술기관과 비영리 연구소로 제한돼 있어서 마케팅팀은 신청서를 낼 수조차 없어요.
틱톡 데이터는 이렇게 수집해요.
curl -s "https://www.socialcrawl.dev/v1/tiktok/search/hashtag?hashtag=socialcrawl" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"
응답에는 좋아요·댓글·공유 수와 함께 3단계에서 본 것과 같은 계산 필드가 붙어요. 플랫폼이 바뀌어도 파싱 코드는 그대로 재사용할 수 있어요. 틱톡 엔드포인트 전체 보기에서 프로필, 트렌딩, 댓글 답글 같은 나머지 엔드포인트도 확인해보세요.
6단계 — 인스타그램 크롤링이든 SNS 크롤링이든 왜 무너질까요?
인스타그램이든 다른 SNS든, 데이터 수집을 자동화하다 보면 실제로 무너지는 지점은 따로 있어요. DOM 구조가 바뀌면 셀렉터를 다시 짜야 하고, IP가 차단되면 프록시를 새로 구해야 하고, 로그인 세션이 만료되면 재인증 로직을 다시 태워야 해요. 이 세 가지가 한 달에 한 번씩만 터져도 유지보수 인건비가 데이터 수집 자체보다 커져요.
API 방식은 이 문제를 웹훅과 크론, 중복 제거(dedup), 정규화 네 가지로 대체해요. 크론이 정해진 주기로 검색을 호출하고, 새로 들어온 게시물 ID만 걸러서 저장하고, 걸러진 결과를 웹훅으로 흘려보내는 구조예요. 아래는 폴링 주기와 중복 제거 로직을 합친 최소 예제예요.
import { setInterval } from "node:timers/promises";
const seen = new Set(); // 실제로는 DB나 Redis에 저장해요
const POLL_INTERVAL_MS = 60 * 60 * 1000; // 유튜브 쿼터 계산과 맞춘 1시간 간격
for await (const _ of setInterval(POLL_INTERVAL_MS)) {
const res = await fetch(
"https://www.socialcrawl.dev/v1/search/everywhere?query=소셜리스닝&lookback_days=1",
{ headers: { "x-api-key": process.env.SOCIALCRAWL_API_KEY } },
);
const { data } = await res.json();
const newItems = data.items.filter((item) => !seen.has(item.post.id));
newItems.forEach((item) => seen.add(item.post.id));
if (newItems.length > 0) await notifySlack(newItems); // 7단계에서 이어져요
}
/v1/search/everywhere는 최대 14개 플랫폼(최대 17개 소스)에 한 번에 팬아웃해서 순위까지 매겨 돌려주는 엔드포인트예요. 이렇게 묶으면 실시간 소셜 모니터링에 훨씬 가까워져요. 크롤링이 아니라 API로 가져오는 게 합법인지도 자주 물어보시는데, 법률 자문을 드릴 수는 없지만 공식 API를 경유하면 플랫폼 이용약관을 직접 위반할 리스크가 크롤링보다 확실히 줄어든다는 점은 말씀드릴 수 있어요.
7단계 — 이제 소셜 데이터 분석은 어떻게 할까요?
플랫폼마다 원시 필드명이 다 달라요. 좋아요가 like_count인 곳도, likes인 곳도, diggCount인 곳도 있어요. 여러 플랫폼 응답을 같은 스키마로 통일하려면 이 필드명을 전부 하나로 맞추는 매핑 작업이 필요한데, 통합 스키마로 정규화된 계산 필드를 쓰면 이 작업을 건너뛸 수 있어요. engagement_rate, estimated_reach, content_category, language 네 가지가 플랫폼에 상관없이 같은 이름, 같은 계산식으로 붙거든요.
여기에 Slack 웹훅만 얹으면 알림까지 완성돼요.
async function notifySlack(items) {
const lines = items.map(
(item) =>
`• [${item.computed.content_category}] ${item.post.author.username} — 인게이지먼트율 ${(
item.computed.engagement_rate * 100
).toFixed(1)}% (${item.post.url})`,
);
await fetch(process.env.SLACK_WEBHOOK_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ text: `새 언급 ${items.length}건\n${lines.join("\n")}` }),
});
}
소셜 리스닝 데이터로 만들 수 있는 지표는 언급량 추이, 플랫폼별 인게이지먼트율 비교, 콘텐츠 카테고리 분포, 경쟁사 대비 도달 추정치 정도예요. 전부 위 네 개 계산 필드만으로 만들 수 있고, 이 정도만 있어도 소셜 미디어 분석과 언급량 분석의 기본기는 갖춘 셈이에요.
8단계 — 썸트렌드 같은 국내 도구와는 뭐가 다른가요?
썸트렌드는 국내 소셜 리스닝의 사실상 기본값이에요. 코드 없이 바로 쓸 수 있는 화면, 한국어에 맞춘 감성 분석, 네이버 블로그·카페 커버리지까지 갖추고 있어서 마케팅팀 전체가 대시보드 하나로 트렌드를 보고 싶다면 여전히 합리적인 선택이에요.
다만 채널이 요금제로 잠겨 있다는 점은 짚고 넘어갈 만해요. 공식 요금제 페이지를 보면 이렇게 나뉘어요.
| 플랜 | 가격 | 분석 채널 | 분석 기간 |
|---|---|---|---|
| Free | 무료 | 블로그, 뉴스 | 최근 1개월 |
| 베이직 | 29,700원/30일 | 블로그, 뉴스, 인스타그램 | 최근 1년 |
| 프리미엄 | 149,000원/30일 | + 커뮤니티, 유튜브 | 2014년~현재 |
| 비즈니스(클라우드) | 월 200만 원 (1~10인) | + 네이버·다음 카페 | 2008년~현재 |
유튜브를 보려면 프리미엄 이상, 네이버·다음 카페까지 보려면 비즈니스 클라우드 티어를 결제해야 해요. 즉 "통합"을 사려면 최상위 요금제를 사야 하는 구조예요.
API 쪽 비용 감각도 참고로 곁들일게요. 예를 들어 X(트위터) 데이터는 포스트 read 단가가 건당 $0.005예요. 한 달에 10만 건을 읽어도 $500 수준이라, 월 200만 원짜리 최상위 플랜 없이 필요한 만큼만 쓰는 계산이 나와요. X API 요금제를 더 자세히 보고 싶다면 X API 종량제 심층 가이드에 단가별로 정리해뒀어요.
결국 선택은 팀 사정에 달렸어요. 마케팅팀 전체가 화면으로 트렌드를 보는 게 우선이면 썸트렌드가 맞고, 개발 리소스가 있고 데이터를 자사 시스템(대시보드, Slack, BI 툴)에 직접 붙이고 싶다면 API 쪽이 맞아요. 두 방식을 같이 쓰는 팀도 많아요.
어떤 부분에서 막힐 수 있을까요?
- 인스타그램 해시태그 검색이 갑자기 막혀요 — 7일에 30개 상한을 초과했을 가능성이 커요. 태그 로테이션 주기를 조정해보세요.
- 유튜브 검색이 하루 초반에 끊겨요 —
search.list100콜/일이 소진된 거예요. 키워드 수를 줄이거나 폴링 간격을 늘려보세요. - 틱톡 공식 API 신청이 반려돼요 — 상업적 이용 자격 자체가 없어서예요. 통합 API 경로로 전환하는 게 유일한 답이에요.
- 인스타그램 레이트리밋이 계정마다 달라요 — 리밋이 "내 계정 노출수"에 비례하기 때문이에요. 신규 계정일수록 상한이 낮다는 점을 감안하세요.
- X에서 팔로잉·좋아요 데이터가 안 잡혀요 — 2026년 4월 20일부로 셀프서브 티어에서 제거됐어요. Owned Reads 같은 남은 필드로 대체해야 해요.
- 같은 게시물이 중복 저장돼요 — dedup 로직이 빠진 거예요. 게시물 ID 기준으로 upsert하도록 6단계 코드를 참고하세요.
다음에는 뭘 할까요?
이제 코드를 짜기 전에 비주얼 익스플로러에서 먼저 눈으로 응답을 확인해보고, API 키 발급 페이지에서 키를 받아 위 코드를 그대로 돌려보세요. 이 API는 48개 플랫폼, 381개 엔드포인트를 하나의 인증과 하나의 크레딧 시스템으로 묶어놨어요. 인스타그램·유튜브·틱톡 외에 레딧, 스레드, 링크드인까지 같은 방식으로 이어 붙이면 멀티 채널 모니터링을 API 레벨에서 완성한 셈이에요.
자주 묻는 질문
소셜 리스닝이 뭔가요?
소셜 리스닝은 브랜드나 제품 관련 언급을 여러 플랫폼에서 실시간으로 모아 확인하는 일이에요. 해외에서는 소셜 미디어 모니터링이라는 표현을 더 자주 쓰는데, 가리키는 대상은 같아요. 언급량 추적, 해시태그 감시, 경쟁사 추적, 인게이지먼트 정규화, 알림 주기 설정이 핵심 구성 요소예요.
인스타그램 데이터는 공식 API로 다 가져올 수 있나요?
아니요, 다는 아니에요. 비즈니스·크리에이터 계정과 페이스북 페이지 연결이 없으면 해시태그 검색과 다른 계정의 지표 조회가 막혀요. 해시태그 검색도 7일에 30개까지만 가능하고, 레이트리밋은 내 계정 노출수에 비례해요. 통합 API를 쓰면 이 요건 없이 검색을 붙일 수 있어요.
유튜브 API 쿼터는 어느 정도면 충분한가요?
search.list는 2026년 6월 1일 기준 하루 100콜 별도 버킷이에요. 키워드 4개를 추적한다면 키워드당 25콜, 즉 약 1시간 간격이 현실적인 폴링 상한이에요. 브랜드명과 경쟁사 여러 개를 실시간에 가깝게 보려면 이 계산만으로는 부족해서 통합 API로 쿼터 관리를 넘기는 게 편해요.
틱톡 데이터는 어떻게 수집하나요?
공식 Research API는 학술기관과 비영리 연구소로 자격이 제한돼 있어서 마케팅팀은 신청할 수 없어요. 통합 API의 해시태그·키워드 검색 엔드포인트로 바로 붙이는 게 현실적인 경로예요.
SNS 크롤러를 직접 만들면 유지보수가 얼마나 드나요?
DOM 구조 변경, IP 차단, 로그인 세션 만료 세 가지가 반복적으로 터져요. 이 중 하나만 한 달에 한 번꼴로 발생해도 유지보수 인건비가 데이터 수집 자체보다 커지는 경우가 많아요. API 방식은 이 유지보수를 통째로 넘겨받는 대신 호출당 비용을 지불하는 구조예요.
썸트렌드 같은 국내 도구와 뭐가 다른가요?
썸트렌드는 코드 없이 화면으로 바로 보는 국내 대표 도구고, 한국어 감성 분석과 네이버 카페·블로그 커버리지가 강점이에요. 다만 유튜브를 보려면 프리미엄, 네이버·다음 카페를 보려면 월 200만 원 비즈니스 티어를 결제해야 해요. 개발 리소스가 있고 데이터를 자사 시스템에 직접 붙이고 싶다면 API 쪽이 더 맞아요.
크롤링이 아니라 API로 가져오면 합법인가요?
법률 자문은 아니지만, 공식 API를 경유하면 플랫폼 이용약관을 직접 위반할 리스크가 DOM을 긁어오는 크롤링보다 확실히 줄어들어요. 각 플랫폼이 스스로 정한 접근 방식(계정 요건, 쿼터, 심사)을 지키는 경로이기 때문이에요. 확실한 법적 판단이 필요하다면 자사 법무팀과 상의하시길 권해요.
함께 읽으면 좋은 글
인스타 해시태그 몇 개? 1,077개를 세어봤어요
한국어 게시물 1,077개를 세어 보니 해시태그 중앙값은 5개였어요. 47%가 정확히 5개를 달았고, 20개를 넘긴 건 6.6%뿐이에요. 2026년 8월 7일 실측이에요.
네이버 크롤링 2026: 블로그·카페·뉴스 API로 하는 법
2026년 네이버 데이터를 가져오는 길은 셋이에요. 네이버 검색 오픈 API 직접 연동, 직접 만든 HTML 크롤러, 아니면 SocialCrawl 같은 통합 API 한 번 호출. 블로그·카페·뉴스·지식iN까지 코드와 함께 정리했어요. 2026년 API HUB 이관과 쇼핑 API 종료도 함께 짚었어요.
파이썬 크롤링: requests부터 통합 API까지 2026
2026년 파이썬 크롤링, 소셜 데이터는 뭐가 달라질까요? requests와 BeautifulSoup로 직접 만드는 길과 통합 API를 httpx로 부르는 길, 되는 방법과 막히는 이유를 코드로 정리했어요.
