회원의 실제 거주여부를 확인하기위해서, CODEF라는 회사에서 만든 주민등록등본을 제공받는 API를 사용한다.
해당 CODEF API가 사실은 정부24 웹페이지에서 스크래핑기술을 이용하여,
주민등록등본을 발급하는 방식으로 동작하는데, 가격이 사실..후덜덜하다, 건당 120원정도 한다.
회원이 급격하게 늘거나, 동일 회원이 여러번 스크래핑을 수행해야하는 경우, 가격이 만만치 않다.
건당 120원이나 되면...
그런데 이거 인터넷 주민등록등본 발급은 무료인데...(봉이 김선달이네!!!)
그래서 이 스크래핑을 내재화하여, 추가적인 비용을 줄일수있는 방법을 없을까 생각을 해봤다.
우선 스크래핑을 어떤식으로 만들어야 좋을지를 정리해 봤다.
1) 서버 스크래핑방식보다는 클라이언트 스크래핑 방식으로 구현한다.
- 서버 스크래핑은 서버에서 리모트 크롬 브라우저를 띄우고, 정부24웹페이지에 회원이 접근하는것과 같이 스크립트를 통해, 진행한다.(마치 오토마우스 처럼)
- 단점 :
- 다수의 부정한 접근(다른사용자이지만 같은 서버아이피로 접근)으로 판단되면, 정부24에서 서버의 아이피를 막아버린다.
서버의 아이피가 막히지 않게 하기위해, 다수의 서버를 준비하여 롤링하며 스크래핑을 동작하고,
최대한 부정접근에 걸리지않게 천천히 느리게 스크래핑을 한다. (TPS가 상당히 떨어진다)
- 클라이언트 스크래핑은 사용자의 앱에서 웹뷰를 통해, 스크래핑을 진행하기에,
부정한 접근으로 아이피가 막히는 경우를 예방할수있다.
그리고 사용자의 각각의 앱의 웹뷰에서 스크래핑이 진행되기에, 성능도 최대한 올릴수있다.
2) 스크래핑을 위한 스크립트를 클라이언트에 하드코딩하지 않는다.
- 클라이언트 스크래핑의 가장 큰 단점은 스크래핑하려는 웹페이지가 변경되는 경우,
스크래핑 로직(스크립트)이 클라이언트에 존재하기때문에, 앱배포를 통해 대응해야한다.
(앱배포는 상당한 시간이 걸리지...ㅠㅠ)
- 따라서, 스크래핑 로직은 서버에서 API로 관리하고, 클라이언트는 해당 로직코드를 앱에 하드코딩하지않고,
API를 통해 내려받아 동적으로 사용한다. 문제가 있을경우, 서버에서 스크래핑 로직(스크립트)을 수정배포한다.
3) 웹뷰와 앱간의 브릿지 통신에 대한 최대한의 스펙을 정리한다.
- 결국 웹뷰에서 스크래핑을 위한 스크립트를 실행하는 구조기때문에, 스크립트 덩어리로 동작을 하게 되는데,
이경우 일정한 스펙을 만들지 않으면, 관리가 어려워진다.
따라서, 어셈블리나 여타 스택머신과 같이 동작하도록 "명령어 인자 ..."와 같은 스펙으로 웹뷰와 앱간에 브릿지 통신 스펙을 만들고,
해당 스펙을 통해, 스크립트를 동작시키도록 한다.
위에 3가지를 고민했고, 위의 고민으로 주말에 각잡고 만들어봤다!!! ㅋㅋㅋ (절대 할일없어서 아님!)
목표는 정부24의 주민등록등본 발급 스크래핑!!!!
결과는!!!!
성공적!!!
다만 왜,, 서버 방식으로 스크래핑을 많이 구현하는지 알것같기도 한다...
서버 방식이 훨씬 난이도가 낫다...
클라이언트 방식의 난이도가 상단히 높았다...
클라이언트에서는 웹뷰를 통해, 스크래핑을 시도하게 되는데, 웹뷰 이놈이 상당히 별로다.
즉, pc브라우저 대비, 안되는 기능들이 너무 많아서, 여러 이슈들을 해결하며 스크래핑 엔진을 만들어야한다.
클라이언트 엔진, 서버 스크래핑 명령어 API 이 2개를 모두 잘 만들어야 하기에,
난이도가 생각보다 높았다....
어려움이 있었지만, 그래도 성공적이다.
조금만 다듬으면, 클라이언트 방식 스크래핑 엔진을 릴리즈 할수있을듯하고, 많은 비용을 세이브할것 같다.
(이걸로 장사해도 되겠다!! 건당 50원!!! 어떤가 CODEF!!! 무섭지?!!)
아래는 실제 동작하는것 녹화한것!! ㅋㅋ

'MY아이디어' 카테고리의 다른 글
| [아이디어] 테슬라 데이터 수집 - 테슬라가 빌런이다. (4) | 2026.04.25 |
|---|---|
| [아이디어] javafx로 OsTray영역에 텍스트 넣기 (0) | 2026.04.19 |
| [아이디어] 복잡한 로직은 GraalVM JavaScript엔진을.. (0) | 2026.04.13 |
| [아이디어] Switch문 최대한 안쓰기 (0) | 2026.04.10 |
| [아이디어] 스크래핑으로 플로우 간단히 만들기 (0) | 2026.04.07 |
