목록프로그래밍 (40)
Seung's Learning Record
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6aAWS/btsGRghaxFg/VOfRY7eUblLzEiPWHqHKZ0/img.png)
목차 관계형 데이터베이스 (RDBMS) 개념 관계형 데이터베이스는 데이터를 테이블 형식으로 저장하고 관리하는 데이터베이스 시스템이며, SQL 언어로 데이터를 조작할 수 있다. 관계형 데이터베이스는 크게 프로덕션 데이터베이스와 데이터 웨어하우스로 종류를 나눠볼 수 있다. 프로덕션 데이터베이스 프로덕션 데이터베이스는 주로 실시간 트랜잭션 처리(OLTP, Online Transaction Processing)를 위해 설계된 데이터베이스이다. 이 데이터베이스는 업무 처리, 주문 처리, 고객 관리 등의 다양한 업무 프로세스를 지원하기 위해 사용되기 때문에 처리 속도에 집중된 데이터베이스이다. MySQL, PostgreSQL, Oracle 등 백엔드 개발자들이 다루는 데이터베이스가 이에 속한다. 해당 데이터베이스는..
관계형 데이터베이스(RDB) 는 데이터를 행과 열로 이루어진 테이블의 형태로 구성하고, 테이블 간의 관계를 정의하는 데이터베이스이다. 이번 시간에는 간단한 수강신청 예시를 통해 관계형 데이터베이스에서 각각의 용어들이 어떤 의미를 가지고 있는지 알아보자. 테이블(table) 테이블이란 데이터베이스에서 행과 열로 구성되어 있는 데이터의 집합을 의미한다. 학생 정보를 저장하는 테이블 student와 강의 정보를 저장하는 class 테이블이 있다고 하자. student Student_Id name Class_Id 1 철수 A 2 영희 B 3 훈이 A class Class_Id Class_name A 수학 B 영어 열(colum) 관계형 데이터베이스에서 열(column)은 테이블에 존재하는 필드(field)를 나..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bExccU/btsGqQuSq5O/OxsYv8Ik5C6TvBWg12xTx1/img.png)
≣ 목차 Seaborn 개념 Seaborn은 python에서 제공하는 데이터 시각화를 위한 라이브러리이다. Matplotlib을 기반으로 만들어졌으며, 데이터 시각화를 보다 쉽고 가시적으로 진행할 수 있게끔해준다. seaborn 자체에 내장된 penguins dataset을 활용해 사용법에 익숙해져보자. 사용할 데이터 셋의 구성은 다음과 같다. species : 펭귄 종 island : 서식지 bill_length_mm : 부리 길이 bill_depth_mm : 부리 위아래 두께 flipper_length_mm : 팔 길이 body_mass_g : 몸무게 sex : 성별 import seaborn as sns data = sns.load_dataset('penguins') # 데이터 로드 data = d..
≣ 목차 이전 포스팅에서 알아본 BeautifulSoup는 주로 정적인 웹 페이지에서의 데이터 추출을 위해 사용되는 라이브러리이다. 하지만 우리가 평소 사용하는 웹 사이트는 동적인 웹 페이지로 구성되어있는 경우가 더 많다. 이러한 경우에 사용할 수 있는 웹 스크래핑 도구인 Selenium에 대해서 알아보자. Selenium Selenium 이란? selenium은 웹 어플리케이션의 동적인 요소와 상호작용하기 위한 자동화 도구로 사용된다. 실제 브라우저를 제어하여 자바스크립트를 실행하고, 클릭, 텍스트 입력 등의 사용자 동작을 시뮬레이션한다. 기본적인 사용법 selenium 라이브러리에 있는 webdriver 모듈을 통해 웹 사이트에 직접적으로 접근해 제어가 가능하다. 크롬을 통해 웹 사이트에 접근할 것이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oWjWL/btsGlvRVHQr/mw3miFH6kMOdKKrVpWqNb0/img.png)
≣ 목차 지난 포스팅에서는 웹 스크래핑과 웹 크롤링 두 가지 개념에 대해서 간략하게 알아봤었다. 오늘은 웹 스크래핑에 사용되는 Python 라이브러리 중 하나인 BeautifulSoup에 대해서 알아보자. BeautifulSoup BeautifulSoup 란? 위에서 말했듯이, BeautifulSoup는 웹 스크래핑을 위한 파이썬 라이브러리이며, 주로 HTML 및 XML 문서에서 데이터를 추출하고 구문을 분석하는 데 사용된다. 일반적으로 requests 메서드를 통해 가져온 값을 HTML로 파싱 후, 변환된 값에 beautifulSoup를 적용하며 사용한다. 사용법 beautifulSoup의 기본적인 사용법은 다음과 같다. 우선 라이브러리를 import한 후 객체를 생성해 메서드들을 사용하기만 하면 되기..
≣ 목차 웹 상에서의 데이터 추출은 웹 페이지의 HTML 구조를 파싱하고 원하는 정보를 추출하는 과정을 뜻한다. 이러한 과정을 진행할 때 가장 대표적으로 쓰이는 방법으로는 웹 스크래핑과 웹 크롤링이 있다. 오늘은 이 두가지 방법과 데이터 추출시의 규제를 정해놓은 파일인 robots.txt에 대해서 알아보자. 웹 스크래핑 웹 스크래핑은 웹 페이지에서 원하는 정보를 추출하고 수집하는 프로세스를 의미한다. 주로 정적인 웹 페이지에서 데이터를 수집하며, 데이터를 추출하고 가공하여 필요한 형태로 변환한다. 이 때 Beautiful Soup와 Requests와 같은 라이브러리를 주로 사용한다. 일반적으로는 소규모의 데이터 수집시에 활용되는 방법이다. 웹 스크래핑 라이브러리들은 아래에 보다 자세히 정리되어있다. ht..
≣ 목차 HTTP(HyperText Transfer Protocol) HTTP 란? HTTP는 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받는데 사용되는 프로토콜이다. 클라이언트와 서버 간의 통신을 위한 표준 프로토콜로, 주로 웹 브라우저와 웹 서버 간에 문서나 데이터를 전송하는 데 주로 사용된다. 해당 프로토콜은 클라이언트가 브라우저를 통해 어떠한 서비스를 URL이나 다른 수단을 통해 요청(request)하면 서버가 해당 요청 사항에 맞는 결과를 응답(reponse)하는 형태로 동작한다. HTTP 특징 TCP/IP를 이용하는 응용 프로토콜이다. HTTP는 무상태(stateless) 프로토콜이다. 따라서 같은 클라이언트로 부터 연속적인 요청이 와도 서버는 상태 정보를 유지하지 않고 독립적으로 처..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CH9cS/btsGd7k77Wt/hk9G2iFDbuFYLnLJxrkB30/img.png)
≣ 목차 HTML이란? HTML 기본 문법 HTML은 기본적으로 의 구조를 가지며, 콘텐츠를 가지는 태그와 가지지 않는 태그로 구분된다. 콘텐츠를 가지는 태그는 시작 태그와 종료 태그를 가지는 한 쌍으로 존재하는 반면, 콘텐츠를 가지지 않는 태그는 단일 태그만 존재한다. 이때 단일 태그는 셀프 클로징을 통해 코드를 끝내거나, 아예 열린 상태로 두거나 한다. 콘텐츠 html 문법 사용 시 주의해야 할 점은 다음과 같다. 대소문자 주의 - 태그는 가능한 소문자로 작성 닫는 태그 생략 주의 ID가 중복되지 않게 주의 계층 구조 유지 동일한 의미의 태그 중첩 주의 속성과 값 태그는 기본적으로 기능 확장을 위한 속성과 값을 가진다. 아무개 HTML 기본 문서 구조 HTML의 기본적인 문서 구조는 다음과 같다. D..
≣ 목차 PEP8 스타일 PEP 8 PEP8 : 파이썬 개선 제안서, 파이썬 코드를 어떻게 구상할 지 알려주는 스타일 가이드 PEP8 전체 가이드 다른 사람과 원활하게 협업하려면 공통된 스타일 공유가 필요 일관성 있는 스타일은 나중에 수정하기도 쉽다. whitespace 한 줄의 문자 길이가 79자 이하여야 한다. 함수와 클래스는 빈 줄 두개로 구분한다. 클래스에서 메서드는 빈 줄 하나로 구분한다. 변수 할당 앞 뒤에 스페이스를 하나만 사용한다. 리스트 인덱스, 함수 홏ㄹ, 키워드 인수 할당에는 스페이스를 사용하지 않는다. naming 함수, 변수, 속성 : lowercase_underscore 보호(protected) 인스턴스 속성 : _leading_underscore 비공개(private) 인스턴스..
≣ 목차 큐 큐 자료를 보관할 수 있는 선형 구조로 push(enqueue)와 pop(dequeue)이 반대에서 이루어지기 때문에 선입선출(FIFO)방식을 채택한 자료구조이다. 큐는 자료를 생성하는 작업과 그 자료를 이용하는 작업이 비동기적으로 일어날 때 사용된다. 또한 자료 생성이 여러 곳에서 발생하거나, 자료 이용이 여러 곳에서 발생할 때 사용된다. 스택과 마찬가지로 큐 역시 배열(리스트)과 연결 리스트(이중 연결 리스트)를 이용하여 구현가능하다. 연산 종류 설명 배열 시간 복잡도 연결 리스트 시간 복잡도 size() 현재 큐에 들어 있는 데이터 원소 수 반환 O(1) O(1) isEmpty() 현재 큐가 비어 있는지 판단 O(1) O(1) enqueue() 원소 x를 큐에 push O(1) O(1)..