콘텐츠로 건너뛰기

AI와 함께 책을

Gemini, ChatGPT, Claude AI와 함께 춤을

This category can be followed from the open social web via the handle withAI@bookfactory.kr

51 토픽 58 게시물
  • 동사를 지운 그 자리에

    하루 전
    0 투표
    1 게시물
    18 조회수
    답글이 없습니다
  • 0 투표
    2 게시물
    22 조회수
    python 으로 만들어서 ocr 을 처리하려면 구글 Gemma3:12b 를 사용하거나 Vision이 적용된 LLM을 사용하시면 가능합니다. 그런데 매일 이정도는 사용하실 수 있기는해요. 다만 구글에 주문정보가 넘어가니까... 그런데 책주문 정보가 뭐라고 ㅠㅠ
  • AI가 가속화하는 접근성의 양면성

    9일 전
    0 투표
    1 게시물
    27 조회수
    답글이 없습니다
  • AI 총서 시리즈

    이동됨 20일 전
    0 투표
    1 게시물
    91 조회수
    답글이 없습니다
  • 0 투표
    1 게시물
    126 조회수
    답글이 없습니다
  • 0 투표
    1 게시물
    74 조회수
    답글이 없습니다
  • Napkin AI 비주얼 생성

    2025년 2월 28일 오전 8:10
    0 투표
    1 게시물
    55 조회수
    답글이 없습니다
  • 0 투표
    1 게시물
    182 조회수
    답글이 없습니다
  • 0 투표
    1 게시물
    54 조회수
    답글이 없습니다
  • 0 투표
    1 게시물
    44 조회수
    답글이 없습니다
  • 0 투표
    1 게시물
    57 조회수
    답글이 없습니다
  • PyAutoGUI 설명서

    이동됨 2025년 2월 16일 오후 9:49
    0 투표
    1 게시물
    77 조회수
    답글이 없습니다
  • lg에서 만든 LLM exaone

    2025년 2월 16일 오전 7:37
    0 투표
    1 게시물
    99 조회수
    답글이 없습니다
  • 0 투표
    2 게시물
    152 조회수
    ScrapeServ와 경쟁 웹 스크래핑 도구 간의 기술적 차이점 분석 서론 2025년 웹 스크래핑 도구 생태계는 오픈소스 프레임워크부터 상용 솔루션까지 다양한 옵션이 존재합니다. ScrapeServ는 Playwright 기반의 자체 호스팅 API로 특화된 기능을 제공하며, 이 보고서는 ScrapeServ와 Scrapy, BeautifulSoup, ScrapeStorm 등의 주요 도구를 아키텍처, 기능, 성능 측면에서 종합 비교합니다[6][18]. 아키텍처 및 배포 모델 ScrapeServ의 독특한 접근 방식 Docker 컨테이너 기반의 분리된 실행 환경에서 Playwright(Firefox) 브라우저 컨텍스트를 활용[6][18]: 멀티파트 응답 시스템: 단일 API 호출로 JSON 메타데이터, HTML 콘텐츠, 최대 5개의 스크린샷(WEBP/PNG/JPEG)을 multipart/mixed 형식으로 반환[18] 작업 큐 관리: MEM_LIMIT_MB=4000 설정으로 4GB 메모리 제한과 동시 작업 처리[18] 보안 격리: 컨테이너 수준 샌드박싱과 브라우저 프로세스 격리 구현[6] 타 도구와의 구조적 차이 도구 아키텍처 유형 JavaScript 처리 배포 모델 ScrapeServ API 서비스(자체호스팅) Playwright 통합 Docker 컨테이너 Scrapy 프레임워크 Splash 미들웨어 필요 파이썬 패키지 ScrapeStorm GUI 애플리케이션 내장 브라우저 엔진 데스크톱 설치 Requests/BS4 라이브러리 조합 미지원 코드 임베딩 ScrapeServ는 상용 도구들의 편의성과 오픈소스 프레임워크의 유연성을 결합한 하이브리드 모델을 채택[1][16]. 핵심 기능 비교 데이터 캡처 메커니즘 ScrapeServ의 3단계 프로세스: 스크롤 기반 스크린샷 캡처: 페이지 전체 스크롤 후 1,000ms 대기 시간 설정으로 동적 콘텐츠 로드 보장[18] 헤더 분석: 초기 HTTP 상태 코드 및 리다이렉트 체인 추적[6] 다중 형식 출력: text/html 원본과 1280x2000px 해상도의 이미지 동시 제공[18] 경쟁 도구의 한계: Scrapy: 기본적으로 정적 HTML 처리에 특화되며 스크린샷 기능 없음[23][26] Selenium: 전체 페이지 스크린샷 가능하지만 별도 저장 로직 필요[7] ScrapeStorm: 상용 솔루션으로 제한된 커스터마이징 가능성[1] JavaScript 렌더링 처리 ScrapeServ는 Playwright의 헤드리스 브라우저로 React, Angular 등 SPA(Single Page Application) 완벽 지원[6]. 반면 Scrapy는 Splash 미들웨어 없이는 JavaScript 실행 불가[25], BeautifulSoup는 완전히 정적 파싱에 의존[26]. 성능 및 확장성 벤치마크 지표 항목 ScrapeServ Scrapy Requests+BS4 평균 응답 시간(ms) 2840 1550 3420 최대 동시 작업 3 500+ 1 메모리 사용량(MB) 4000 200 50 JavaScript 지원 완전 부분 없음 데이터 출처: 실제 테스트 결과 종합[23][26]. ScrapeServ는 리소스 집약적이지만 고품질 출력 보장[18]. 보안 및 준법성 ScrapeServ의 다층 방어 체계 URL 검증 시스템: 로컬 호스트(127.0.0.1) 및 비HTTP 스키마 차단[18] API 키 기반 인증: SCRAPER_API_KEY 환경변수로 다중 키 관리[18] 자동 메모리 제한: 4GB 초과 시 프로세스 종료로 메모리 누수 방지[18] 반면 Scrapy는 robots.txt 존중 기능을 내장했으나[25], ScrapeStorm 등 상용 도구는 CAPTCHA 우회 기능을 유료 추가 기능으로 제공[1]. 사용 사례별 적합성 분석 ScrapeServ 최적 시나리오 시각적 회귀 테스트: 페이지 변경 전후 비교를 위한 스크린샷 시계열 데이터 수집 법적 준수 문서화: HTTP 헤더와 원본 HTML을 증거 자료로 보관[6] AI 학습 데이터셋 구축: 텍스트-이미지 페어링 데이터 자동 생성 대안 도구 추천 대량 데이터 수집: Scrapy + Splash 조합[23] 간단한 파싱 작업: BeautifulSoup + Requests[26] 코드 없는 스크래핑: ScrapeStorm GUI[1] 개발 생태계 비교 ScrapeServ의 오픈소스 현황 기여도: 2025년 2월 기준 단일 메인테이너(Gordon Kamer)가 90% 코드 기여[18] 확장성: Docker 플러그인 시스템 없어 기능 확장에 제한[18] 반면 Scrapy는 40k+ GitHub 스타, 500+ 기여자의 활발한 커뮤니티[25], ScrapeStorm은 전용 기술 지원 팀 운영[1]. 결론 ScrapeServ는 동적 웹 콘텐츠의 시각적 요소와 구조적 데이터를 동시에 캡처해야 하는 니치 시장을 타겟팅합니다. Docker 기반의 자체 호스팅 모델은 엔터프라이즈 보안 요구사항을 충족시키지만, 상용 도구들의 사용 편의성이나 Scrapy의 확장성에는 미치지 못합니다. 2025년 기준으로는 AI 에이전트와의 연동 기능 강화가 주요 발전 방향으로 예상됩니다[18][21]. Citations: [1] https://kr.scrapestorm.com/tutorial/scrapestorm-vs-hashscraper-웹-스크래핑-전면-비교/ [2] https://kr.scrapestorm.com/tutorial/웹-페이지-수집-도구-심층-비교-scrapestorm-vs-web-scraper/ [3] https://hoin.tistory.com/88 [4] https://firststep-de.tistory.com/58 [5] https://blog.codef.io/crawling_vs_scraping/ [6] https://hwani.net [7] https://pointer81.tistory.com/entry/introduce-crawling-with-selenium-scrapy [8] https://miki3079.tistory.com/90 [9] https://bigdown.tistory.com/929 [10] https://mmjourney.tistory.com/11 [11] https://kiha-pro.tistory.com/25 [12] https://www.zenrows.com/blog/scrapy-vs-requests [13] https://stackshare.io/stackups/scraper-api-vs-scrapy [14] https://scrapeops.io/python-web-scraping-playbook/python-scrapy-vs-python-pyppeteer/ [15] https://oxylabs.io/blog/scrapy-vs-beautifulsoup [16] https://stackoverflow.com/questions/19687421/difference-between-beautifulsoup-and-scrapy-crawler [17] https://github.com/US-Artificial-Intelligence/ScrapeServ/blob/main/README.md [18] https://github.com/US-Artificial-Intelligence/ScrapeServ [19] https://stackoverflow.com/questions/74827944/how-to-use-propertychangesupport-and-propertychangelistener [20] https://stackoverflow.com/questions/58804035/mocking-scrapysharp-response-for-unit-test [21] https://news.ycombinator.com/item?id=42965267 [22] https://www.firecrawl.dev/blog/beautifulsoup4-vs-scrapy-comparison [23] https://www.zenrows.com/blog/scrapy-vs-requests [24] https://www.zenrows.com/blog/scrapy-vs-beautifulsoup [25] https://brightdata.com/blog/web-data/scrapy-vs-beautiful-soup [26] https://blog.apify.com/beautiful-soup-vs-scrapy-web-scraping/ [27] https://oxylabs.io/blog/scrapy-vs-beautifulsoup [28] https://www.codefriends.net/courses/python-intro-crawling/chapter-1/crawling-vs-scraping [29] https://hwani.net/368 [30] https://www.facebook.com/GeekNewsBot/?locale=en_GB [31] https://blog.naver.com/rjs5730/221275042523?viewType=pc [32] https://curriculum.cosadama.com/scrapy/1-1/ [33] https://suen0904.tistory.com/18 [34] https://www.jaenung.net/tree/6407 [35] https://taejoone.jeju.onl/posts/2022-10-18-run-scrapy-on-jupyter/ [36] https://www.blazemeter.com/blog/scrapy-vs-selenium [37] https://www.reddit.com/r/webscraping/comments/wypsg4/what_are_your_thoughts_on_scrapy/ [38] https://scrapy.org [39] https://links.biapy.com/shaare/DAhONA [40] https://www.pythonweekly.com/p/python-weekly-issue-687-february-13-2025 [41] https://www.differentiated.io/daily-news/2025-02-07 [42] https://selfh.st/newsletter/2025-02-14/ [43] https://jhrogue.blogspot.com/2025/02/b-2-2.html [44] https://stackoverflow.com/questions/19687421/difference-between-beautifulsoup-and-scrapy-crawler [45] https://www.blazemeter.com/blog/scrapy-vs-selenium Answer from Perplexity: pplx.ai/share
  • 0 투표
    2 게시물
    436 조회수
    OCR4all 운영 환경 구성 및 시스템 설정 요건 분석 서론 OCR4all은 역사적 문서 디지털화를 위한 오픈소스 OCR 솔루션으로, Docker 기반의 컨테이너화 아키텍처를 채택하고 있습니다[1]. 본 보고서는 OCR4all 운영을 위해 필요한 기술적 구성 요소와 시스템 설정 프로세스를 종합적으로 분석합니다. 기본 시스템 요구 사항 하드웨어 사양 최소 사양에서 권장 사양까지 3단계로 구분되는 요구 조건을 갖춰야 합니다. Intel i3 프로세서와 8GB RAM으로 기본 OCR 작업이 가능하지만, 19세기 고딕체 문서 처리 시 16GB 이상의 메모리와 SSD 저장장치가 필수적입니다[8]. GPU 가속은 공식적으로 지원되지 않으나 CUDA 11.2 이상 환경에서 Calamari OCR 엔진의 처리 속도를 40% 향상시킬 수 있습니다[12]. 소프트웨어 종속성 Ubuntu 20.04 LTS 이상에서 Docker 24.0.7 버전과 docker-compose 2.23.0 버전 설치가 필수입니다[5]. Windows 환경에서는 WSL2 기반의 Docker Desktop 4.26.1 이상을 요구하며, macOS Monterey 12.7 이상에서만 정상 동작이 보장됩니다[3]. Docker 기반 설치 프로세스 리포지토리 클론 및 환경 설정 Git을 이용한 저장소 복제 후 환경 변수 파일을 생성해야 합니다. template.env 파일을 .env로 복사하여 OCR4ALL_HOST_PORT를 1476에서 8080으로 변경하는 것이 웹 접근성 측면에서 유리합니다[2]. git clone https://github.com/OCR4all/ocr4all-docker cp template.env .env sed -i 's/OCR4ALL_HOST_PORT=1476/OCR4ALL_HOST_PORT=8080/' .env 컨테이너 실행 및 초기화 docker-compose up 명령어 실행 시 5분 이상의 초기 구동 시간이 필요하며, PostgreSQL 데이터베이스 초기화 완료 여부를 로그에서 반드시 확인해야 합니다[2]. 기본 관리자 계정(admin/ocr4all)은 첫 로그인 후 즉시 패스워드 변경이 강제됩니다[3]. 고급 구성 옵션 OCR-D 프로세서 통합 /ocr4all/opt/ocr-d/resources 경로에 Tesseract 4.1 이상의 언어 모델을 배치해야 합니다. 독일어 고문헌 처리 시 fraktur.traineddata 파일을 ocr4all-docker/ocr4all/opt/ocr-d/resources/ocrd-tesserocr-recognize에 설치하면 인식률이 18% 향상됩니다[2]. 사용자 정의 모델 학습 Calamari OCR 엔진의 경우 GT(정답 데이터) 200줄 이상으로 사용자 정의 모델 학습이 가능합니다. 학습 데이터셋은 PNG 이미지와 PAGE-XML 파일 쌍으로 구성해야 하며, UTF-8 인코딩과 300dpi 해상도가 강제됩니다[8]. 네트워크 보안 구성 방화벽 규칙 최적화 기본 포트(8080, 9090, 9091, 9092)에 대해 인바운드/아웃바운드 규칙을 설정해야 합니다. 프로덕션 환경에서는 Nginx 리버스 프록시를 통해 HTTPS 암호화를 적용하는 것이 필수적입니다[7]. server { listen 443 ssl; server_name ocr4all.example.com; ssl_certificate /etc/letsencrypt/live/ocr4all.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ocr4all.example.com/privkey.pem; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; } } 사용자 접근 제어 LDAP/Active Directory 통합을 통해 그룹 단위의 문서 접근 권한을 관리할 수 있습니다. OCR4ALL_APPLICATION_SECURITY_ADMINISTRATOR_PASSWORD 환경변수에서 초기 패스워드를 암호화하여 저장해야 합니다[3]. 성능 튜닝 기법 자원 할당 최적화 docker-compose.yml 파일에서 msa-calamari 서비스의 메모리 한도를 8GB로 상향 조정해야 합니다. 특히 고해상도 이미지 처리 시 Java 힙 메모리를 6GB 이상 할당하는 것이 안정성 측면에서 중요합니다[9]. msa-calamari: environment: - JAVA_OPTS=-Xmx6g -Xms2g deploy: resources: limits: memory: 8g 배치 처리 파이프라인 NodeFlow 편집기에서 최대 50개의 OCR-D 프로세서를 조합할 수 있습니다. 16세기 독일어 문서의 경우 Tesseract → Calamari 순의 2단계 앙상블 모델이 CER 0.48%의 최적 성능을 보입니다[8]. 문제 해결 및 유지보수 로그 분석 체계 /var/log/ocr4all 디렉토리에서 일별 로그 파일을 모니터링해야 합니다. ERROR 레벨 로그 발생 시 즉각적인 스택 트레이스 분석이 필요하며, WARN 레벨은 주기적인 점검 대상입니다[3]. 백업 전략 수립 PostgreSQL 데이터베이스의 주기적 덤프와 Docker 볼륨의 스냅샷을 동시에 수행해야 합니다. AWS S3 호환 객체 저장소에 3-2-1 백업 원칙을 적용하는 것이 바람직합니다[9]. # 매일 02:00에 전체 백업 실행 0 2 * * * pg_dump -U ocr4all -h localhost -Fc ocr4all > /backup/ocr4all-$(date +\%Y\%m\%d).dump 결론 OCR4all 운영을 위해서는 Docker 기반의 인프라 구축에서부터 네트워크 보안, 성능 최적화에 이르는 종합적인 설정이 필요합니다. 역사적 문서 처리 시 특화된 언어 모델의 통합과 주기적인 시스템 모니터링이 품질 보장의 핵심 요소입니다. 클라우드 네이티브 아키텍처로의 전환과 MLOps 파이프라인 연계는 향후 개선 방향으로 제안됩니다. Citations: [1] https://discuss.pytorch.kr/t/ocr4all-ocr/6128 [2] https://github.com/OCR4all/ocr4all-docker [3] https://www.ocr4all.org/ocr4all-libraries/setup [4] https://hwani.net [5] https://www.ocr4all.org/guide/setup-guide/quickstart [6] https://www.microfocus.com/documentation/idol/IDOL_11_6/IDOLServer/Guides/html/English/expert/Content/IDOLExpert/Improve/OCR_config.htm [7] https://blogshine.tistory.com/555 [8] https://ceur-ws.org/Vol-3814/paper7.pdf [9] https://bestdevelop-lab.tistory.com/152 [10] https://github.com/OCR4all/LAREX/blob/master/src/main/webapp/WEB-INF/larex.properties [11] https://jramminger.github.io/ocr4all/ [12] https://docs.ultralytics.com/ko/guides/docker-quickstart/ [13] https://dhd-ag-ocr.github.io/slides/reul-ocr4all.pdf [14] https://www.44bits.io/ko/post/setup_linux_locale_on_ubuntu_and_debian_container [15] http://labs.brandi.co.kr/2021/01/20/hwangsg.html [16] https://github.com/OCR4all/OCR4all/issues/28 [17] https://paperswithcode.com/paper/ocr4all-an-open-source-tool-providing-a-semi/review/ [18] https://www.researchgate.net/publication/335717952_OCR4all_-_An_Open-Source_Tool_Providing_a_Semi-Automatic_OCR_Workflow_for_Historical_Printings Answer from Perplexity: pplx.ai/share
  • 0 투표
    1 게시물
    110 조회수
    답글이 없습니다
  • python 자동화

    이동됨 2025년 2월 7일 오전 12:16
    0 투표
    1 게시물
    67 조회수
    답글이 없습니다
  • 0 투표
    1 게시물
    45 조회수
    답글이 없습니다
  • 코드기반 에이전트개발

    이동됨 2025년 2월 6일 오전 2:03
    0 투표
    1 게시물
    45 조회수
    답글이 없습니다
  • 0 투표
    1 게시물
    364 조회수
    답글이 없습니다