파이썬은 처음이라 – 값이란 건 처음이라

이번 글에서는 파이썬에서의 값에 대해서 살펴보겠다. 프로그래밍 언어를 배울 때에는 흔히 문법이나 알고리듬, 자료 구조와 같은 부분에 집중하면서 “값”이라는 부분, 즉 데이터 자체에 대해서는 소홀해지는 경향이 있다. 하지만 컴퓨터 프로그램은 본질적으로 데이터를 다루는 논리적인 기계장치이며, 어떤 입력값을 조작/변형처리하여 출력하는 구조를 가진다. 그 과정에서 다루어지는 값에 대한 특성을 이해하는 것은 값외의 다른 모든 것들을 이해하는 것과

(연재) 파이썬은 처음이라 – 문법은 처음이라

이번 시간에는 파이썬의 문법에 대해서 알아볼 생각인데, 가능하면 딱딱하지 않은 내용으로 소개하고 싶었지만 그래도 문법의 구조에 대해서는 잠깐 언급하고 넘어가는게 좋겠다. 아마 교과서 같은 책이라든지 파이썬 공식 문서에서도 이런 식의 문법 구조 설명은 나올텐데, 대부분 “너무 빤한 이야기라서 왜 써있는지도 모르겠고 그냥 대충 몰라도 아는 이야기라 넘어간다”며 읽지 않는 것이 대부분이다. 절대로 재밌는 내용이 아닌데,

async with : 비동기 컨텍스트 매니저

파이썬의 컨텍스트 매니저는 with 블럭을 적용할 수 있는 객체를 말한다. with 문에서 쓰이는 컨텍스트 매니저 객체는 코드 블럭에 대한 데코레이터처럼 동작한다. 가장 흔한 예가 open() 함수로 생성하는 파일 디스크립터이다. with open(‘data.txt’) as f:   for line in f:     print(line) 컨텍스트 매니저 객체는 __enter__(), __exit__() 두 개의 내장 메소드를 가지고 있는 것으로 간주된다. 위 코드에서는 with 다음에 나오는 open(‘data.txt’) 라는 코드는 파일 디스크립터를 반환한다. 그런데,

(연재) 파이썬은 처음이라 – IDLE은 처음이라

아주 당연한 이야기지만 어떤 프로그래밍 언어도 책으로만 공부할 수는 없다. 프로그래밍 언어에서 가장 중요한 것은 직접 코드를 타이핑해서 쳐보고, 그것을 실행해보는 경험이다. 이것은 단순히 책에 쓰여있는 글자를 그대로 타이핑해서 실행해보고 “아 이 코드는 되네”라는 경험을 말하는 것이 아니라, 책에 쓰여진 코드에서 어떤 부분을 바꿔보고 그것은 동작하는지를 예상한 후 확인해보는 것을 포함해야 한다. 제대로 실행이 되지

파이썬의 스레드 사용법

멀티스레드를 사용한 병렬처리는 concurrent.futures의 ThreadPoolExecutor를 사용하면 스레드 풀 관리에서부터, 처리 결과들의 동기화에 이르기까지의 여러 작업을 간단한 API를 통해서 처리할 수 있다. 특히 이 API의 경우 멀티스레드와 멀티프로세스에서 동일한 형태로 디자인되어 있고, 실제 사용시에는 어떤 구현을 선택할 것인지에 따라 Pool관리자의 클래스만 변경하면 되기 때문에 편리하게 사용할 수 있다. 하지만 이 API는 특정한 시점에 데이터를 나누어 처리하고