본문 바로가기

반응형

프로그래밍언어/Python

(34)
[Python] 비동기 프로그래밍 (asyncio) ■ Synchronous vs Asynchronous - Synchronous programming (동기 프로그래밍) : 주어진 task들을 순차적으로 실행하는 프로그래밍 방식. 하나의 작업이 수행중이면 그 다음 작업은 수행 완료까지 대기한다. - Asynchronous programming (비동기 프로그래밍) : task들을 병렬적으로 수행하는 프로그래밍 방식. 먼저 실행된 작업이 완료되지 않아도 다음 작업이 대기하지 않고 수행된다. ■ Event Loop 이벤트 루프는 작업들을 루프(반복문)를 돌면서 하나씩 실행시키는 역할을 합니다. 만약 실행된 작업이 특정한 데이터를 요청하고 응답을 기다려야 한다면, 이 작업은 다시 이벤트 루프에 통제권을 넘겨줍니다. 통제권을 받은 이벤트 루프는 다음 작업을 실..
[Python] 프로젝트 패키징 & 배포 패키징이란? 패키징이란 모듈별로 생성한 실행 파일들을 하나로 합쳐서 배포 및 설치가 가능한 파일을 만드는 것이다. 파일을 패키징하는 이유는 다른 환경에 소프트웨어를 배포하기 위함이기에 다음과 같은 질문에 대해서 고려하여 패키징을 진행해야한다. - 소프트웨어를 사용할 사람이 누가 될 것인가? 패키징한 소프트웨어를 누가 설치할 것인가? - 소프트웨어가 어떤 환경에 배포되고 실행될 것인가? (서버, 데스크탑, 모바일 등등) - 소프트웨어는 독립적으로 설치가 될 것인가, 아니면 다른 배포 시스템에 연계되어서 설치될 것인가? 패키징한 파일을 배포할 환경에 대한 다양한 요인들에 대해서 고려해서 패키징을 진행해야한다. Python packaging 1. metadata 설정 1-1. setup.py 설정 setup...
[Python] 객체 LifeCycle과 Garbage Collection (Reference Counts) ■ 객체의 생명주기 (Object LifeCycle) - 객체의 생성부터 파괴, 해제까지의 기간 1) Allocating memory space 2) Binding or associating methods 3) Initialization 4) Destruction ■ 파이썬의 생명주기 1) Definition - Python Interpreter에서 class를 정의한다. 2) Initialization - __init__ 함수를 호출해서 새로운 instance를 생성하여 메모리를 할당하고 초기화한다. - __new__ 함수가 overriding 된 경우,instance 생성시에 __new__ 함수도 호출한다. 3) Access and manipulation - 객체를 사용한다. 4) Destructio..
[Python] 정규 표현식 (Regular Expressions) ■ 정규표현식: 복잡한 문자열을 특수한 기호들을 사용하여 처리하는 기법 ■ 정규표현식 메타문자 ※ 메타문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 말한다. - 정규표현식에서 사용하는 메타문자들: . ^ $ * + ? { } [ ] \ | ( ) - [] • 문자클래스 • [ ] 사이의 문자들과 매치 • ex) [abc]: "a, b, c 중 한 개의 문자와 매치" • '-' 하이픈 사용: 두 문자 사이의 범위를 표현 • [a-d] == [abcd], [0-5] == [012345] • [a-zA-Z]: 알파벳 전체 • [0-9]: 숫자 • ^ 사용: not의 의미를 가지고 있다. • ex) [^0-9]: 숫자가 아닌 문자 - . (dot) • '\n'을 제외한 모든 문자 한 개와..
ch05. 파이썬 날개달기 (내장함수, 라이브러리) 5. 내장함수 - abs(x): x의 절대값을 반환한다. - all(x): iterable한 변수 x를 인수로 받아서, x의 모든 요소가 True인지 여부를 반환해준다. - any(x): iterable한 변수 x의 요소 중 하나라도 True가 있는 경우 True를 반환해준다. - chr(x): ASCII 값 x를 입력받아서 해당하는 문자를 출력한다. - ord(x): 입력받은 문자 x의 ASCII 코드를 반환해준다. - dir(x): 객체 x가 가지고 있는 변수나 함수를 보여준다. list나 dict 객체의 변수, 함수 등을 보여준다. - divmod(a, b): a를 b로 나눈 몫과 나머지를 튜플 형태로 반환한다. - enumerate(x): 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받..
ch05. 파이썬 날개달기 (패키지, 예외처리) 3. 패키지 ■ 패키지 - 파이썬 패키지는 디렉토리와 파이썬 모듈로 이루어진 구조이다. - .(dot)을 이용해서 계층적으로 접근 관리가 가능하다. ■ __init__.py - 해당 디렉토리가 패키지의 일부임을 알려주는 역할을 한다. ※ python3.3 버전부터는 __init__.py 파일이 없어도 패키지로 인식한다(PEP 420). 하지만 하위 버전 호환을 위해 __init__.py 파일을 생성하는 것이 안전한 방법이다. - __all__ 변수 • 패키지 import 시에 *를 사용해 import 할 모듈들을 정의하는 변수 • __all__ 변수에 정의되어 있지 않은 모듈은 *를 통해서 해당 패키지를 import 해도 사용할 수 없다. ※ from a.b.c import * 에서 패키지의 마지막인 c..
ch05. 파이썬 날개달기 (모듈) 2. 모듈 ■ 모듈 - 모듈이란 변수 또는 클래스를 모아놓은 파일이다. - 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이다. ■ 모듈 만들기 - 모듈 생성 # mod1.py def add(a, b): return a + b def sub(a, b): return a-b - mod1이라는 모듈에 add와 sub라는 함수를 생성했다. ※ .py 확장자를 가지는 파이썬 파일들은 모두 파이썬 모듈이다. ■ 모듈 불러오기 - 모듈을 불러올 때는 해당 모듈이 위치하는 곳에서 import를 사용해서 불러올 수 있다. # mod1 모듈 사용예제 # import {모듈이름} import mod1 print(mod1.add(3, 4))# 7 print(mod1.sub(4, 2))# 2 - i..
ch05. 파이썬 날개달기 (클래스) 1. 클래스 ■ 클래스와 객체 - 클래스 (class): 특정한 것을 만들기 위한 설계 도면 - 객체 (object): 클래스를 통해서 만들어진 것 - 클래스를 통해서 만들어진 객체들 간에 서로 전혀 영향을 주지는 않는다. # Cookie라는 클래스 생성 class Cookie: pass # Cookie 클래스를 통해서 a, b 객체 생성 a = Cookie() b = Cookie() - 인스턴스: 클래스를 통해서 만들어진 객체를 뜻하는 말로 위의 예시에서 a는 객체이자 Cookie의 인스턴스이다. ■ 클래스 생성 - 클래스 구조 class ClassEx: # self는 해당 함수를 호출한 객체가 전달된다. def func(self, a, b): self.a = a self.b = b ''' self는 ..

반응형