Data Engineering 12

6. 파이썬 기반 크롤러

1. 크롤링(Crawling) vs 스크래핑(Scraping) 개념 및 기술 스택웹 크롤링 (Web Crawling): 조직적·자동화된 방법으로 웹을 순회하며 하이퍼링크를 탐색·수집하고 인덱싱(색인)하는 '무한 웹 순회 및 링크 수집 기술' (ex: 구글 검색 엔진 봇)웹 스크래핑 (Web Scraping): 정해진 특정 웹 페이지에 타겟팅하여 우리가 원하는 특정 알갱이 데이터(가격, 제목, 리뷰 등)만 도려내어 구조화된 파일로 보관하는 '데이터 추출 기술'🛠️ 수집 대상에 따른 핵심 기술 스택정적 페이지 데이터 추출 (HTTP 통신):requests, urllib: 서버에 HTTP 요청을 보내고 순수한 HTML 소스 코드를 응답받는 라이브러리BeautifulSoup: 받아온 HTML 문자열을 메모리에..

5. ERD 정규화 및 비정규화

1. ERD 정규화(Normalization) 전략 : 무결성 확보정규화는 데이터의 중복을 최소화하고 일관성을 확보하여, 데이터를 다룰 때 발생하는 이상 현상(Anomaly: 삽입·수정·삭제 이상)을 구조적으로 제거하기 위해 테이블을 쪼개어 나가는 과정입니다.1️⃣ 제1정규화 (1NF) : 원자값 확보핵심 개념: 테이블의 모든 속성은 더 이상 쪼개질 수 없는 단 하나의 원자값(Atomic Value)만 가짐해당 현상: 하나의 칸(Cell)에 여러 개의 데이터가 쉼표(,) 등으로 나열되어 있는 상태해소 전략: 중복 그룹을 분리하여 행(Row)을 늘리거나 별도의 하위 테이블로 독립실무 예시: [학생] 테이블의 '취미' 컬럼에 독서, 축구가 동시에 있다면 ➔ [학생취미] 테이블을 신설해 분리2️⃣ 제2정규화 ..

4. ERD 설계

1. ERD 설계의 개념과 궁극적 의의ERD 설계는 단순한 테이블 드로잉이 아니라, 모호한 비즈니스 도메인을 표준 기호로 추환하여 단 하나의 의미로 고정하는 고도의 엔지니어링 및 추상화 과정입니다.비용의 기하급수적 절감 (선 설계 후 구현):코딩 및 테스트 단계에서 데이터 구조 결함이 발견되면 시스템 전체를 뜯어고쳐야 하므로 막대한 재작업 비용이 듦.설계 단계에서의 수정은 지우개나 툴 클릭 몇 번으로 가능하여 리스크를 선제 해결이해관계자 간의 번거로운 번거로움 해소 (Bridge): 현업 실무자(비즈니스 언어)와 개발자(데이터/코드 언어) 사이의 언어 격차를 연결하는 공통의 시각 언어(Universal Visual Language) 역할을 수행데이터 무결성(Integrity) 확보:코드는 버그가 나면 패..

3. ERD 개요

1. 데이터 모델링(Data Modeling)의 이해🔹 데이터 모델링이란?현실 세계의 복잡한 비즈니스 요구사항(사람, 사물, 행위 등)을 추상화, 단순화, 명확화하여 컴퓨터 시스템이 이해하고 처리할 수 있는 데이터베이스 구조로 설계하는 전체 공정입니다.특징추상화( Abstraction) : 정보를 일정한 형식에 맞춰 표현단순화(Silmplification) : 누구나 이해할 수 있게 표기법으로 규격화명확화(Clarity) : 오해를 방지하고 한 가지 의미로 해석되게 함🔹 점진적으로 발전하는 3단계 파이프라인데이터 모델링은 한 번에 완성되지 않으며, 비즈니스 관점에서 하드웨어 관점으로 구체화되는 생명 주기를 가집니다.개념적 데이터 모델링 (Conceptual Modeling)목적: 핵심 엔터티(Enti..

2. SQL 기초

1. 데이터 제어 언어 (DCL: Data Control Language)데이터베이스의 보안, 접근 권한 관리, 무결성 유지를 위해 계정에 권한을 부여하거나 회수하는 최상위 통제 계층입니다.GRANT (권한 부여): 특정 사용자 계정에 DB 객체(테이블, 뷰 등)의 조작/정의 권한 부여문법 조합: GRANT [권한] ON [대상] TO [계정];REVOKE (권한 회수): 이미 부여된 권한을 박탈하여 회수문법 조합: REVOKE [권한] ON [대상] FROM [계정];FLUSH PRIVILEGES;: 변경된 권한 설정을 MySQL 시스템 메모리에 즉시 동기화(재로드)하는 필수 명령어 -- [준비] 모든 IP('%')에서 접속 가능한 'ana_min' 계정 생성 CREATE USER 'ana_min'..

1. Database 개요

1. 데이터(Data)의 정의와 분류🔹 데이터와 정보데이터(Data): 단순한 수치나 문자 (예: 38)정보(Information): 데이터에 문맥(Context)과 의미가 부여된 가치 있는 형태 (예: 오늘 서울의 최고 기온은 38°C이다.)🔹 형태 및 구조화 수준에 따른 분류정형 데이터(Structured Data): 고정된 틀(테이블 구조)이 있고 연산이 빠른 데이터 (예: RDBMS의 이름, 나이 등)반정형 데이터(Semi-structured Data): 고정된 틀은 없으나 데이터 내에 태그나 메타데이터가 포함된 데이터 (예: JSON, XML)비정형 데이터(Unstructured Data): 형태가 없고 규칙성이 없는 데이터 (예: 이미지, 영상, 오디오, 텍스트 원문)🔹 속성 및 시간에 ..

5. Docker Compose 이해

1. 도커 컴포즈(Docker Compose)의 핵심 철학현대적인 웹 서비스는 웹 서버, API, 데이터베이스, 캐시 등 여러 컨테이너가 유기적으로 움직입니다. Docker Compose는 이를 일일이 docker run으로 띄우는 불편함을 해결하기 위해 탄생한 "다중 컨테이너 통합 관리 도구"입니다.핵심 가치: docker-compose.yml이라는 정의서 한 장으로 복잡한 다중 인프라를 선언적으로 구축궁극의 이점:주렁주렁 달린 환경 변수와 볼륨 설정을 단 하나의 파일로 규격화명령어 한 줄로 인프라 전체의 생성 및 완전 폭파(수명 주기)를 제어환경별(.env 변수 파일 연동) 설정을 분리하여 관리 효율성을 극대화2. docker-compose.yml 구조 및 작성 예시설정 파일은 크게 services(..

4. Dockerfile 작성 및 이미지 최적화

1. Dockerfile 주요 명령어 요약도커 파일은 아래에서 위로 쌓이는 레이어(Layer) 구조 형성FROM: 모든 빌드의 시작점이며, 기반이 될 베이스 이미지 지정WORKDIR: 컨테이너 내부에서 명령어가 실행될 작업 디렉토리 설정 (없으면 자동 생성)COPY / ADD: 호스트의 파일을 컨테이너 내부로 복사 (ADD는 URL 다운로드 및 압축 해제 기능 추가 포함)RUN: 이미지 빌드 도중에 실행할 명령어 (패키지 설치, 파일 권한 변경 등 신규 레이어 생성)CMD / ENTRYPOINT: 컨테이너가 시작되는 시점에 실행할 명령CMD: 인자값이 변경될 수 있는 기본 명령 (덮어쓰기 가능)ENTRYPOINT: 컨테이너 실행 목적에 맞게 고정된 명령 (덮어쓰기 불가)EXPOSE: 컨테이너가 외부와 통..

3. Docker의 핵심 3단계 워크플로우(Lifecycle)

🚀 도커의 핵심 3단계 워크플로우 (Lifecycle)🛠️ 1. Build (구축) : 환경을 코드로 정의하고 이미지화개념: 개발자가 애플리케이션과 실행 환경 전체를 하나의 독립된 정적 '도커 이미지'로 패키징하는 단계Dockerfile 작성: OS, 패키지, 소스 코드, 기동 명령 등을 텍스트로 명문화하여 인프라의 코드화(IaC)를 실현이미지 굽기 (docker build): 도커 데몬이 스크립트를 한 줄씩 해석하며 계층 구조의 읽기 전용(Read-only) 레이어를 쌓아 로컬에 저장실무 최적화: 캐시 효율을 고려한 명령어 배치, 멀티 스테이지 빌드를 통해 이미지 용량 최소화 및 보안 취약점 제거 작업을 수행🚢 2. Ship (전송) : 표준화된 이미지의 중앙 저장 및 공유개념: 로컬에서 검증을 ..

2. Docker 실행 프로세스

1. 도커의 3대 프로세스 요약Build (빌드): 사용자가 클라이언트에서 docker build를 수행하면, 도커 데몬이 Dockerfile을 분석하여 읽기 전용 이미지를 생성Pull (다운로드) & Push (배포): docker pull 명령 시 데몬은 레지스트리(Docker Hub 등)에서 이미지를 찾아 호스트로 가져오며, docker push 시에는 검증된 로컬 이미지를 레지스트리로 업로드(Ship)Run (실행): docker run 명령을 내리면 데몬은 호스트에 저장된 정적 이미지를 바탕으로 독립된 컨테이너 인스턴스를 생성하고 실행2. 사용자 관점 vs 시스템 관점 상세 비교도커는 사용자에게는 복잡한 설정을 생략해 주는 '추상화된 도구(What)'이지만, 내부 시스템에는 호스트 자원을 효율적..