데브코스-데이터엔지니어링
네트워크, HTTP, Web Scraping, robots.txt, DOM
네트워크 네트워크란 컴퓨터끼리 연결해서 데이터를 교환하는 시스템 네트워크를 묶어 근거리 지역 네트워크(Local Area Network, LAN) 탄생 범지구적으로 연결된 네트워크인 Inter Network - 인터넷(Internet) 탄생 인터넷 : 여러 컴퓨터끼리 네트워크를 연결한 것 인터넷에서 정보를 교환할 수 있는 환경 WWW(World Wide Web, Web) 탄생 Web 상에서 정보를 주고받는 방법? 클라이언트(브라우저)와 서버가 HTTP를 통해 서로 통신을 함 클라이언트(Client) : 정보를 요청하는 곳 서버(Server) : 정보를 제공하는 곳 HTTP는 웹에서 클라이언트와 서버 사이에 필요한 정보는 헤더로 주고받고, HTML 또는 Image 같은 실제 데이터는 페이로드 부분에 받을 ..
HTML
HTML 기본 문법 콘텐츠를 가지는 태그 콘텐츠 콘텐츠를 가지지 않는 태그 속성과 값 HTML 기본 문서 형식 부모요소 자식요소 들여쓰기와 내어쓰기를 제대로 안해도 컴퓨터는 해석 가능 하지만 개발자 간 코드 해석을 위해 잘 지키자 주석 시작 태그 : 사람 눈에 보이지 않는 문서의 정보가 담기는 영역 메타 데이터 추가 설명 , , 문서 내용의 외형에 영향을 주는 태그 사람 눈에 실제로 보이는 콘텐츠 영역 block (블록 레벨 요소) 레고 블록처럼 쌓이고 화면 너비가 꽉차는 요소 , , 등 inline (인라인 레벨 요소) 블록 요소 내 포함되는 요소 , , 등 inline-block 글자처럼 취급되나 block 태그의 성질을 가지는 요소 레이아웃 HTML5 부터 태그를 의미있게 사용하기 위해 "Seman..
힙, 동적계획법, DFS, BFS, PEP8 스타일, Tim Sort
데이터 엔지니어링 데브코스 Day 5 - 자료구조 및 알고리즘 풀기 5 🚀 힙(Heap) 대표 문제 : 더 맵게 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) # 리스트를 힙으로 변환 while scoville[0] < K: if len(scoville) < 2: return -1 min1 = heapq.heappop(scoville) # 가장 작은 원소 min2 = heapq.heappop(scoville) # 두번째 작은 원소 new_scoville = min1 + (min2 * 2) heapq.heappush(scoville, new_scoville) answer += 1 return answer 🚀 동적계획법 ..
해시, 그리디
데이터 엔지니어링 데브코스 Day 4 - 자료구조 및 알고리즘 풀기 4 🚀 해시 (Hash) 해시 함수(hash function)로도 불리며, 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수 아무리 큰 숫자를 넣어도 고정된 크기의 숫자가 나옴 단방향 함수이기에 출력된 값을 통해 입력값을 알 수 없음 키(key)를 해시 함수로 돌려 나온 해시 값에 따라 해시 테이블(hash table)에 저장 입력된 값이 조금만 변해도 결과가 크게 달라지는 특성 (눈사태 효과, Avalanche Effect) 서로 다른 입력값에도 동일한 값이 출력되는 경우가 있음 (해시 충돌, Hash Collision) 입력에 비해 출력의 범위가 작기 때문 이 경우, Separate Chaining 또는..
큐, 트리, 힙
데이터 엔지니어링 데브코스 Day 3 - 자료구조 및 알고리즘 풀기 3 🚀 큐 (Queue) 자료를 보관할 수 있는 선형 구조 자료를 넣을 때에는 한 쪽 끝에서 넣고, 꺼낼 때는 반대쪽에서 꺼냄 넣는 것은 인큐(enqueue) 연산 빼는 것은 디큐(dequeue) 연산 선입선출 (FIFO, First-In-First-Out) 특징을 가지는 선형 자료구조 e.g. 프린트에 인쇄할 문서 보낼 때, 대기열 등 🚀 환형 큐 (Circular Queue) 원형 큐라고도 불림 큐의 한 종류로 원형 구조를 갖추어 FIFO 방식을 사용 정해진 개수의 저장 공간을 돌려가며 사용 원형으로 데이터를 저장하며 앞과 뒤가 연결되어 순환 Front는 큐의 맨 앞 요소를 가리키고, Rear는 큐의 맨 뒤 요소를 가리킴 데이터 추가..
연결리스트, 스택
데이터 엔지니어링 데브코스 Day 2 - 자료구조 및 알고리즘 풀기 2 🚀 연결 자료구조 방식 (Linked Data Structure) 순차 자료구조 방식에서 연산 시간 및 저장 공간에 대한 문제를 개선한 자료 표현 방식으로 연결 자료구조와 비순차 자료구조(Nonsequential Data Structure)가 있음 순차 자료구조 방식처럼 원소의 논리적 순서와 물리적 순서가 일치할 필요 X 연속한 메모리 물리주소에 의해 원소 순서를 표현 X 각 원소에 저장되어 있는 다음 원소의 주소에 대한 참조에 의해서 연결되는 방식이기 때문 물리적 순서를 맞추기 위한 오버헤드 발생 X 순차 자료구조는 하나의 고정 크기 메모리 공간이 필요하지만, 연결 자료구조는 여러 개의 작은 공간을 연결하여 전체를 표현하기에 크기 ..
선형배열, 정렬, 탐색, 재귀, 시간복잡도
데이터 엔지니어링 데브코스 Day 1 - 자료구조 및 알고리즘 풀기 1 🚀 선형 배열 (Linear Array) 배열은 원소들을 순서대로 늘어놓은 것 : [1, 3, -9, 10, 4] 배열의 각각의 원소에는 번호가 있는데 이를 index(인덱스)라 함 index 는 0부터 시작함 마지막 인덱스부터 첫 번째 인덱스까지 접근하려면 -1 부터 -1씩 증가시키면 됨 파이썬에서는 서로 다른 종류의 데이터 또한 줄세울 수 있는 list(리스트) 라는 데이터형 있음 🖥 리스트에 활용할 수 있는 연산들 1. 리스트 길이와 관계 없이 빠른 실행 결과를 보여주는 연산 원소 덧붙이기 : `.append(추가할원소)` 리스트 끝에 추가함 끝에서 원소 하나 꺼내기 : `.pop()' a번째 원소 하나 꺼내기 : `.pop(a..