[이어드림스쿨 1주차] IT Literacy (2)

KiwiChipKiwiChip
4 min read

라이브러리와 프레임워크

라이브러리와 프레임워크

  • 라이브러리:

    • 코드 역사가 쌓이며 자주 사용하게 되는 기능이 발생

    • 자주 사용하는 기능을 함수로 묶어 사용하는 형태로 변경

    • Package라고 불리기도 함

    • 검증된 라이브러리를 잘 활용하는 것도 개발자의 능력이며, 데이터 처리 관련해서는 따로 학습을 해야 할 정도로 큰 라이브러리도 존재한다

    • 적절치 못하게 사용하면 성능이 저하될 수 있다

    • API와의 차이점: API와 비슷하게 재사용 가능한 코드를 반복적으로 활용하지만, API는 네트워크와 통신을 통해 기능을 제공한다는 면에서 다르다.

  • 프레임워크:

    • 프로그램을 효율적으로 짜기 위한 프레임(어떤 형태의 틀을 가진 형태)

    • 코드를 작성하기 위한 구조 제시

    • 공통된 규칙을 활용해야 하기 때문에 협업에 매우 유리하며, 코드 로직 자체에 집중

    • 언어별로 다양한 프레임워크가 존재하며, 각각 제공하는 도구나 툴이 다름

공통점

  1. 소프트웨어 개발을 돕는 도구

    • 라이브러리와 프레임워크 모두 개발자가 직접 모든 기능을 구현할 필요 없이 특정 기능을 쉽게 구현할 수 있도록 지원하는 코드 모음이다.
  2. 재사용 가능한 코드 제공

    • 특정 기능을 수행하는 코드가 미리 작성되어 있어, 이를 가져다 사용하면 코드 재사용성이 높아지고 개발 속도가 빨라진다.
  3. 외부에서 제공됨

    • 개발자가 직접 작성하는 것이 아니라, 다른 개발자나 커뮤니티에서 제공한 도구를 사용한다.

차이점

구분라이브러리 (Library)프레임워크 (Framework)

개발 방식

개발자가 필요할 때 호출해서 사용

프레임워크의 구조 안에서 개발해야 함

제어 흐름

개발자가 주도적으로 코드 실행 흐름을 결정

프레임워크가 전체 실행 흐름을 제어 (Inversion of Control)

유연성

원하는 기능만 선택적으로 사용 가능

특정한 구조와 패턴을 따라야 함

예시

NumPy, Pandas, Requests, TensorFlow (API 방식)

Django, Spring, React, Angular

쉽게 이해하는 비유

  • 라이브러리: 요리할 때 소스를 직접 만들어야 하는 대신, 시판 소스를 사서 사용하는 것 (개발자가 원하는 곳에 직접 호출해서 사용 가능).

  • 프레임워크: 요리 키트처럼 요리 방법이 정해져 있고, 그 틀 안에서 재료를 넣어야 하는 것 (개발자가 정해진 방식에 따라 개발).

대표적인 예시

  • 라이브러리 예시

    • NumPy: 수학 및 과학 연산을 위한 라이브러리

    • Requests: HTTP 요청을 쉽게 보낼 수 있는 라이브러리

    • Pandas: 데이터 분석을 위한 라이브러리

  • 프레임워크 예시

    • Django: 웹 애플리케이션을 만들기 위한 Python 프레임워크

    • React: 컴포넌트 기반의 JavaScript 프론트엔드 프레임워크

    • Spring: Java 기반의 백엔드 개발 프레임워크



검색엔진 최적화 SEO

SEO

  • SNS 홍보 외 일반 검색에서 상단에 노출이 되기 위한 방법

  • 검색 엔진 최적화

검색 엔진의 시작

  • 웹 사이트의 정보를 다운로드해 DB에 저장하고 웹 구성요소를 분류, 분석해 최적의 검색 알고리즘을 만들어감 → 구글 창립

  • 해시 태그도 검색 최적화 시도 중 하나

  • 구글 검색엔진 3단계**: 크롤링 → 색인 생성 → 최종 검색결과 제공**

    • 크롤링:

      • 구글의 웹 크롤러(Googlebot) 가 웹페이지를 방문하고, 링크를 따라가며 새로운 콘텐츠를 수집하는 과정

      • HTML, 텍스트, 이미지, 메타데이터 등을 읽어옴

    • 색인(Indexing):

      • 크롤링한 데이터를 검색 가능한 데이터베이스(인덱스, Index) 에 저장하는 과정

      • 웹페이지의 키워드, 콘텐츠, 메타 태그, 제목, 링크 구조 등을 분석하여 저장

      • 검색 엔진이 빠르게 결과를 제공할 수 있도록 데이터를 최적화

    • 최종 검색결과 제공(Ranking & Retrieval):

      • 사용자가 검색어를 입력하면, 색인된 데이터 중 관련성이 높은 페이지를 검색 순위(Ranking) 알고리즘에 따라 제공

      • 페이지의 콘텐츠 품질, 키워드 포함 여부, 백링크 수, 사용자 경험(UX) 등 다양한 요소가 반영됨

크롤링(Crawling)

크롤링(Crawling)은 웹페이지의 데이터를 자동으로 수집하는 기술로, 주로 검색 엔진이나 데이터 분석을 위한 프로그램(웹 크롤러, 스파이더)이 수행.

  • 다양한 목적:

    • 시장가격 조사를 위한 데이터 모음

      • 전자상거래 사이트에서 상품 가격, 할인 정보, 판매량 등을 수집하여 경쟁사와 비교

      • 특정 산업의 트렌드를 분석하고 시장 변화 예측 (예: 인기 상품, 신제품 출시 시점 분석)

    • AI 훈련을 위한 데이터 확보

      • 자연어 처리(NLP) 모델 훈련을 위한 대량의 텍스트 데이터 수집 (뉴스, 블로그, 소셜 미디어 데이터)

      • 이미지 및 영상 크롤링을 통해 컴퓨터 비전 모델 학습 데이터 확보

      • 추천 시스템을 위한 사용자 리뷰 및 평점 데이터 수집

    • 가격 비교 사이트

      • 여러 쇼핑몰의 같은 상품 가격을 비교하여 소비자에게 최적의 가격 제공

      • 실시간으로 업데이트하여 특가 및 할인 정보를 자동 반영

      • 예) 네이버 쇼핑, 다나와, 쿠팡 가격 비교 기능

    • 뉴스 및 소셜 미디어 데이터 수집

      • 특정 주제의 뉴스를 크롤링하여 자동 요약 및 분석

      • 소셜 미디어(트위터, 인스타그램)에서 해시태그 및 키워드를 기반으로 트렌드 분석

      • 정치, 경제, 기술 관련 여론 분석 및 감성 분석

    • 학술 연구 및 논문 분석

      • 논문 사이트(예: arXiv, Google Scholar)에서 최신 논문을 수집하여 연구 동향 분석

      • 특정 키워드(예: "딥러닝", "자연어 처리")로 논문 검색 후, 논문 내용 요약 및 트렌드 예측

  • 크롤링 이슈:

    • 서버 트래픽 부담 증가

      • 크롤러가 웹사이트에 자주 접속하면 서버에 부하를 주고 속도가 저하될 수 있음

      • 많은 사용자가 크롤링을 하면 서버 유지 비용 증가 → 사이트 운영자가 차단할 가능성 높음

  • 크롤링 금지 및 법적 문제

    • 일부 사이트는 robots.txt 파일을 통해 크롤링을 제한함

      • 예) User-agent: * Disallow: /private/ (해당 페이지 크롤링 금지)
    • 개인정보보호법(GDPR, CCPA)에 따라 사용자 정보(이메일, 이름 등) 크롤링 금지

    • 특정 사이트의 데이터를 상업적으로 이용할 경우 저작권 문제 발생 가능

  • 차단 우회 및 대응 기법

    • 사이트 운영자는 크롤링을 막기 위해 IP 차단, CAPTCHA 적용, 요청 제한(rate limit) 설정 등의 조치를 취함

    • 크롤러는 이를 우회하기 위해 IP 로테이션, User-Agent 변경, 헤더 조작 등의 기법을 사용

  • ✅ 크롤링할 때 고려해야 할 점

    robots.txt 확인: 크롤링이 허용된 페이지인지 먼저 확인
    과도한 요청 자제: 서버 부하를 줄이기 위해 요청 간 간격 조정(예: time.sleep(1))
    법적 문제 검토: 개인정보 및 저작권 관련 법률 준수
    데이터 활용 목적 명확화: 연구, 분석, AI 학습 데이터 수집 등의 정당한 용도로 활용

0
Subscribe to my newsletter

Read articles from KiwiChip directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

KiwiChip
KiwiChip

I'm currently learning Python and studying RAG (Retrieval-Augmented Generation).