크롤링 API 개발이요? 저 5일차 신입인데요?

Muji1412·2025년 12월 23일
post-thumbnail

적응기간이 뭔데

우리 회사는 작다. 그래서 할일이 많다.
백, 프론트, 서버, QA, 디자인, 이 외에도 회사에 기여할수 있는 부분이라면 어디라도
적응은 첫날에 끝, 2일차에 실제 돌아가는 서비스에 핫픽스를 하는 정신나간 짓거리도 했다.

3일차, 4일차부터는 디자인 리뉴얼 업무를 맡았다.
백엔드 로직을 건드리는것도 아니고.. 할만한데? 라고 생각했다.

혹시 인스타 크롤러 만들려면 얼마나 걸릴까요?

예?

머리가 띵- 해졌다.
나는 이 말을 당시 2주차, 근무 5일차였다.
메인 서비스에 크롤러가 필요한데, 그걸 나에게 맡겼다..
'내가? 지금? 프로덕션용을? 목업이나 과제가 아니고?'

까짓거 해보죠 뭐

다행인 점은
1. 캠프때 배포부터 서버 운영까지 전부 담당
2. 메인 서버가 아니라 언어 사용이 자유롭다 - 파이선 가능
3. 내가 나쁜짓에 능하다

맨날 우회결제에나 쓸려던 프록시에 대한 지식이
이런쪽에 도움이 될지 생각은 한번도 못했다.

Instagrapi

전 외부 솔루션 업체가 '코드는 못주겠다' 라며 줬던 API 이름이다.
비공식, 인스타그램 아이디 필수
첫 시작을 이걸로 했다. 멍청한 짓이었다.

왜 실패했냐면요

Instagrapi는, 내가 로그인을 하고나서 쓸수있는 기능들을 api화 시켜주는 방식에 가깝다.
공식 API보다 접근할수있는 범위가 훨씬 넓지만, 그만큼 구축해야하는 시스템도 많았다.

1. 고정된 프록시, 1IP-1계정을 묶어야 한다.
2. 다계정 필요, 하나의 계정으로 계속 작업하다 보면 밴당할 가능성이 높다.
3. 높은 신뢰 레벨을 가진 계정이 필요하다

인스타그램은 '인간 같은 행동' 을 얼마냐 했냐에 따라 점수를 매겨 이에 따라 Quota가 달라지는데, 새로 만든 계정들은 요청건수 30건도 못넘기고 Limit에 걸렸다.

구현이 중요한게 아니라

제일 큰 문제가 있었다.
구현과 로직이 문제가 아닌
Instagrapi를 위해서는 최소 2달은 지난 계정을 필요로 했다.

하지만 회사에서는 이런 정보를 받아오고 싶어했다.
1. 팔로잉, 팔로워, 게시글 개수
2. 최근 글 12개의 평균 좋아요/댓글 수
3. 비공개 여부

다시 생각해 봤다.
이 결과라면.. 그냥 로그인 안하고도 가능한데?
라고 생각해서 확인해봤더니, 역시 맞았다. 시크릿 브라우저로도 로그인 없이도 가능했다.

여기서부터 생각이 바뀌었다.
회사가 말한대로 instagrapi가 아닌, 공식 API, Playwright, Selenium을 사용해도 되는게 아닌가?

정답은 단순함에 있었다

중국어 문서를 읽다가 기억에 남는 말이 있었다.
'최대한 많은 프록시 개수와 빠른 ip 회전이 답이다'

라는 말이 생각났고, 기존 로직을 갈아엎기 시작했다.
기존 로직은 이러했다.

1. 프로그램 시작
2. 프록시 선별 - 50개의 프록시 중 응답속도가 좋은 프록시만 사용
3. 그중 응답속도 상위 10개의 프록시를 선별, ID+IP 세션 생성
4. 응답이 들어오면 만들어놓은 세션에 요청 시작

성능을 높히기 위해 생각했던 구조였다.
멍청한 생각이었다.
세션을 만들어놓고 시간을 단축한다는건 좋을지 몰라도
프록시 핑이 1000ms가 나오는 시점에서 동기로 처리하려는 것이 문제였다.

애초에 성능개선에 초점을 둘게 아니었다.
또한, 지금 당장 솔루션이 서비스에 필요한 정보를 제공해주지 못하고 있으니
이쁘고 성능 좋은 코드보다 빠른 개발에 포커스를 맞춰야했다.

그래서 아래와 같이 로직을 바꿨다.

0. 프록시 옵션 sticky로 변경(1분에 한번씩 변경)
1. 프로그램 시작
2. 요청 들어옴 - 프록시 50개중 무작위 선별 - 정보 크롤링
3. 에러터지면 될때까지 새로운 프록시로 변경

결과는? 훨씬 효과적이었다.
이전에는 계속 밴을 당하고, 아이디 자체에도 Limit이 걸렸지만
새 로직은 리밋 없이 계속 유저 정보를 긁어올수 있었다.
응답시간도 평균 2.2초정도로 나쁘진 않았다.

얻은 점, 배운 점

성과

API 명세대로 서버 구축부터 다운타임 없는
엔드포인트 구축까지 2주만에 완성 성공!
월단위로 N만원씩 솔루션회사에 냈던걸
1건 조회당 0.3원으로 떨어트려, 원래 지불하던 금액의 5%만 지불하면 되게 만들었다.
물론 서버 무료 인스턴스를 쓰니까 가능한 얘기다.

배운 점


부트캠프부터 직장에 들어온 오늘까지 느낀다.
내 신조가 '안되는건 없다. 아직 내 머리를 들이밀지 않은 것 뿐이다' 인데,
매번 '아.. 좀만 더 천천히 알아보고 할걸' 이라는 생각이 든다.
신중을 기하고, 좀 더 천천히 가보자.

"그럼 머리 들이밀기 안할거야?"
"아니? 천천히 들이밀건데?"

profile
박치기공룡의 개발일지

6개의 댓글

comment-user-thumbnail
2025년 12월 28일

좋은 경험 공유 감사합니다.
혹시 프록시 서버는 어떤 걸 사용하셨나요?

1개의 답글
comment-user-thumbnail
2026년 1월 5일

박치기 공룡 다우시네요 bb

1개의 답글
comment-user-thumbnail
2026년 3월 3일

Superb! She is my favorite one. Thanks for your sharing.

답글 달기