본문 바로가기

Study/Python9

[Python #8] Database 데이터베이스 - 수시로 조회하고 변경해야 하는 대용량의 복잡한 정보는 직접 관리가 힘들다. - 정보를 단순 저장뿐만 아니라 효율적으로 관리하기 위한 시스템이 바로 DB이다. * 관계형 데이터베이스 - 관계형 DB는 테이블에서의 행과 열을 이용하여 데이터를 모델링 - 단일 테이블이나 복잡하게 얽혀있는 다중 테이블에서 데이터를 효율적으로 추출 - 용어 데이터베이스 : 여러 개의 테이블 릴레이션(테이블) : 튜플과 속성을 포함 튜플(row) : 이름처럼 객체를 표현할 수 있는 필드의 집합 속성(column/필드) : 객체를 나타내는 row에 있는 데이터 중 하나 * SQL (Structured Query Language) - db에 명령을 내리기 위해 사용하는 언어 - 테이블 모양(스키마) 기술 - 데이터 삽.. 2021. 12. 14.
[Python #7] Multiple Connections, Web Scrapping Python에서의 다중 연결 처리 - 기존 single client와 single server 간의 연결만을 처리했다면, 하나의 server가 많은 client와 연결을 하는 방법이다 - 동시성을 해결하는 방법: 1) fork (프로세스 복제) 2) threads (프로세스 내의 여러 개의 동작) 3) asynchronous I/O (selector 기반) from socket import * import selectors # 파일디스크립터의 처리 이벤트를 모니터링 해주는 모듈 sel = selectors.DefalutSelector() #selector생성 s = socket(AF_INET, SOCK_STREAM) #소켓 생성 s.bind((host, port)) s.listen() s.setblock.. 2021. 12. 14.
[Python #6] Network Network - 네트워킹 : 여러 컴퓨터를 서로 연결하면 통신이 가능하다 - 인터네트워킹 : 인접한 네트워크를 연결하여 인터넷같은 큰 시스템을 형성할 수 있다. - 패킷 : 네트워크 디바이스 간 통신을 위한 가장 기본적인 단위 (목적지 주소와 전달할 데이터를 가진 수천byte의 바이너리 스트링 형태) - 보통 네트워크 계층모델로 OSI 7layer 이용 (또는 TCP/IP계층 모델) 네트워크 계층 (OSI 7 layer) 7 : Application layer (HTTP, SMTP, FTP, SNMP) 6 : Presentation layer (MIME, TLS/SSL) 5 : Session layer (NetBIOS) 4 : Transport layer (TCP, UDP) 3 : Network lay.. 2021. 11. 24.
[Python #5] Class, Module, Package Class : 클래스란 관련된 '속성'과 '동작'을 하나의 범주로 묶어 실세계의 사물을 흉내낸 것 - 객체지향의 가장 기본적인 개념이 클래스 - 스크립트 언어는 원래 가볍게 쓰는 것이 주목적이라 객체지향을 지원하는 경우가 드물지만 파이썬은 스크립트 언어임에도 클래스 정의, 연산자 오버로딩, 다중상속을 지원한다. (하지만 진짜 객체지향언어에 비해 형식성이 떨이지고 기능도 많이 부족) - 사물을 분석하여 필요한 속성과 동작을 추출 -> 모델링 - 모델링된 결과를 클래스로 포장하는 것 -> 캡슐화 - 아래 코드예제는 계좌라는 실세계의 사물(Object)를 표현하는 하나의 묶음 : 연관된 정보는 한 곳에 모여있어야 관리가 용이 balance = 8000# 잔액 def deposit(money):# 입출금 동작 .. 2021. 10. 31.
[Python #5] Dictionary, Set, Collection Dictionary (사전) - Dictionary : 키와 값의 쌍을 저장하는 대용량의 자료구조 * 해시 알고리즘을 사용하여 일대일로 대응되는 특성이 있으므로 자바의 HashMap이랑 비슷 * 파이썬에서는 내장되어 있으므로 라이브러리 없이 언제든지 사용 가능 * 사전을 정의할 때 { }괄호 안에 '키:값' 형태로 콤마로 구분하여 나열 * 사전은 빠른 검색을 위해 해쉬를 이용한 키로부터 저장 위치를 결정 * 최대한 찾기 쉬운위치에 저장하므로 생성 시의 순서를 유지하지 않지만 검색 속도가 빠름 * 키 : 값을 찾는 기준으로 고유의 값을 가지고 변경이 불가능 -> 튜플을 키로 쓸 수 있지만 리스트는 키로 쓸 수 없다! * 값 : 자유롭게 변경이 가능 - 사전 예시 dic = {'boy' : '소년', 'gi.. 2021. 10. 10.
[Python #4] File Stream : cpu와 연결된 키보드, 마우스, 저장 장치, 네트워크 등 모든 주변 장치의 입력과 출력을 byte들의 흐름으로 생각하는 것 - Standard stream * 기본적인 스트림들은 프로그래머가 생성하지 않아도 프로세스가 시작되면 자동으로 생성 이름 스트림 연결 장치 표준파일 넘버 stdin 표준 입력 스트림 키보드 0 stdout 표준 출력 스트림 모니터 화면 1 stderr 표준 오류 스트림 모니터 화면 2 파일 입출력 - 파일열기 open (파일경로, 모드) * 프로그램이 생성한 정보를 영구적으로 저장하기 위해 파일에 기록 * 파일 입출력을 위해 파일 위치를 확인하고 버퍼를 준비하는 과정을 하는 것이 open 함수 * 파일경로 : 입출력 대상의 이름. 디렉토리 경로 포함해서 쓰거나 파.. 2021. 10. 7.