반응형

Python 7

Python 고급 문법 4: async / await 비동기 프로그래밍

환영합니다, Rolling Ress의 카루입니다.​이번에는 비동기 프로그래밍입니다. 프로그래밍 언어마다 스레드를 지원하는 방법은 다르지만, 최근에는 async / await을 이용하여 비동기 프로그래밍을 지원하는 언어가 많아졌습니다. 이러한 언어들은 함수 선언 앞에 async를 붙이고, await을 통해 기다린다는 공통점이 있습니다. 파이썬 또한 3.5 버전부터 async / await을 지원합니다.동기 프로그래밍 (Synchronous)import timedef make_coffee(name, delay): print(f"[{name}] 커피 추출 시작...") time.sleep(delay) # 일시 정지 -> 대기 상태 print(f"[{name}] 커피 완성!")s..

Python 2026.04.22

Python 고급 문법 3: with 블럭과 @contextmanager

환영합니다, Rolling Ress의 카루입니다.​첫 번째 글에서 with 블럭에 대해 소개한 적이 있습니다. 파일 입출력 등을 할 때, with 블럭을 사용하면 try ~ finally 구문을 번거롭게 사용할 필요 없이 자원 해제를 자동으로 해주는 편리한 구문이었죠. 사실 이것도 숨겨진 메서드가 자동으로 호출되는 트릭에 가깝습니다. C++의 소멸자, C#의 IDisposible.Dispose()와 비슷합니다. 파이썬에서는 __enter__()과 __exit__(ty, val, tb) 메서드로 with 문의 동작을 정의할 수 있습니다.​'with' Statement (with 문)f = open("data.txt", "w")try: f.write("Hello")finally: f.close()..

Python 2026.04.22

Python 고급 문법 2: 이터레이터(iterator)와 제너레이터(generator)

환영합니다, Rolling Ress의 카루입니다.​이번에는 파이썬의 고급 문법 중 이터레이터와 제너레이터에 대해 알아보겠습니다. 이 두 개념은 반복문에서 많이 사용되므로 for문에 대해 정확하게 숙지하고 오셔야 아래 내용을 이해하기 편하실 겁니다.​Iterator(반복자, 이터레이터)Python의 반복자(이하 이터레이터)는 C++의 반복자와 비슷한 개념으로 보아도 됩니다. 값을 한 번에 하나씩, 순서대로 꺼내주는 객체를 이터레이터라고 부릅니다.​Iterable(반복 가능한 객체): 리스트(list), 튜플(tuple), 문자열(str), 딕셔너리(dict)와 같이 데이터가 여러 개 모여 있는 객체로, 이터레이터를 만들어낼 수 있습니다. 정확히는 내부에 __iter__ 메서드를 가지고 있습니다.Iterat..

Python 2026.04.22

Python 고급 문법 1: 함수객체(Functor), 클로저(Closure)와 데코레이터(Decorator)

환영합니다, Rolling Ress의 카루입니다.​Python 첫 글 마지막에 Decoration에 대해 쓰겠다고 했는데, 몇 년이 지나서야 쓰네요. 이번에는 파이썬의 강력한 기능 중 하나인 데코레이터에 대해 설명하며, 사전지식으로 펑터와 클로저에 대해서도 다루겠습니다.​Functor(함수객체, 펑터)함수객체란 객체를 함수처럼 쓸 수 있게 만든 것입니다. 일반적인 함수와 달리 클래스의 내부 변수를 통해 상태를 저장할 수 있는 점이 큰 차이점입니다. C++에서 operator()을 이용하여 함수객체를 정의했다면, 파이썬에서는 동일한 기능을 수행하는 __call__()을 정의하여 함수객체를 만들 수 있습니다.​체이닝에 대해 알아보겠습니다. 합성함수 h(g(f(x)))가 있을 때, 실제 함수의 실행 순서는 f..

Python 2026.04.22

파이썬 코딩 효율을 높여주는 10가지 문법들 (ft. Pythonic한 코드란?)

환영합니다, Rolling Ress의 카루입니다.​ 파이썬에서는 'Pythonic'이라는 형용사가 있습니다. 말 그대로, 파이썬스러운 코드를 의미해요. 기존 파이썬 문법들과 크게 차이가 나지 않고, 간결하며 의미를 명확하게 이해하기 쉽다면 그런 코드는 모두 Pythonic하다고 볼 수 있겠습니다. 귀찮은 문법을 간결하게 표현할 수 있는 'Syntax sugar'와 어느 정도 일맥상통한다고 볼 수 있겠어요.​ 오늘은 Python의 코딩 효율을 높여주는 편리한 문법들을 살펴보겠습니다.1. List comprehension2의 배수를 리스트(배열)에 저장하는 코드를 작성해보겠습니다. l = [] # 리스트를 선언하고for x in range(1, 21): # 반복문을 돌며 if x % 2 == 0: # 짝수..

Python 2024.09.24

파이썬을 활용한 네트워크 분석 (고양국제고 진로특강)

환영합니다, Rolling Ress의 카루입니다. ​ 목요일 8/9교시에 "네트워크 분석" 진로특강 수업을 들을 수 있더라고요. 파이썬을 활용할 수 있는 친구들을 찾고 있던 듯 한데, 덜컥 겁이 났습니다. 제가 저 수업을 못 따라가면 어쩌지. 근데...ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 사실 좀 자뻑을 해도 됩니다. 내가 못 알아들을 정도면 아무도 못 따라감. ​ 저는 막 네트워크 패킷 분석하고 뭐 그런 수업인 줄 알았느데 그냥 그림 그리는(?) 거였습니다. 노드와 엣지 가지고 네트워크형 모델을 만든다고 해야 하나, 창문해 선생님께서 저희를 위해 자료들을 다 준비해주셨더라고요. Software for Complex Networks — NetworkX 2.7.1 documentation NetworkX is a Python..

Python 2022.04.10

파이썬 코딩 효율을 크게 높여주는 7가지 팁들

환영합니다, Rolling Ress의 카루입니다.​오늘은 파이썬입니다. 사실 제가 파이썬과는 연이 그다지 깊지가 않아서... 파이썬이 Type Reflection이 되던가요? VS에서 C# 쓰다가 VS Code로 파이썬 쓰려니 IntelliSense가 정말 좋지 않아서 못 쓰겠더라고요. 그래도 뭐...프로그래밍 입문자에게 파이썬을 많이 추천하는 추세니 글을 써볼까 합니다.​초보자 분들부터 숙련자 분들에게까지 적용될 수 있는 팁을 두루두루 가져와봤어요.아니다, 내용이 내용인지라 상당히 어려워요. 특히 마지막 switch 패턴매칭은 꽤 골치 아플 거예요. 그래도 중요하니까, 꼭 보고 가세요.​목차1. read_csv()를 웹에서 바로2. 변수 선언 시 타입 사용3. 함수의 파라미터 타입 제한4. 클래스와 s..

Python 2022.02.16
반응형