본문 바로가기

데이터엔지니어링

[TIL] 3주차_Day8: 파이썬 웹 크롤링(3) 💡Today I Learned 파이썬을 이용한 웹 크롤링 기술에 대한 세 번째 강의를 진행했습니다. request, beautifulsoup 이용한 html parsing, find 실습 1. BeautifulSoup : html 코드를 분석해주는 파이썬의 html parser 라이브러리 : 특정 태그로 묶인 요소만 보고싶을 때 *) 다른 markup 언어(XML 등)의 parser로도 사용 가능함 2. BeautifulSoup 활용 해 특정 요소만 가져오기 3. HTML의 Locator : 태그 이름만 가지고는 원하는 요소 특정하기 불편.. (같은 이름의 태그가 매우 많을 수 있음) : id, class로 원하는 태그 한정짓기 4. 정적/동적 웹 사이트 : 어떻게 생성되는지에 따라 두 종류로 나눔 : .. 더보기
[TIL] 3주차_Day7: 파이썬 웹 크롤링(2) 💡Today I Learned 파이썬을 이용한 웹 크롤링 기술에 대한 두 번째 강의를 진행했습니다. HTTP 프로토콜, HTML의 구조에 대한 개념 파이썬을 이용해 http 통신 코드로 구현해보기 1. 인터넷과 웹 : 컴퓨터 한 대 → 한 대씩 네트워크로 연결 → 이 네트워크를 묶어 근거리 지역 네트워크(LAN) 구성 → LAN들을 묶어 범지구적으로 연결된 네트워크=인터넷 : 인터넷 망 위에서 정보를 교환할 수 있는 환경, 시스템 (WWW, Web) 탄생 2. 웹에서 정보 주고받기 : 클라이언트(Cllient) - 정보를 요청하는 컴퓨터 : 서버(Server) - 정보를 제공하는 컴퓨터 : 클라이언트가 서버에 작업 요청 → 서버는 요청에 대해서 작업 수행 → 수행한 작업의 결과를 클라이언트에게 응답(응답.. 더보기
[TIL] 3주차_Day6: 파이썬 웹 크롤링(1) 💡Today I Learned 파이썬을 이용한 웹 크롤링 기술에 대한 첫 번째 강의를 진행했습니다. 본격적인 웹 크롤링에 앞서 개발 환경을 구축 HTML의 이론 및 실습 진행 1. 개발 환경 구축 - vs code 설치, 에디터 설정, extension(확장 프로그램) 설치 2. HTML/CSS/JavaScript - HTML: 웹 브라우저가 이해할 수 있는 웹 문서를 만들기 위한 언어 - CSS: 문서를 예쁘게 꾸미는 언어 - JavaScript: 문서에 다양한 기능을 만들어주는 언어 3. HTML - 콘텐츠 가지는 태그 = 시작 태그 ~ 종료 태그 콘텐츠 - 콘텐츠 가지지 않는 태그 = 단일 태그 (with. self closing) - 속성 = 값 pair, 각 태그별로 고유의 속성 & 모든 태그에.. 더보기
[TIL] 2주차_Day5: 자료구조/알고리즘 풀기(5) 💡Today I Learned 자료구조/알고리즘에 대한 다섯 번째 이론 및 실습 강의를 진행했습니다. 코딩테스트 연습 _ 프로그래머스 코딩테스트 연습 문제 풀이 해시, 그리디, 정렬 알고리즘을 사용하는 대표 문제 풀이 1. 힙(Heap) 대표 문제: #더 맵게 - 최악의 경우: 수가 하나 남을 때까지 섞어야하는 경우 → n-1 회 - 각 단계(=섞는 일)에서 요구되는 계산량: 섞은 아이템을 정렬된 리스트 내에 삽입 → O(N) → 전체 문제의 복잡도: O(N^2) 느림 → 최대/최소 원소를 빠르게 꺼내기를 원함 = max/min heap 자료구조 사용 - 연산별 복잡도 heapify → O(NlogN) _ 빈 힙에 N개의 원소를 하나씩 넣어가며 heap을 유지 insert → O(logN) remove .. 더보기
[TIL] 2주차_Day4: 자료구조/알고리즘 풀기(4) 💡Today I Learned 자료구조/알고리즘에 대한 네 번째 이론 및 실습 강의를 진행했습니다. 코딩테스트 연습 _ 프로그래머스 코딩테스트 연습 문제 풀이 해시, 그리디, 정렬 알고리즘을 사용하는 대표 문제 풀이 1. 해시(Hash) - [key: value] pair → hash function을 통해 → hash table의 각각의 칸(hash bucket)에 저장 - hash collision(해시 충돌): 두 개 이상의 서로 다른 key가 서로 같은 bucket에 hash될 때(=사상될 때) - 파이썬의 dictionary가 해시로 구현 → dict 아이템에 접근 → O(1) 상수 시간에 이뤄짐 - #완주하지 못 한 선수 → O(N) 2. 탐욕법(Greedy) - 알고리즘 각 단계에서, 그 순.. 더보기
[TIL] 2주차_Day3: 자료구조/알고리즘 풀기(3) 💡Today I Learned 자료구조/알고리즘에 대한 세 번째 이론 및 실습 강의를 진행했습니다. 큐, 트리, 힙 자료구조의 개념 및 실습 1. 큐(queue) - 선입선출(FIFO, First In First Out) - 큐를 추상적 자료구조로 구현: 1) 배열 2) 연결 리스트(LL) - 배열로 구현한 큐의 연산 복잡도 size, isEmpty, enqueue, peek: O(1) dequeue: O(N) → 맨 앞의 원소를 꺼낸 후, 뒤의 원소들을 앞으로 당겨와야 함 - Doubly LL로 구현한 큐의 연산 복잡도 size, isEmpty, peek, enqueue, dequeue: O(1) → head와 tail을 이용해 head dummy node의 뒤에 enqueue, tail dummy n.. 더보기
[TIL] 2주차_Day2: 자료구조/알고리즘 풀기(2) 💡Today I Learned 자료구조/알고리즘에 대한 두 번째 이론 및 실습 강의를 진행했습니다. 연결 리스트, 양방향 연결 리스트, 스택 자료구조의 개념 연결 리스트, 양방향 연결 리스트의 삽입/삭제 멤버 메소드로 구현 스택을 활용한 후위 표기법 변환, 계산 알고리즘 구현 1. 추상적 자료 구조 - 내부 구현을 숨겨두고 데이터+연산은 외부에서 사용 가능 2. 연결 리스트 (Linked List, LL) - Node들이 연결됨 - Node(구조체) 속성: data(문자열, 레코드, 또다른 연결 리스트 etc..) link / next (다음 노드 가리킴) - 리스트 속성: head: 연결 리스트의 맨 앞 노드를 가리키는 포인터 tail: 연결 리스트의 맨 끝 노드를 가리키는 포인터 num_of_node.. 더보기
[TIL] 2주차_Day1: 자료구조/알고리즘 풀기(1) 💡Today I Learned 자료구조/알고리즘에 대한 첫번째 이론 및 실습 강의를 진행했습니다. 배열 / 정렬, 탐색, 재귀 알고리즘 / 알고리즘의 복잡도 관련 이론 리스트, 탐색, 재귀 알고리즘에 관한 실습 문제 풀이 1. 자료구조 & 알고리즘 - 자료구조 = data + data에 대해 행할 수 있는 연산 - 알고리즘: 주어진 문제를 해결하기 위한 자료구조와 연산 방법을 선택 - ex) List 내 특정 item을 찾을 때 → 정렬된 List에서 item을 찾는 것이 효율적 → 순서가 정렬된 자료구조가 좋겠음 2. 선형 배열 - 원소들을 순서대로 늘어놓은 것 - 0-based indexing - (in python) List는 여러 타입의 자료를 함께 저장 가능 - 리스트 중간의 원소 삭제 방법 간.. 더보기
반응형