들어가며: Python을 이용하여 DSP 이론을 실습하기 전에 개발 환경을 구축합시다.
지난 글에서 우리는 왜 현대 AI 시스템에서 DSP가 다시 중요해졌는지 살펴보았습니다. 이제부터 실제로 실험해 볼 차례입니다.
우리가 DSP 알고리즘을 설계하고 그 결과를 투영해 보기 위해서는 안정적인 실험실이 필요합니다. 이번 글에서는 가장 표준적이면서도 강력한 도구인 Anaconda와 Visual Studio Code(VS Code)를 이용해 Python 개발 환경을 구축해 보겠습니다.
1. Anaconda 설치 및 가상 환경 생성
DSP 작업은 다양한 라이브러리의 조합으로 이루어집니다. 때로는 특정 라이브러리의 버전 충돌로 인해 공들여 만든 코드가 작동하지 않기도 합니다. Anaconda를 사용하는 이유는 바로 전용 가상 환경 때문입니다.
- 설치 포인트: Anaconda 공식 사이트에서 자신의 OS에 맞는 인스톨러를 내려받아 설치합니다.
- 설치되는 폴더의 경로명에는 공백 문자가 없도록 설정해줍니다.
- 설치과정에서 요구되는 옵션 선택은 모두 Default로 설정합니다.
- Add Anaconda to my PATH environment variable은 체크하지 않는 것을 권장합니다.
- 전용 가상 환경 설정을 위해 아래 명령어로 version을 확인합니다.
conda --versionpython --version - 아래와 같은 결과를 확인할 수 있습니다. 물론 독자 여러분은 다를 수 있습니다. 안정성을 위해 3.10 또는 3.11을 사용하셔도 됩니다.
conda 26.1.1Python 3.13.9
가상 환경 생성: Anaconda Prompt에서 아래 명령어를 통해 DSP 전용 가상 환경을 만듭니다. 전용 가상 환경을 만드는 이유는 여러 프로젝트를 진행하다 보면 여러 패키지 버전이 혼재되어 서로 충돌하는 경우가 발생할 수 있습니다. 이를 방지하기 위해 전용 가상 환경을 만듭니다. 안정성을 위해 가상환경의 Python 버전을 3.11로 선택하였습니다.
conda create -n dsp_env python=3.11
dsp_env는 새롭게 생성된 가상 환경 이름입니다. 이 이름은 자유롭게 설정 가능합니다.
python=3.11는 Python 버전 지정입니다.
설치 진행 여부를 묻는 프롬프트가 나오면 "y"를 입력합니다.conda activate dsp_env
새롭게 만든 전용 가상 환경을 활성화하는 명령어입니다. 프롬프트 앞에 (dsp_env)가 보이면 성공입니다.
가상 환경이 설정되면 프롬프트 앞부분이 가상 환경 이름으로 바뀝니다. - 아래는 전용 가상 환경을 관리하기 위한 명령어이니 참고하시기 바랍니다.
conda deactivate # 환경 종료conda env list # 환경 목록 확인conda remove -n dsp_env --all # 환경 삭제
2. DSP 실험을 위한 필수 라이브러리 설치
Python이 강력한 이유는 라이브러리 생태계에 있습니다. DSP 실습에 있어서 필요한 수치 연산 및 과학 계산을 위해 핵심 패키지를 반드시 설치해야 합니다. 이러한 라이브러리는 앞에서 생성된 전용 가상 환경 dsp_env가 활성화된 상태에서 설치되어야 합니다.
- NumPy: 다차원 배열 및 행렬 연산의 기본적인 내용을 지원합니다.
- SciPy: scipy.signal 모듈을 통해 필터 설계 등 정통 신호 처리 함수를 제공합니다.
- Matplotlib: 처리된 신호의 파형이나 주파수 특성을 시각화합니다.
- 설치 명령어:
pip install numpy scipy matplotlib
2.1. 오디오 신호 처리를 위한 라이브러리 설치
오디오 신호 처리 및 분석을 위한 별도의 라이브러리를 설치합니다.
- Librosa : MFCC, 스펙트로그램 등 오디오 특징 추출을 지원합니다.
- SoundFile : 오디오 파일 읽기/쓰기를 지원합니다.
- PyAudio : 실시간 오디오 스트리밍을 지원합니다.
- 설치 명령어:
pip install librosa soundfile pyaudio
2.2. 이미지 처리를 위한 라이브러리 설치
이미지 처리를 위해서는 너무나도 유명한 OpenCV와 이미지 편집 등에 사용되는 라이브러리를 설치합니다.
- Pillow: PIL(Python Imaging Library)를 계승한 라이브러리로 일반적인 이미지 편집기능을 지원합니다.
- OpenCV: 전문적인 고급 영상처리, AI 및 실시간 Computer Vision처리를 지원합니다.
- 설치 명령어:
pip install opencv-python pillow
2.3. 데이터 분석 및 시각화 보조를 위한 라이브러리 설치
데이터 분석 및 시각화를 위한 라이브러리를 설치합니다.
- Pandas: 데이터프레임 기반 분석 도구를 사용하여 신호 데이터를 정리하는데 활용합니다.
- Seaborn: Matplotlib 기반 고급 시각화를 위해 활용합니다.
- 설치 명령어:
pip install pandas seaborn
2.4. 성능 최적화를 위한 라이브러리 설치
Python이라는 언어는 인터프리터(interpreter)이므로 속도에 한계가 존재하지만, 별도의 라이브러리를 통해서 속도를 가속할 수 있습니다.
- Numba: C 언어와 비슷한 실행 속도로 실행하게 만들어준다.
- CuPy: GPU에서 동작하는 NumPy라고 정의할 수 있으며, NVIDIA의 CUDA 환경을 활용하여 대규모 다차원 배열 연산의 초고속 처리를 지원합니다. NVIDIA의 GPU가 있는 경우는 nvidia-smi를 통해서 CUDA 버전을 확인한 후에 해당 버전을 지원하는 라이브러리를 설치하면 됩니다. 아래 예제는 CUDA버전이 12.6인 경우 CUDA 메이저 버전(12.x)에 맞춰 cupy-cuda12x를 선택합니다.
- 설치 명령어:
pip install numba cupy-cuda12x
3. VS Code: 생산성을 높이는 도구
효율적인 디버깅과 시각화를 위해서는 VS Code가 최선의 선택입니다.
- 설치포인트: Visual Studio Code 공식 사이트에서 설치 파일을 내려받아 설치합니다.
- Window 사용자라면 설치 시 Add to PATH 옵션을 체크합니다
- 필수 확장프로그램을 위해 설치 후 VS Code를 실행합니다.
- 필수 확장 프로그램: Python(Microsoft 제공), Jupyter 익스텐션을 설치합니다.
- VS Code 왼쪽 사이드바의 확장(Extensions) 아이콘을 클릭하거나 `Ctrl+Shift+X`를 누릅니다.
- 인터프리터 설정: 방금 만든 dsp_env를 연결합니다.
- VS Code에서 `Ctrl+Shift+P`를 눌러 명령 팔레트를 엽니다.
- "Python: Select Interpreter"를 검색합니다.
- 목록에서 'dsp_env'를 찾아 선택합니다
- Tip: 콘다 터미널에서 무겁게 주피터 패키지를 통째로 설치할 필요는 없습니다. VS Code에서 노트북 파일(.ipynb)을 실행할 때 나타나는 안내에 따라 ipykernel만 추가 설치해 주면 충분합니다. (직접 설치 시:
pip install ipykernel)

4. 환경 구축 내용 확인
이제 설치된 환경을 바탕으로 test.py를 만들어 정상 동작하는지 확인해봅시다.
- 샘플 코드 작성 (test.py)
import numpy as np import scipy.signal as signal import matplotlib.pyplot as plt # 1. 간단한 사인파 생성 fs = 1000 # 샘플링 주파수 (Hz) t = np.linspace(0, 1, fs, endpoint=False) # 1초 길이 freq = 10 # 10Hz 사인파 sine_wave = np.sin(2 * np.pi * freq * t) # 2. 시각화 plt.figure(figsize=(10, 4)) plt.plot(t[:200], sine_wave[:200]) # 처음 200개 샘플만 시각화 plt.title('10 Hz Sine Wave') plt.xlabel('Time (s)') plt.ylabel('Amplitude') plt.grid(True) plt.tight_layout() plt.show() print("!!! NumPy, SciPy, Matplotlib 정상 작동 !!!") print(f"NumPy 버전: {np.__version__}") - VS Code 우측 상단의 재생 버튼(▶️) 을 클릭하거나 F5를 눌러 디버깅 모드로 실행합니다.
- 또는 터미널에서 직접 실행할 수도 있습니다. 이때 Anaconda Prompt에서
test.py가 있는 폴더로 이동한 후 실행해야 합니다.
python test.py
- 기대 결과
- 10 Hz의 사인파가 별도 창으로 표시됩니다.
- 사인파 창을 닫으면, VS Code 하단 터미널 창에 다음과 같은 결과가 출력됩니다.
!!! NumPy, SciPy, Matplotlib 정상 작동 !!!NumPy 버전: 2.4.2

[Insight]
매번 느끼는 거지만, 개발 환경을 설정하는 것이 사실 어려운 관문 중 하나다. 새로운 개발 환경을 구축할 때마다 각 구성 요소 간에 호환성이나 버전의 충돌은 없는지 노심초사하게 된다. 이것이 한 번 엉키고 나면 스텝이 꼬여, 이를 해결하기 위해 많은 시간을 소모하곤 한다.
개발 일정이 바쁘다는 핑계로 또는 익숙하지 않다는 이유로 "일단 되게만 해보자"는 마음으로 시작한다. 그러다 나중에 패키지 버전 충돌, 재현 불가능한 결과, 협업 시 환경 불일치 등의 부메랑이 되어 돌아와 고생하게 된다.
가상환경은 단순히 패키지를 격리하는 도구가 아니다. 이는 일종의 컨테이너화 방법으로, 머신러닝 모델을 배포할 때 Docker를 쓰는 이유와 같다. 개발 환경을 코드처럼 관리하면 팀원과 동일한 환경을 공유할 수 있고 (environment.yml 파일로 내보내기 가능), 몇 년 후 프로젝트를 다시 열어도 똑같이 작동하며, 실험 재현성(Reproducibility)을 확보할 수 있다.
Edge AI 개발도 마찬가지다. NPU 드라이버 버전, 컴파일러 툴체인, 라이브러리 의존성이 하나라도 어긋나면 모델이 제대로 동작하지 않는다. 환경 관리는 곧 시스템 안정성의 시작이다.
다음 글 예고
환경 구축은 때로 지루한 과정입니다. 하지만 한 번 제대로 갖춰놓은 환경은 향후 복잡한 필터 설계나 특징 추출 알고리즘을 구현할 때 여러분의 든든한 기반이 될 것입니다.
다음 글에서는 본격적인 신호 처리에 앞서, [04. Python 신호 처리 생태계: 기초 파라미터 이해와 첫 번째 신호 생성]을 통해 우리가 앞으로 다룰 디지털 신호의 기본 단위와 파이프라인을 구축하는 법을 배워보겠습니다. 드디어 Python 코드로 첫 번째 신호를 만들어 볼 시간입니다.
📌 이전 연재 글 보기