파이썬의 modulefinder 모듈에 포함된 ModuleFinder 클래스는 특정 스크립트가 임포트하는 모듈 목록을 분석해 주는 도구입니다. 이 모듈은 명령줄 인터페이스(CLI)와 프로그래밍 방식의 인터페이스 두 가지 방법을 모두 제공하므로, 간단한 확인부터 자동화된 의존성 분석까지 다양하게 활용할 수 있습니다.예제용 테스트 스크립트기능을 확인하기 위해 아래와 같은 테스트 스크립트를 준비합니다. 정상적으로 임포트되는 모듈과 존재하지 않는 모듈을 함께 포함시켜 두 동작을 비교해 볼 수 있습니다.#modfinder.py import
SimPy(블림피(Blimpie)와 발음이 비슷합니다)는 프로세스 지향(process-oriented) 이산 이벤트 시뮬레이션(discrete-event simulation)을 위한 파이썬 패키지입니다. 생산 라인, 콜센터, 네트워크 트래픽처럼 이벤트 단위로 흘러가는 시스템을 간단한 코드로 모델링할 수 있어 시뮬레이션 입문용으로 널리 사용됩니다. 설치 방법 SimPy를 가장 쉽게 설치하는 방법은 pip를 이용하는 것입니다. pip install simpy 명령을 실행하면 다음과 비슷한 출력 결과를 확인할 수 있습니다. 이 글
두 프로그래밍 언어를 비교할 때 왜 하필 Python과 Ruby인가?라는 의문이 먼저 떠오릅니다. 그 이유는 두 언어 모두 인터프리터 방식의 애자일(agile) 언어이면서 객체지향 철학을 기반으로 하고, 거대한 커뮤니티의 지원을 받고 있기 때문입니다.흥미로운 점은 두 언어가 일부 아이디어와 문법 요소를 공유하고 거의 동일한 기능을 제공함에도 불구하고, 각각의 커뮤니티는 서로 공통점이 거의 없다는 사실입니다. 두 언어는 개발자 커뮤니티에서 매우 인기가 높으며, 이것 역시 두 언어를 비교하는 이유 중 하나입니다.GitHub에서 오픈된
Tkinter는 파이썬에서 GUI(그래픽 사용자 인터페이스)를 개발하기 위한 표준 라이브러리입니다. 이 라이브러리를 활용하면 윈도우 창을 비롯해 버튼, 라벨 등 다양한 UI 요소로 구성된 데스크톱 애플리케이션을 손쉽게 만들 수 있습니다.특히 권장되는 파이썬 3.x 버전을 사용하고 있다면 Tkinter가 기본 패키지로 함께 제공되기 때문에 별도의 설치 과정 없이 바로 import해서 사용할 수 있다는 점이 큰 장점입니다.이번 글에서는 본격적인 등록 폼을 만들기에 앞서, 먼저 간단한 GUI 애플리케이션부터 단계별로 작성해 보겠습니다.1
구글 지도에 지리적 좌표를 표시하는 방법은 매우 다양합니다. 하지만 그 결과를 로컬 HTML 파일로 저장하고 싶다면, gmplot이라는 파이썬 모듈을 활용하는 것이 가장 깔끔한 해결책입니다. gmplot은 구글 지도 위에 데이터를 플로팅할 수 있게 해주는 파이썬 라이브러리입니다. matplotlib와 비슷한 인터페이스를 제공하며, 구글 지도 위에 각종 데이터를 얹어 보여줄 수 있는 HTML과 자바스크립트 코드를 자동으로 생성해 줍니다. 설치 방법 gmplot이 아직 설치되어 있지 않다면 pip 명령어 한 줄로 간단히 설치할 수 있습
기존에 만들어 둔 아나콘다(Anaconda) 환경에 새로운 패키지를 추가하는 방법은 여러 가지가 있습니다. 상황과 선호도에 따라 GUI 도구를 이용할 수도 있고, 명령줄 인터페이스를 활용할 수도 있습니다. 이 글에서는 대표적인 세 가지 방법을 소개합니다.방법 1 – Anaconda Navigator 사용하기가장 직관적이고 널리 쓰이는 방법은 Anaconda Navigator라는 GUI 프로그램을 이용하는 것입니다. Anaconda Navigator를 실행하면 다음과 같은 홈 화면이 나타납니다.홈 탭 바로 아래에 있는 Environm
데이터 분석 작업에서 탐색적 데이터 분석(EDA, Exploratory Data Analysis)은 반드시 가장 먼저 수행해야 하는 단계입니다. EDA는 다음과 같은 목적을 달성하는 데 도움을 줍니다. 데이터셋에 대한 깊이 있는 인사이트를 제공합니다. 데이터 이면에 숨어 있는 구조를 이해할 수 있게 해줍니다. 중요한 변수(파라미터)와 변수 간의 관계를 추출합니다. 데이터에 담긴 기본 가정을 검증합니다. 샘플 데이터셋으로 이해하는 EDA 파이썬으로 EDA를 익혀 보기 위해 웹사이트나 로컬 디스크에서 샘플 데이터를 가져올 수 있습
파이썬(Python)은 지리 데이터와 그래프 데이터를 다루기 위한 다양한 라이브러리를 제공합니다. 그중 Plotly는 지리적 그래프를 그리는 데 활용되는 대표적인 라이브러리로, 무료 오픈소스로 공개되어 있어 누구나 자유롭게 사용할 수 있습니다.Plotly는 선 그래프(Line Chart), 수평 막대그래프(Horizontal Bar Chart), 막대그래프(Bar Chart), 대시보드(Dashboard), 산점도(Scatter Plot), 버블 차트(Bubble Chart), 원형 차트(Pie Chart) 등 매우 다양한 종류의
동적 배열(Dynamic Array)이란?파이썬에서 리스트(list), 셋(set), 딕셔너리(dictionary)는 가변(mutable) 객체입니다. 반면 숫자(number), 문자열(string), 튜플(tuple)은 불변(immutable) 객체입니다. 가변 객체란 생성된 이후에도 요소를 자유롭게 추가하거나 삭제할 수 있는 객체를 의미하며, 튜플이나 문자열처럼 한 번 생성되면 내용을 변경할 수 없는 객체를 불변 객체라고 부릅니다.파이썬에서 리스트는 대표적인 동적 배열(dynamic array)입니다. 실제로 빈 리스트를 만든
이터러블(Iterable)이란?이터러블은 내장 함수 iter()에 전달되었을 때 이터레이터를 생성하는 객체로 정의할 수 있습니다. 객체가 이터러블이 되기 위해서는 몇 가지 조건을 충족해야 하는데, 해당 클래스의 객체가 __len__과 __getitem__이라는 두 개의 인스턴스 메서드를 정의하고 있어야 합니다. 이 조건들을 충족하는 객체는 iter() 메서드에 전달될 때 이터레이터를 생성합니다.다음 예제를 통해 이터러블의 개념을 살펴보겠습니다.string = Tutorialspoint for char in string: pr
이 글에서는 파이썬(Python)을 사용하여 주어진 범위 내에서 3과 5로 나누어 떨어지는 모든 숫자를 출력하는 프로그램을 다룹니다. 핵심 아이디어는 간단합니다. 반복문으로 범위 내의 숫자를 하나씩 확인하면서, 해당 숫자가 3과 5 두 값 모두로 나누어 떨어지는지 검사하면 됩니다.기본 코드 작성하기아래는 사용자로부터 하한값과 상한값을 입력받아, 그 사이에서 3과 5로 나누어 떨어지는 숫자를 모두 출력하는 파이썬 코드입니다.lower = int(input(Enter lower range limit:)) upper = int(input
이 글에서는 숫자 리스트에 포함된 모든 중복 값을 출력하는 방법을 알아봅니다. 즉, 리스트 안에서 두 번 이상 등장하는(고유하지 않은) 숫자들을 모두 찾아내는 것이 목표입니다.예제입력: given_list = [3, 6, 9, 12, 3, 30, 15, 9, 45, 36, 12] 출력: desired_output = [3, 9, 12] 입력: given_list = [-27, 4, 29, -27, -2, -99, 123, 499, -99] 출력: desired_output = [-27, -99]다음은 주어진 리스트에서 중복 요소를
함수(Function)란?파이썬에서 함수는 특정 작업을 수행하기 위해 작성된 코드 블록입니다. 함수는 자체적인 유효 범위(scope)를 가지며, 이름을 통해 호출됩니다. 함수는 인자(argument)를 전혀 받지 않거나 하나 이상의 인자를 받을 수 있고, 종료 시 값을 반환할 수도 있고 반환하지 않을 수도 있습니다.기본 함수 문법def functionName( arg1, arg2,...): ...... # 함수 본문 ......간단한 사용자 정의 함수를 만들어 보겠습니다. 아래 예제의 함수 이름은 sum으로 지
이 글에서는 하나의 프로그램에서 두 가지 작업을 동시에 수행하는 방법을 다룹니다. 하나는 포그라운드에서 실행되고, 다른 하나는 백그라운드에서 실행됩니다. 구체적으로는 백그라운드 스레드가 파일에 내용을 기록하는 동안, 메인 스레드에서는 사용자가 입력한 숫자가 홀수인지 짝수인지 판별합니다.멀티스레딩이란?Python에서 하나의 프로그램 안에서 여러 작업을 동시에 처리하려면 멀티스레딩(Multithreading)을 활용할 수 있습니다. threading 모듈을 사용하면 별도의 스레드를 생성해 시간이 오래 걸리는 작업(예: 파일 입출력)을
서론파이썬으로 개발을 하다 보면 표준 라이브러리에 포함되지 않은 외부 모듈이나 패키지가 필요한 순간이 자주 찾아옵니다. 문제는 이런 패키지들이 특정 애플리케이션에서만 필요하다는 점입니다.예를 들어 시스템에 파이썬 3.6이 설치되어 있는데, 진행 중인 프로젝트가 정확히 파이썬 2.7 버전을 요구한다고 가정해 보겠습니다. 이 경우 새로운 패키지뿐만 아니라 이미 설치된 파이썬 자체의 특정 버전이 필요해집니다. 두 버전의 요구 사항이 서로 충돌하기 때문에 2.7이든 3.6이든 어느 한쪽을 설치하면 다른 애플리케이션이 실행되지 않는 상황이
프로그램이 정상적으로 실행되든 오류가 발생하든 관계없이 반드시 수행해야 하는 작업이 필요한 상황이 자주 있습니다. 대표적인 예로 파일 닫기, 데이터베이스 연결 해제, 메모리 및 리소스 해제 등이 있으며, 이런 오류나 예외를 처리하기 위해 일반적으로 try와 except 블록을 사용합니다.Python의 try 문에는 예외 발생 여부와 관계없이 어떤 경우에도 실행되어야 하는 정리 작업(clean-up actions)을 정의할 수 있는 매우 유용한 선택적 절인 finally가 제공됩니다. 먼저 간단한 예제를 살펴보겠습니다.>>
파이썬 예외 처리란?파이썬에서 예외 처리(Exception Handling)를 활용하면 프로그램 실행 중 발생할 수 있는 오류를 효과적으로 관리할 수 있습니다. 파일을 열 수 없거나, 존재하지 않는 변수에 접근하는 등 다양한 오류가 발생했을 때 이를 적절히 처리하지 않으면 프로그램이 강제로 종료되기 때문입니다.파이썬은 예외를 잡기 위해 try와 except라는 두 가지 키워드를 제공합니다. try 블록 안의 코드는 한 문장씩 순서대로 실행되지만, 실행 중 예외가 발생하면 남은 try 블록의 코드는 더 이상 실행되지 않고 즉시 exc
이 글에서는 사용자로부터 입력받은 숫자가 1보다 클 때, 그 숫자가 소수(prime number)인지 아닌지를 판별하는 파이썬 프로그램을 작성해 보겠습니다. 소수란 무엇일까요? 소수란 1보다 큰 양의 정수 가운데 약수가 정확히 두 개, 즉 1과 자기 자신뿐인 수를 말합니다. 예를 들어 2, 3, 5, 7 등은 약수가 1과 자기 자신 두 개뿐이므로 모두 소수에 해당합니다. 소수 판별 파이썬 코드 # 입력받은 숫자가 소수인지 확인하는 파이썬 프로그램 # 사용자로부터 숫자 입력받기 num = int(input(숫자를 입력하세요: ))
실무 관점에서 보면, Python에는 다른 언어처럼 엄격한 의미의 비공개(private) 멤버 변수가 존재하지 않습니다. 다만 변수나 메서드 이름 앞에 밑줄 두 개(__)를 붙이면 비공개로 취급하는 것이 일종의 관례(convention)이며, 대부분의 Python 코드가 이 방식을 따르고 있습니다.다음 예제를 통해 이 개념을 자세히 살펴보겠습니다.예제 코드: privateVar1.pyclass myClass: __privateVar = 27 de
파이썬 바이트코드 파일 생성 방법 개요모든 파이썬 프로그램은 실행되기 전에 소스 코드를 자동으로 컴파일하여 바이트코드(byte code)라고 불리는 중간 코드를 생성합니다. 이 과정은 파이썬 인터프리터가 내부적으로 수행하며, 사용자가 별도로 지시하지 않아도 이루어집니다.모듈을 처음 임포트(import)하거나, 소스 파일이 새로 생성되었거나 기존 파일이 수정된 경우에는 컴파일된 결과물인 .pyc 파일이 만들어집니다. 파이썬 3부터는 이 파일이 .py 파일과 같은 디렉터리가 아닌 __pycache__라는 하위 디렉터리에 저장됩니다.이러