728x90
반응형

Python 13

Python enum 제대로 써보기: 상수 관리의 깔끔한 해법

안녕하세요, MoonLight입니다.​개발하다 보면 “이 값은 몇 가지 경우만 있어야 해”라는 상황이 정말 자주 생깁니다.예를 들어 요일(월~일), 방향(상·하·좌·우), 상태 코드(200, 404, 500)… 이런 값들을 매번 숫자나 문자열로 쓰다 보면 코드가 지저분해지고, 실수하기도 쉽습니다.C 계열이나 다른 언어에서는 const나 #define같은 것을 사용해도 되지만, 뭔가 딱 이 상황에 맞지 않는 것 처럼 느껴지죠.​이럴때 사용하는 것은 enum인데, 이 기능은 다른 모든 언어에도 존재합니다.​이번 글에서는 python에서 enum이 왜 필요한지, 어떻게 쓰는지, 그리고 실제로 어디에 쓰면 좋은지 예제와 함께 살펴보겠습니다.​ 1. 왜 enum을 쓸까? 다른 언어에서도 모두 지원하는 enum..

Development Tip 2025.09.14

Python - zip

안녕하세요, MoonLight입니다.​파이썬을 쓰다 보면 리스트나 튜플을 여러 개 동시에 반복해야 하는 상황이 자주 생깁니다.예를 들어 학생 이름과 점수가 각각 리스트에 들어 있다고 해봅시다. 두 리스트를 같은 인덱스로 묶어서 처리해야 하는데, 단순한 for 루프만으로는 코드가 지저분해지기 쉽죠.이럴 때 등장하는 파워풀한 도구가 바로 zip 함수입니다.​ 1. zip 함수 zip은 여러 iterable(리스트, 튜플, 문자열 등)을 인덱스별로 묶어주는 함수입니다.즉, 병렬 반복(parallel iteration)을 간결하게 표현할 수 있게 해줍니다.​기본 예시names = ["Alice", "Bob", "Charlie"]scores = [85, 92, 78]for name, score in zip(..

Development Tip 2025.09.14

Python - List Comprehension

안녕하세요, MoonLight입니다.​파이썬을 조금 써보신 분이라면 List Comprehension이라는 단어를 들어보셨을 겁니다. ​생소하게 느껴질 수도 있지만, 사실 매일 쓰는 for 루프를 한 줄로 줄여주는 아주 강력한 문법이에요. ​List Comprehension이라는 용어는 몰라도 코드를 보면, '아! 이거~!' 하실겁니다.​오늘은 List Comprehension이 무엇인지, 언제 쓰면 좋은지 알아보도록 하겠습니다.​​​ 1. List Comprehension 간단히 말해, List Comprehension은 for 문과 if 조건문을 이용해 리스트를 간결하게 생성하는 문법입니다. ​이름 그대로 "리스트를 구성(Comprehend)한다"는 의미죠.​보통 리스트를 만들 때는 이렇게 작성합니..

Development Tip 2025.08.31

Poetry vs Anaconda

안녕하세요, MoonLight입니다.​이번 Post에서는 conda와 유사한 Poetry라는 도구에 대해서 알아보겠습니다.​ 1. Poetry ? Poetry는 주로 Python Project의 의존성 관리와 Packaging에 특화된 도구입니다. 개발자가 Project에 필요한 Library를 명확하게 정의하고, 가상 환경을 자동으로 생성하며, Project를 배포 가능한 Package로 만드는 과정을 간소화하는 데 초점을 맞춥니다. Poetry는 pyproject.toml 파일을 사용하여 Project의 Meatdata와 의존성을 선언하고, 이를 통해 재현 가능한 빌드를 가능하게 합니다.​언듯보면 Anaconda와 뭐가 다르지하고 생각할수도 있습니다만, 둘은 성격이 약간 다릅니다.​​​​​​ 2...

Development Tip 2025.07.12

머신러닝 리스크 관리 with 파이썬

한빛미디어 ‘나는 리뷰어다’ 활동을 위해서 책을 제공받아 작성된 서평입니다.​​ ​​이 책은 이런 책이에요 요즘은 산업/사회 전반적으로 Machine Learning / Deep Learning이 사용되지 않는 곳을 찾기가 어려워졌습니다.​다양한 분야에서 인간의 결정에 조금씩 도움을 줍니다.​물론 그 결정이 그리 큰 위험이 없는 분야일 수도 있지만, 어떤 경우에는 그 결정이 큰 영향을 끼치는 고위험인 경우도 있습니다.​Machine Learning Model이 이와 같은 고위험 결정을 하고 있기 때문에 최근들어서 Model 그 자체의 위험성도 서서히 드러나고 있는 실정입니다.​​Machine Learning Model이 중요한 결정을 하는 일이 늘어나다 보니, 의도하지 않은 오용 혹은 의도적인 남용으로 ..

Book Review 2024.06.12

UnicodeDecodeError 'utf-8' codec can't decode byte 0x~~ in position ~ invalid start byte

안녕하세요, MoonLight입니다.​Pandas의 read_csv로 CSV file을 읽거나 혹은 Text 기반의 파일을 python에서 읽으려고 할 때, "UnicodeDecodeError 'utf-8' codec can't decode byte 0x~~ in position ~ invalid start byte"라는 Error를 종종 만나곤 합니다.​대부분 한글을 포함하거나 python에서 읽을 수 없는 특수 문자들이 포함된 경우인데, 이를 해결할 수 있는 방법들에 대해서 알아보겠습니다.​​​1. Encoding 방식 변경read_csv()등과 같이 File Open함수에 encoding parameter를 다른 방식으로 바꾸는 방법입니다.​df = pd.read_csv("Encoding_Error..

Development Tip 2024.06.12

No module named 'tqdm'

안녕하세요, MoonLight입니다.​오늘은 python package중에 하나인 tqdm을 설치하는 방법에 대해서 알아보겠습니다.​tqdm은 진행률을 표시하는데 사용하는 Package인데, 시간이 많이 걸리는 작업이 어느 정도 진행이 되었는지 표시해 주는 용도로 쓰입니다.​주로 for문의 range와 함께 사용되고, 설치되어 있지 않은 경우에는 아래와 같은 Error가 발생합니다.​​​​설치하는 방법은 매우 간단합니다. pip install tqdm​금방 설치가 완료되며, 이제부터는 문제없이 tqdm Package를 사용할 수 있습니다.​감사합니다.

Development Tip 2024.06.12

No module named 'PIL' 오류 해결 방법

안녕하세요, MoonLight입니다. ​ 가끔 새로 받은 Source를 실행하다보면, 'No module named ~~~' 이라는 Error를 자주 보게 되는데요 ​ 대부분은 pip install해서 해당 package 설치해주면 끝인데, 간혹 Error가 발생한 Package 이름과 설치할 때 적어야 할 Package Name이 다른 경우가 있습니다. ​ 그 대표적인 예가 PIL인데요, 아래와 같이 Error가 발생해서 설치해보면 설치가 되지 않습니다. ​ ​ ​ ​ ​ ​ 그런 경우에는 아래와 같이 pip install pillow라고 입력하셔야 제대로 설치가 가능합니다. ​ ​ 이번 Post에서는 Simple Tip을 공유해 봤습니다. ​ 다음에 또 만나요~

Deep_Learning 2024.01.31

TFLite File 다루기

안녕하세요, MoonLight입니다. 이번 Post에서는 Tensorflow Model을 모바일 Device, 임베디드 혹은 IoT 기기에서 배포하고 실행하기 위한 File Format인 TFLite(TensorFlow Lite)을 사용하는 방법에 대해서 알아보도록 하겠습니다. TFLite은 앞서 말씀드렸듯이 Computing Power가 낮은 Device에서도 원래 Model과 동일한 성능이 나올 수 있도록 변환된 File Format입니다. 제가 실제로 수행했던 Project에서도 임베디드 디바이스에 모델을 실행하는 경우에 TFLite / ONNX 등의 File Format이 많이 사용되더라구요. TFLite는 기존에 있던 Model File을 변환하는 것이 주된 목적이기 때문에 우선 Model Co..

Deep_Learning 2024.01.29

import __future__ 구문의 의미

안녕하세요, MoonLight입니다. ​ 이번 Post에서는 Python Code보면 가끔 보이는 "import __future__ ~~~" 이 문구가 무엇을 의미하는지 한 번 알아보도록 하겠습니다. ​ ​ 0. __future__의 의미가 뭐지? __future__ Module은 현재 Python Version에서는 지원하지 않지만, 상위 Version의 Python에서는 지원하는 기능을 사용할 수 있도록 해준다고 하네요. ​ 즉, 미래 Version에서는 이미 사용할 수 있지만, 현재 Python Version에서는 지원하지 않는 기능을 현재 Python Version에서 지원해 준다는 의미인데, ​ 제가 처음 이 설명을 봤을 때는 언뜻 와닿지는 않는 설명이었습니다. ​ 예를 들면, Python 2...

Deep_Learning 2024.01.11
728x90
반응형