이전 페이지 다음 페이지 파이썬은 리눅스(Linux), 맥 OS X(Mac OS X)를 포함한 다양한 플랫폼에서 사용할 수 있습니다. 파이썬 환경을 설정하는 방법을 알아보겠습니다. 로컬 환경 설정 터미널 창을 열고 python을 입력하여 이미 설치되어 있는지, 어떤 버전이 설치되어 있는지 확인하세요. 유닉스(Unix: Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX 등) Win 9x/NT/2000 매킨토시(Macintosh: Intel, PPC, 68K) OS/2 DOS(여러 버
이전 페이지 다음 페이지 파이썬은 고수준, 인터프리터 방식, 인터랙티브, 객체지향 스크립팅 언어입니다. 파이썬은 높은 가독성을 위해 설계되었습니다. 다른 언어가 구두점을 사용하는 곳에서 영어 키워드를 자주 사용하며, 다른 언어보다 구문 구성이 적습니다. 파이썬은 인터프리터 언어입니다 - 파이썬은 인터프리터에 의해 런타임에 처리됩니다. 프로그램을 실행하기 전에 컴파일할 필요가 없습니다. 이는 PERL, PHP와 유사합니다. 파이썬은 인터랙티브합니다 - 파이썬 프롬프트에서 직접 인터프리터와 상호작용하며 프로그램을 작성할
파이썬 2는 2020년 1월 1일부로 공식 지원이 종료되었습니다. 여전히 파이썬 2.7을 사용 중이라면 즉시 업그레이드해야 합니다. 현재 실행 중인 버전이 확실하지 않다면 python --version으로 확인하세요. 왜 지금 당장 옮겨야 하는가? 보안 패치 중단: 취약점 발견 시 어떤 수정도 제공되지 않음 패키지 생태계 단절: 주요 라이브러리(NumPy, pandas, Django, Requests 등)가 파이썬 2 지원 중단 신규 기능 불가: 타입 힌트, f-string, async/await, 데이터클래스 등 현
사용자가 호환되지 않는 파이썬 버전으로 스크립트를 실행하는 것을 방지하려면 진입점에서 버전 체크를 추가하세요. sys.version_info는 메이저, 마이너, 마이크로 버전을 튜플로 제공하므로 비교가 직관적입니다. 버전 체크 패턴 = (3, 5): sys.exit(이 스크립트는 파이썬 3.5 이상이 필요합니다. (타입 힌트, async/await 등 사용)) # 정상 실행 print(f실행 중인 파이썬 버전: {sys.version}) 튜플 비교의 장점 (3, 4) → True (자연스러운 버전 비교) 문
IPython은 파이썬의 기본 REPL(Read-Eval-Print Loop)을 대폭 강화한 대화형 쉘이며, 주피터 노트북(Jupyter Notebook)의 핵심 엔진입니다. 주피터는 코드, 수식, 시각화, 설명 문서를 한 문서에 담아 공유할 수 있는 오픈소스 웹 애플리케이션입니다. 파이썬 대화형 쉘을 자주 사용한다면 IPython은 필수 도구입니다. 목차 IPython 핵심 기능 마법 명령어(Magic Commands) 이전 입출력 참조 IPython 설치 IPython 핵심 기능
파이썬에서 객체의 메모리 사용량을 확인해야 할 때 sys.getsizeof() 함수가 가장 직관적인 도구입니다. 하지만 이 함수의 동작 방식을 정확히 이해하지 못하면 의외의 결과에 당황할 수 있습니다. 기본 사용법 import sys mylist = range(0, 10000) print(sys.getsizeof(mylist)) # 48 왜 10,000개 요소가 고작 48바이트일까? range() 함수는 실제 숫자 리스트를 메모리에 생성하지 않습니다. 대신 시작값, 끝값, 스텝만 저장하는 이터러블 객체를 반환하므로 메모리
파이썬으로 한 번에 여러 값 반환 가능. 당연히 파이썬 대부분 함수는 단일 값 반환, 보통 그 함수 작업 결과. 이 글에서 여러 값 반환도 가능함 배우고, 딕셔너리·리스트·데이터 클래스 필요 없음. 목차 튜플로 여러 값 반환 파이썬에서 여러 값 반환 대안 방법 계속 학습 튜플로 여러 값 반환 필요한 건 return 문 뒤 값들 콤마로 구분해 나열하는 것. 여러 값 반환하고 여러 변수에 한 번에 할당하는 예: def get_user(id): # 데이터베이스에서 사용자 조회 # .... return
파이썬 데이터 클래스는 @dataclass 데코레이터 가진 일반 파이썬 클래스. 데이터 보유 목적으로 특별히 생성. 파이썬 3.7부터 dataclass 내장 모듈로 데이터 클래스 제공. 일반 파이썬 클래스 대비 여러 이점, 이 글에서 탐구. 예제 코드와 데이터 클래스로 수행하고픈 흔한 연산 두어 가지도 살펴봄. 목차 데이터 클래스 사용 이점 데이터 클래스 예제 기본값 데이터 클래스를 JSON으로 변환 계속 학습 데이터 클래스 사용 이점 왜 일반 파이썬 클래스 대신 데이터 클래스 써야 할까? 먼저 파이썬 데이터 클래스 제
이 깔끔한 트릭으로 임시 변수 없이 파이썬 두 변수 값 교환 가능: a = 1 b = 2 a, b = b, a print(a) # 2 print(b) # 1 단 한 줄 코드! 3번째 줄 보듯 파이썬에서 변수 스왑에 임시 변수 필요 없음.
이 트릭으로 파이썬 문자열 빠르게 제목 케이스 변환 가능. 위키피디아 기사 인용: 제목 케이스는 오프라인·온라인 인쇄 모두 자주 사용. 이 사이트 자체도 모든 기사 제목 케이스 사용. 자세히 보면 대부분 웹사이트, 신문, 잡지 사실 제목 케이스 씀. 파이썬에서 제목 케이스 문자열 빠르게 만들려면 내장 title() 메서드 쓰면 됨: >>> title = string in title case >>> title.title() String In Title Case 불행히 이건 잘 작동 안 함:
파이썬 생태계엔 생각나는 거의 모든 것 패키지 있음, 간단한 pip 명령으로 설치 가능. 그러니 파이썬에서 이모지 작업하는 패키지 있는 거 놀라운 일 아님. emoji 패키지 이렇게 설치: $ pip3 install emoji 이 패키지로 유니코드 이모지 문자열 버전으로 변환, 그 반대도 가능: import emoji result = emoji.emojize(Python is :thumbs_up:) print(result) # Python is 👍 # 역변환도 가능: result = emoji.demojize(Python
파이썬 이미징 라이브러리 Pillow는 이미지 처리에 이상적. 보통 아카이빙과 배치 처리 애플리케이션에 사용. 물론 당신이 생각나는 아무 용도나 자유롭게 사용 가능. 라이브러리로 할 수 있는 것: 썸네일 생성 파일 포맷 간 변환 이미지 출력 히스토그램 가져오기 (자동 대비 향상에 이상적) 이미지 회전 블러 같은 필터 적용 목차 이미지 처리 패키지 설치 이미지 처리 이미지 표시 추가 학습 이미지 처리 패키지 설치 원래 Python Imaging Library 포크이자 계속인 Pillow 설치하려면 pip install
가장 초기 파이썬 PEP 중 하나가 PEP-20. 파이썬 프로그래밍 관련 19개 테제 나열, 파이썬의 선(The Zen of Python)이라 불림. 이 규칙들 2004년 거슬러 올라가며 PEP-8 기반. 파이썬 오래 전부터 이스터 에그로 이 19규칙 나열: import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is
파이썬 REPL에서 마지막 표현식 결과 언더스코어 연산자 _로 얻을 수 있음, 예: _ + 3 12 이건 IPython 셸에서도 동일하게 작동. 추가로 IPython 셸은 Out[n]으로 In[n] 표현식 값 접근 가능. 예: 아래 예시에서 Out[1]이 9 줌: In [1]: 3 * 3 Out[1]: 9 In [2]: Out[1] + 3 Out[2]: 12 In [3]: _ + 3 Out[3]: 15
파이썬 attrs 패키지로 간단한 어노테이션으로 고급 데이터 클래스 생성 가능. 파이썬 자체 네이티브 데이터 클래스 모듈도 있지만, attrs 패키지는 당신이 좋아할 추가 기능 몇 가지 제공! 목차 attrs 설치 attrs vs 데이터 클래스 기본 attrs 예제 attrs validator 예제 attrs converter 예제 attrs와 슬롯 사용 계속 학습 attrs 설치 attrs 패키지는 기본 라이브러리 부분 아님, pip install 명령이나 Pipenv 같은 걸로 설치 필요. 가상환경 만들어 다른 프로
파이썬 클래스 슬롯은 많은 프로그래머가 모르는 기능입니다. 슬롯 클래스에서 마법 필드 이름 __slots__ 사용하여 클래스 허용 필드 명시적 정의. 이점: 클래스에서 생성된 객체 메모리 약간 덜 차지 클래스 속성 접근 더 빠름 슬롯 클래스 객체에 임의 새 속성 추가 불가 슬롯 클래스 정의 예: qh = Card(queen, hearts) 저에겐 최대 장점: 슬롯 클래스에 임의 새 속성 추가 불가. 비용 큰 실수 방지! 시연: 슬롯 클래스 속성 할당 시 오타 나면 파이썬이 조용히 새 속성 만드는 대신 에러 발생. 복잡
많은 사람이 예외를 잘못 처리하는 거 봅니다. 혹시 당신도 해당될 수 있습니다. 다음 상황 익숙합니까? 코드 작성 중인데, 사용하는 라이브러리가 예외 발생시킬 수 있음. 정확히 어떤 예외인지 기억 안 남. 이 지점에서 소위 잡아먹기(catch-all) 블록 써서 재밌는 부분으로 넘어가기 유혹적. 목차 최악의 방법 모든 예외 잡는 약간 나은 방법 더 나빠지는 경우 다룰 수 있는 것만 잡기 결론 최악의 방법 할 수 있는 최악은 뭐든 잡는 try-except 블록 만드는 것. 잡아먹기라 함은 이런 거: try: .
우리 많은 이에게 파이썬 코드 디버깅은 print 문 추가하고 출력 기반으로 무슨 일인지 추론하는 것으로 귀결됩니다. 이상적이진 않지만, 어떤 이유에서인지 사람들은 파이썬 디버거 건드리기 싫어합니다. 목차 print 문으로 디버깅 파이썬 디버거 중단점 설정 파이썬 디버거 사용 파이썬 디버거 명령어 계속 학습 print 문으로 디버깅 print로 디버깅하는 분들, 비판하지 않습니다. 파이썬 학습 어렵고, 프로그래밍 어렵고, 인생도 어렵습니다. 이미 힘겨운데 또 새 것 배우는 게 지루하게 느껴지는 거 이해합니다. 프린트 문
파이썬 모듈이란 무엇인가? 모듈은 변수, 함수, 클래스를 포함할 수 있는 단일 파이썬 파일입니다. 파일명을 guru99.py로 지으면 모듈은 guru99로 접근합니다. 모듈을 사용하면 큰 프로그램을 논리적 조각으로 나누어 코드를 체계적이고 재사용 가능하게 유지할 수 있습니다. 왜 모듈을 임포트하는가? 다른 파일에 정의된 코드를 사용하려면 반드시 임포트해야 합니다. 임포트를 통해 모듈의 함수, 클래스, 변수에 접근할 수 있으며, 이는 JavaScript, Java, Ruby 같은 언어의 import 키워드와 유사합니다. 모듈 생성
파이썬은 워크로드 가속을 위해 멀티프로세싱과 멀티스레딩을 모두 제공합니다. 이 가이드는 견고한 스레드 기반 애플리케이션 생성, 전역 인터프리터 락(GIL)의 뉘앙스, 데드락과 레이스 컨디션 같은 흔한 함정 회피법을 안내합니다. 스레드란 무엇인가? 스레드는 단일 프로세스 내의 가벼운 실행 단위입니다. 스레드는 프로세스의 메모리 공간을 공유하여 효율적인 데이터 교환을 가능케 하며, 운영체제가 하나 이상의 CPU 코어에서 동시 실행을 위해 스케줄링합니다. 프로세스란 무엇인가? 프로세스는 독립적인 프로그램 인스턴스입니다. 브라우저나 텍
python