본문 바로가기

전체 글219

API / HTTP API 를 이해하고 사용할 수 있어야 합니다. RESTful API 에 대해서 설명할 수 있어야 합니다. API 의 데이터를 받아와 데이터베이스에 저장할 수 있어야 합니다. HTTP 는 크게 요청 (HTTP Request)과 응답 (HTTP Response) HyperText Transfer Protocol 이라는 약어로 컴퓨터들의 통신 규약 중 하나 하나의 컴퓨터가 다른 컴퓨터와 소통을 하고 싶을 때에 (파일을 받거나 전달하거나 등) 정해진 규칙과 틀을 준수해야 원활한 소통이 가능 ==> 이렇게 정해진 규칙들을 하나의 규약 (protocol) HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 프로토콜 - 용어 사전 | MDN 프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 .. 2021. 7. 24.
DataBase / ORM SQLalchemy / session 학습 목표 ORM 에 대해서 설명할 수 있어야 합니다. ORM 의 장단점 및 특징들을 이해할 수 있어야 합니다. ORM 을 통해 데이터베이스에 저장할 수 있어야 합니다. sqlalchemy 라이브러리를 사용할 수 있어야 합니다. 파이썬 DBAPI 에 대해서 설명할 수 있어야 합니다. 파이썬으로 데이터베이스와 연결할 수 있어야 합니다. 파이썬에서 데이터베이스와 상호작용 할 수 있어야 합니다. PEP 249 파이썬에서는 데이터베이스와 연결하는 파이썬 모듈들은 권장되는 가이드라인을 따라 제작되도록 안내합니다. 실제로 문서를 보시면 어떤 함수들, 메소드, 파라미터, 키워드 등을 어떻게 해야 하는지도 나와있습니다. 이러한 명시적인 가이드라인 덕분에 파이썬에서 데이터베이스와 연결하는 작업은 다양한 데이터베이스라도 .. 2021. 7. 24.
DOM( Document Object Model ) DOM 은 웹 페이지에서 매우 중요한 역할을 하고 문서 객체 모델 - 프로그래밍 언어를 통해서 HTML 문서 등에 접근할 수 있도록 해준다. DOM 의 역할 덕분에 프로그래밍 언어에서도 웹 페이지의 요소나 스타일 등을 추가하거나 수정하는 등 다양한 작업을 진행할 수가 있다. 문서를 하나의 구조화된 형식으로 표현을 하기 때문에 이러한 구조를 통해서 원하는 동작을 할 수가 있다. - 특히 DOM 은 객체 (object) 로 표현을 하는데 이 때 object 란 자바스크립트에서 사용되는 데이터 구조 중 하나 파이썬에서는 자바스크립트의 object 와 비슷한 dictionary 가 존재 즉, DOM 을 통해서 프로그래밍 언어에서 사용할 수 있는 데이터 구조 형태로 작업을 수행할 수 있어 크롤링 등 웹 페이지와 .. 2021. 7. 21.
HTML / CSS / J.S Web Scraping, Web crawling * 학습목표 * 크롤링을 이해하고 설명할 수 있다. 파이썬을 통해서 크롤링을 할 수 있다. HTML 혹은 CSS 를 읽을 수 있다. DOM 에 대해서 설명할 수 있다. requests 라이브러리를 사용할 수 있다. beautifulsoup 라이브러리를 사용할 수 있다. ## code ## 경로를 병합하여 새 경로 생성 os.path.join('C:\Tmp', 'a', 'b') # "C:\Tmp\a\b" 현재 작업 폴더 얻기 os.getcwd() # "C:\Temp" 크롤링 (crawling) 혹은 스크레이핑 (scraping) 은 웹 페이지에 있는 데이터를 모으는 작업 scraping - 특정 정보를 가져오는 것이 목적 crawling - 인터넷에 있는 사이트들을 인덱싱하는 목적 == > 자동화에 초점이.. 2021. 7. 21.
Error, try ... except Error 1. 실행전 Error => 구문에러( SyntaxError ) = 문법적인 문제가 발생 2. 실행중 Error => 예외( Exception, RuntimeError ) ==> 예외처리해줄 수 있음 ( Exception handling = 조건문 or try except 구문 ) Error list AssertionError: assert 문이 제대로 작동하지 않을 때 발생합니다. IndexError: 참조 하려는 인덱스가 범위를 벗어날 때 발생합니다. KeyError: 참조 하려는 키가 기존 키 집합에서 찾을 수 없을 때 발생합니다. KeyboardInterrupt: 사용자가 인터럽트 키(Control + C, 혹은 Delete)를 누를 때 발생하며, 모든 Exception을 잡는 코드에 .. 2021. 7. 18.
Class 상속(inheritance) 상속(inheritance) 국가라는 클래스가 있고, 그것을 상속받은 한국, 일본, 중국, 미국 등의 클래스를 만들 수 있으며, 국가라는 클래스의 기본적인 속성으로 인구라는 속성을 만들었다면, 상속 받은 한국, 일본, 중국 등등의 클래스에서 부모 클래스의 속성과 메소드를 사용할 수 있음 class 부모클래스: # (Parent Class, Super class) ...내용... class 자식클래스(부모클래스): # (Child class, sub class) ...내용... # 자식클래스에서는 부모클래스의 속성과 메소드는 기재하지 않아도 포함이됨 MRO(Method Resolution Order)란? 메소드 결정 순서 __mro__ 파이썬은 기본적으로 다중 상속을 지원 죽음의 다이아몬드는 다중 상속을 .. 2021. 7. 18.
매직메소드 매직 메소드 클래스 안에 정의된 함수 ( 리스트, 튜플, 딕셔너리, 정수, 실수, 문자열 등과 같은 타입 역시 클래스를 통해 만들어진 기본 데이터 타입 ) ex 직접 만든 타입도 인덱싱 기능을 제공하려 할때 매직메소드 사용 class Notebook: def __init__(self, name, price): # 객체의 초기화를 위해 클래스 생성시 호출될때 동작 self._name = name self._price = price def __str__(self): # 클래스의 인스턴스에서 str()이 호출될 때의 동작 return f'{self.__class__.name} Class Info : {self._name}, {self._price}' def __add__(self, x): # 사용하기 쉽게 +.. 2021. 7. 18.
Class , Object , Method ( OOP ) Object-Oriented Programming 객체 지향 프로그래밍 클래스를 사용해서 프로그래밍 하는 방법 ( 프로그램을 수많은 '객체'라는 단위로 구분하고, 이 객체들의 상호작용하는 방식 ) ==> 객체를 우선으로 생각하는 언어 ==> 객체를 효율적으로 만들고 사용하는 것이 목적 클래스는 어떤 물건을 찍어내기 위한 일종의 틀 class 객체는 그 틀을 이용해서 찍어내는 실제 물건 object 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점 일반적으로 프로그램을 만들때 항상 염두에 둬야할 2가지 1. 같은 코드를 반복하지 않는다. 2. 코.. 2021. 7. 18.
Python 함수 Python - 다른 언어에 비해 구현상의 복잡합이 적은 편이지만 데이터 처리량이 많을 때는 꼭 메모리 제한을 고려해야한다. But 코테에서 이러한 문제는 드물다. 데이터의 개수(리스트의 길이) 메모리 사용량 1,000 약 4 KB 1,000,000 약 4 MB 10,000,000 약 40MB 기본 자료형(문자열, 숫자, bool) 등은 특정 하나의 값을 사용한다. 컬렉션은 말 그대로 여러 개의 값을 저장할 수 있음 * 리스트는 동적이다. 동적이라 함은 메소드를 사용해 값을 추가하거나 제거가능 튜플과의 차이점 : 리스트는 메소드를 활용하여 값 수정가능. 딕셔너리와 차이점 : 인덱스를 기반으로 값을 저장하고 수정할 수 있다. 파이썬 리스트는 탐색, 삽입, 삭제와 같은 연산에 대한 메소드를 갖고 있으므로 단.. 2021. 7. 18.