안녕하세요. IT 엘도라도 에 오신 것을 환영합니다.
글을 쓰는 것은 귀찮지만 다시 찾아보는 것은 더 귀찮습니다.
완전한 나만의 것으로 만들기 위해 지식을 차곡차곡 저장해 보아요.   포스팅 둘러보기 ▼

파이썬 (Python) (6)

[Python] GIL (Global Interpreter Lock) 이해하기

이번 포스팅은 Python만의 특징 중 하나인 GIL(Global Interpreter Lock)의 개념에 대해 알아볼 것이다. Python 프로그래머라면 한 번쯤은 들어봤을 법한 용어지만, 정확하게 알고 있지 못한 분들도 많을 것이다. 이 기회에 제대로 한 번 정리해보자. 1. Python 인터프리터란? GIL을 이해하려면 먼저 Python 인터프리터란 것이 정확히 무엇인지 알아야 한다. Python 인터프리터란, Python으로 작성된 코드를 한 줄씩 읽으면서 실행하는 프로그램을 말한다. 그 프로그램의 구현체로는 여러 가지가 있을 수 있는데, 현재 Python 인터프리터의 표준 구현체로 받아들여지고 있는 것은 바로 CPython이다. CPython은 C 언어를 이용하여 구현한 Python 인터프리터이..

파이썬 (Python) 2021.07.03

[Python] 비동기 프로그래밍 동작 원리 (asyncio)

JavaScript와 달리 Python은 비동기 프로그래밍에 어색하다. 애초에 JavaScript는 비동기 방식으로 동작하도록 설계된 언어인 반면, Python은 동기 방식으로 동작하도록 설계된 언어이기 때문이다. 그래서 Python이 제공하는 대부분의 내장 API들은 동기 방식으로 동작한다. 하지만 Python 3.4 버전부터 asyncio 라이브러리가 표준으로 채택되고 Python 3.5 버전부터 async/await 키워드가 추가되면서, Python에서도 비동기 프로그래밍을 더욱더 쉽게 할 수 있게 되었다. 그렇다면 Python에서 asyncio 내장 라이브러리는 비동기 프로그래밍을 어떻게 실현한 것인지, 그 동작 원리를 한 번 알아보도록 하자. 단, asyncio 라이브러리의 기본적인 사용 방법은..

파이썬 (Python) 2021.07.02

[Python] 정규 표현식(정규식) 사용하기

본 포스팅은 Python에서 정규식을 어떻게 사용할 수 있는지만 설명한다. 즉, 정규식 자체의 개념에 대해서는 설명을 생략한다. 만약 정규식 자체의 개념에 대해 알고 싶다면 이 포스팅을 참고하기 바란다. 프로그래밍 언어와는 독립적으로 정규식 자체의 개념에 대해 설명하고 있는 포스팅이다. 1. 정규식 표현 방법 Python에서는 정규식의 사용을 위해 re 모듈을 기본적으로 제공하고 있다. 즉, 정규식을 사용하고 싶다면 re 모듈을 먼저 import 해줘야 한다. Python에서 정규식은 패턴 객체로 표현된다. 패턴 객체는 re.compile() 함수를 이용하여 정규식을 컴파일 하면 생성된다. 이때 정규식을 작성하는 방법은 다음과 같이 두 가지이다. 정규식 작성 방법 패턴 객체 생성 예시 설명 r문자열 re..

파이썬 (Python) 2021.03.04

[Python] bytes, bytearray, 인코딩 및 디코딩

1. bytes, bytearray (바이트 배열 객체) - 왜 필요할까? 파이썬에는 바이트 배열을 나타내는 객체의 타입으로 bytes, bytearray가 존재한다. 즉 1바이트(= 8비트) 크기의 요소들로 이뤄진 리스트를 나타내는 타입인 것이다. 그렇다면 bytes, bytearray 타입의 바이트 배열 객체와 str 타입의 문자열 객체는 어떤 차이가 있을까? 이를 이해하기 위해서는 다음과 같은 절대적인 사실을 떠올릴 필요가 있다. 바로 "컴퓨터는 오로지 바이트 배열만 저장할 수 있다"는 것이다. 즉 컴퓨터에 무언가를 저장하려면 먼저 그것을 바이트 배열의 형태로 '인코딩(Encoding)'을 해야 한다. 다음은 음악 파일, 사진 파일, 문자 파일 등을 컴퓨터에 저장할 수 있는 바이트 배열의 형태로 인..

파이썬 (Python) 2020.07.09

[Python] Iterator, Generator

1. Iterator 1-1. Iterable 객체 파이썬에서 iterable 객체란 '반복 가능한 객체'를 의미한다. 대표적인 예로, for 문에서 사용하는 리스트, 튜플, 문자열 등이 바로 iterable 객체이다. 1-2. Iterable 객체이기 위한 조건 어떤 객체의 타입(클래스)이 A라고 해보자. 그러면 다음과 같은 조건을 만족할 때 A 타입의 객체가 곧 iterable 객체가 된다. ① 클래스 A는 __iter__() 메소드를 구현해야 한다. 반드시 iterator 객체를 반환하도록 구현해야 한다. (→ 해당 iterator 객체는 동일한 클래스(A)의 객체여도 되고 별도로 작성된 다른 클래스의 객체여도 된다.) ② iterator 객체의 클래스(A 혹은 다른 클래스)는 반드시 __next_..

파이썬 (Python) 2020.01.11

[Python] 객체와 기본 자료형

1. 객체 (Object) 파이썬에서 다루는 모든 데이터는 객체(object)이다. 정수, 실수, 문자열, 사용자 정의 클래스의 인스턴스 등 모든 것은 특정 타입(자료형)을 가지고 메모리에 상주하는 객체들인 것이다. 각 객체는 메모리 상에서의 위치를 나타내는 고유한 ID 값을 지니고 있으며, 파이썬에서의 변수는 그러한 객체들을 가리키는 레퍼런스일 뿐이다. Java에서의 객체를 가리키는 참조 변수와 그 성격이 유사하다. 2. 객체 관련 도구 (함수, 연산자) 관련 도구 분류 설명 id(객체) 내장 함수 객체의 ID 값 확인 is 연산자 두 객체의 ID 값 비교 == 연산자 두 객체의 값 비교 (권장) = 연산자 우변의 객체를 좌변의 변수가 가리키도록 함 3. immutable 객체 파이썬의 immutabl..

파이썬 (Python) 2020.01.11