반응형

전체 글 129

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

Ubuntu에서 NginX로 HTTPS 서버를 만들어보자

환영합니다, Rolling Ress의 카루입니다.​ Ubuntu에서 NginX를 사용하여 웹 서버를 구성하는 방법을 알아보겠습니다. 사용한 OS는 Ubuntu 24.04 LTS입니다. 우리가 웹 페이지를 만들고 싶다면 웹 페이지를 보여주는 컴퓨터(=서버)가 한 대 있을 것이고, 그 컴퓨터에서는 접속자(=클라이언트)에게 화면을 그려서 표시하고 상호작용해야 할 겁니다. 사용자에게 화면을 표시하고 상호작용하는 일, 이것이 바로 웹 서버 프로그램이 하는 일입니다. 주로 아파치(Apache), NginX 등이 있는데 여기선 NginX를 사용하겠습니다. 가벼우면서도 강력해서 좋아요.$ sudo apt update && sudo apt install nginx -y$ sudo systemctl enable --now..

Linux 2026.03.04

Arch Linux 설치 가이드 4: 개발 환경 설정하기

환영합니다, Rolling Ress의 카루입니다.​1년만에 다시 쓰는 아치 리눅스 글입니다. 그 사이 저도 리눅스에 대해 많은 것들을 공부하고, 특히 골칫거리였던 Wayland 등과 사투를 벌였네요. 저도 잊기 전에, 글로 기록해두어야겠습니다.​목차개발 프로그램 설치 및 설정프로그래밍 언어별 설정​​개발 프로그램 설치 및 설정​1. nano 하이라이팅 $ sudo nano /etc/nanorc ## To include most of the existing syntax definitions, you can do:include "/usr/share/nano/*.nanorc"include "/usr/share/nano/extra/*.nanorc" 다른 배포판은 nano의 구문 강조가 기본으로 켜져 있지만, ..

Linux 2026.03.04

Arch Linux 설치 가이드 3: LTS 커널과 기타 설정 마무리

환영합니다, Rolling Ress의 카루입니다.​아치리눅스 설치가 모두 끝났죠. 이제는 시스템을 좀 더 편리하게 사용하고, 안정화하기 위한 작업들을 진행하도록 하겠습니다. 꼭 필요하진 않지만, 개개인에 따라 충분히 유용할 수 있는 기능들입니다. 천천히 보면서 자신에게 맞는 설정을 적용해주세요.​목차LTS 커널 설치유용한 프로그램 설치기타 설정 및 프로그램유용한 설정들​LTS 커널 설정https://kernel.org 은 리눅스 커널을 모아둔 곳입니다. 대부분의 배포판들은 리눅스 커널을 가져다가 커스텀하거나 해서 사용하죠. 아치의 경우엔 kernel.org에 있는 모든 커널을 AUR또는 기본 저장소에서 받을 수 있습니다. ​Mainline은 현재 개발중인 커널입니다. 아직 안정화 전이므로 고급 사용자가 ..

Linux 2024.09.30

Arch Linux 설치 가이드 2: Wayland GUI 환경설정과 드라이버 설치

환영합니다, Rolling Ress의 카루입니다.​ 지난번에 아치리눅스 설치까지는 끝냈습니다. 그런데 지금은 컴퓨터를 켜봤자 bash만 깜빡일 뿐입니다. 서버가 아닌 이상 이런 화면을 원하지 않죠. 당장 크롬 브라우저도 안 돌아갑니다. 이제 GUI를 입혀줄 데스크탑 환경을 설치하고, 중요한 설정들을 마무리해봅시다.​※ 2024. 09. 29 업데이트: ​새롭게 수정한 부분이 있어 글을 업데이트합니다.​목차데스크탑 환경 or 윈도우 매니저 설치한글 입출력 설정기타 프로그램 및 드라이버 설치Wayland 환경설정Zsh 설치​데스크탑 환경 or 윈도우 매니저 설치​데스크탑 환경 설치​ 데스크탑 환경에는 크게 GNOME, KDE Plasma, Xfce 등이 있습니다. 일반적으로는 저 3개 중 하나를 고르지만, ..

Linux 2024.09.30

Arch Linux 설치 가이드 1: 파티션 분할과 부트로더 설치까지

환영합니다, Rolling Ress의 카루입니다.​이전에 써둔 아치리눅스 설치 포스트가 너무 오래되어서, 다시 써보려고 합니다. 확실히 롤링 릴리즈 배포판이라 그런지 설치 방법도 계속 변하네요. 여튼, 시작하겠습니다.​※ 2024. 09. 29 업데이트: ​새롭게 수정한 부분이 있어 글을 업데이트합니다.※2026. 02. 12 업데이트: 수정 내역 업데이트​​목차라이브 부팅 및 설치 준비파티션 분할 및 마운트베이스 시스템 설치 및 설정부트로더 설치AUR 헬퍼 설치만약 새로 Windows와 Arch Linux를 같이 설치하신다면, EFI 파티션은 적어도 512 MiB, 넉넉하게 1 GiB정도는 잡아두시기 바랍니다. 아치리눅스는 커널을 모두 EFI 파티션에 담아두기에, EFI 파티션이 작으면 큰 불상사가 일..

Linux 2024.09.30

파이썬 코딩 효율을 높여주는 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
반응형