[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고 엔코아 AI 캠퍼스에서 첫 주는 Orientation과 하루 일정의 교육이 이루어 지다 보니, 이번 주가 본격적인 첫 주라고 봐야 할 것 같다. 정말 시간이 눈 깜짝할 사이에 지났다. 이번 주는 AI 개발자의 가장 기본이 되는 Python Programming 능력을 다지고, 실제 데이터 분석 의 핵심인 데이터 수집과 전처리 기술을 습득하는 매우 중요한 시간이었다. Python의 핵심 문법부터 라이브러리를 활용한 실무 기술까지, 적지 않은 양을 학습했고, 학습한 것들을 정리해 본다. 1. Python Programming 문법 가장 먼저 프로그래밍의 기초가 되는 변수와 제어문을 시작으로 코드의 재사용성을 높여주는 함수와 복잡한 데이터를 효율적으로 다루기 위한 자료구조를 학습했다. (1) Python 핵심 문법 정리 - 제어문 : if, for, while 등 조건에 따른 흐름 제어 및 반복 작업 수행 - 자료구조 : 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary), 세트(Set) 등 데이터 특성에 맞는 저장 및 관리 - 함수(Function) : 코드의 논리적 단위 분리, 매개변수와 반환 값을 활용한 코드 재사용성 극대화 # 자료구조와 함수 활용 예시 def process_data(data_list): result = {} for item in data_list: if item not in result: result[item] = 1 else: result[item] += 1 return result data = ['apple', 'banana', 'apple', 'orange', 'banana'] count_result = process_data(data) print(count_re...

Day005 - 데이터 수집(Data Acquisition)

Day005 - 데이터 수집(Data Acquisition)

오늘은 데이터 분석의 첫 단계인 '데이터 수집(Data Acquisition)' 기법 전반을 학습했다. 네이버(Naver)와 공공데이터 포털(Data.go.kr)의 공개 API를 활용부터 브라우저 내장 개발자 도구 분석, 정적∙동적 웹 크롤링(Web Crawling)까지 데이터 수집의 대표적인 방법을 실습 했다.

Naver Developers

1. 공개 API 활용

먼저 Open API(Application Programming Interface)를 활용해 안전하고 정형화된 데이터를 수집했다. API Key 관리를 위해 보안에 유의하며, python-dotenv 라이브러리로 .env 파일에 비밀 Key를 격리 했다.

- 네이버 API : requests 모듈(Module)로 블로그 검색 및 이미지 검색을 수행하고, 특수 문자를 제거하는 정규식 함수를 작성해 이미지 파이프라인을 구축 했다.

- 공공데이터 포털 API : 출입국 관광 통계 API를 활용해 국적/월별 방한 외래 관광객 수치 데이터를 JSON 형태로 수집 했다.

import os
import requests
from dotenv import load_dotenv

# 환경 변수로 API KEY 보안 관리
load_dotenv()
NAVER_CLIENT_ID = os.getenv("NAVER_CLIENT_ID")
NAVER_CLIENT_SECRET = os.getenv("NAVER_CLIENT_SECRET")


2. 브라우저 내장 개발자 도구(F12)를 통한 내부 API 분석

공개된 API가 없는 경우, 브라우저의 Network 탭(F12)을 활용해 웹페이지 내부에서 주고 받는 API 요청을 역추적(Networking Sniffing)하는 기법을 익혔다. XHR/Fetch 요청을 분석하여 숨겨진 JSON 데이터 URL을 찾아 직접 요청을 보냄으로써 크롤링 보다 빠른 효율성을 경험 했다.


브라우저 개발자 도구(F12)

XHR/Fetch


3. 정적 및 동적 웹 크롤링(Web Crawling, Scraping)

- 정적 크롤링 : BeautifulSouprequests 를 사용해 HTML 구조를 파싱하고 CSS Selector로 원하는 데이터를 추출 했다.

- 동적 크롤링 : JavaScript로 실시간 데이터가 로딩되는 SPA나 무한 스크롤 페이지는 SeleniumPlaywright 라이브러리를 활용해 자동화 브라우저 조작을 구현 했다.

BeautifulSoup & Selenium


다양한 데이터 수집 방식을 학습하며, 무작정 크롤링을 시도하기보다는 우선 공개 API를 활용해 보고, 공개 API가 없을 경우, 내부 API를 분석하고 정적 크롤링, 동적 크롤링 순서로 효율적인 접근법을 택해야 하는 걸 익혔다. 크롤링 시, 서버에 부하를 주지 않도록 매너 있는 요청 간격을 유지하는 점도 잊지 말아야 겠다.


#DataAcquisition #DataCollection #Crawling #Scraping #DataSet #Naver #OpenAPI #API #Data #Sniffing #BeautifulSoup #requests #Selenium #Playwright #env #TIL

댓글

이 블로그의 인기 게시물

[SK네트웍스 family 엔코아AI캠퍼스] 나의 목표는 머신러닝 엔지니어다.

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 3주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고