728x90
반응형

Development Tip 46

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

HuggingFace의 Cache Folder 변경하기

안녕하세요, MoonLight입니다.​HuggingFace에서 다양한 LLM Model 파일들을 받아서 Test하다 보면, 나의 소중한 SSD 용량이 순식간에 꽉 차버리는 상황이 생깁니다.​HuggingFace에서 모델이나 데이터셋을 받을 때 기본위치는 리눅스/맥의 경우는 ~/.cache/huggingface/hub, 윈도우의 경우에는 C:\Users\YOUR_USERNAME\.cache\huggingface\hub 에 저장됩니다.​LLM Model 파일이 적게는 몇 십 G에서 많게는 100G에 달하는 녀석들도 있어서 용량이 차는 것은 순식간입니다.​그래서 저는 저가의 고용량 1TB나 2TB SSD를 추가하고, 거기로 모델이나 데이터셋을 받는 기본위치로 설정해서 사용하고 있습니다.​방법은 생각보다 매우 ..

Development Tip 2025.07.20

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

"보일러플레이트 Code"란?

안녕하세요, MoonLight입니다.​제가 얼마전에 처음들은 용어가 하나 있는데요, 바로 "보일러플레이트 Code"라는 단어입니다.​오늘은 이 "보일러플레이트 Code"가 무엇인지 한 번 알아보도록 하겠습니다.​   1. 개발자라면 한 번쯤 겪었을 ‘그 Code’ 프로그래밍을 시작한 지 얼마 되지 않았을 때, 혹은 새로운 언어를 배울 때 처음 해보는 것이 있습니다.바로 "Hello, World"를 출력하는 것입니다.간단하게 "Hello, World"를 출력하는 Code를 잘 살펴보면 어떤 언어든지간에 비슷하거나 반복되는 Code의 덩어리가 있죠.예를 들어 Java에서는 public static void main(String[] args)라는 Code를 프로젝트를 만들 때마다 반복해서 적게 되고, C#에서..

Development Tip 2025.04.05

NCP(Naver Cloud Platform)으로 ECDSA 방식의 전자서명하는 C# 예제

안녕하세요, MoonLight입니다.​지난 번 Post에서는 NCP(Naver Cloud Platform)의 소개와 API를 사용하기 위한 API 인증키와 Secret Key를 발급받는 방법에 대해서 알아보았습니다. https://moonlight314.tistory.com/entry/Naver-Cloud-Platform%EC%9D%98-API-%EC%9D%B8%EC%A6%9D%ED%82%A4-%EB%B0%9C%ED%96%89%EB%B0%A9%EB%B2%95-1 Naver Cloud Platform의 API 인증키 발행방법안녕하세요, MoonLight입니다.​이번 Post에서는 Naver Cloud Platform에서 제공하는 API를 사용하기 위한 API 인증키 발행방법에 대해서 알아보고자 합니다.​​..

Development Tip 2025.01.24

C# Application에 DLL 포함하여 Single File로 Build 하기

안녕하세요, MoonLight입니다.​Application을 만들다 보면 필연적으로 DLL이 필요하게 되는데요, 결과물을 배포할 때 여러 개의 DLL을 같이 배포하는 경우도 있지만,​깔끔하지 못하게 보이는 것을 싫어하는 분들도 있을 수 있습니다.​개인적으로, Application 제작 후, Release 하는 경우에 이런저런 의존성 때문에 실행에 필요한 파일들이 많아져서 보내는 사람이나 받는 사람이나 모두 조금 귀찮아지는 경우가 생기는 것이 좋게 보이지는 않았습니다.​​아래의 예와 같이, 하나의 실행 파일 이외에 실행에 필요한 다양한 DLL 파일들이 생기는 것을 볼 수 있습니다.​​이번 Post에서는 DLL을 실행파일에 포함하는 여러 가지 방법에 대해서 알아보도록 하겠습니다.​​​  1. Single F..

Development Tip 2025.01.17

.Net Framework / .Net Core / .Net 통합의 역사

안녕하세요, MoonLight입니다.​지난번 .Net Framework / .Net Core 와의 관계에 대해서 알아본 후에 이번 Post에서는 .Net Framework / .Net Core의 역사와 .Net으로 통합된 이야기를 다루어 보겠습니다.​.Net Framework / .Net Core / .Net Standard의 소개에 관한 글은 아래 Post를 참고해 주세요. https://moonlight314.tistory.com/entry/NET-Framework-NET-Core-NET-Standard .NET Framework / .NET Core / .NET Standard ?안녕하세요, MoonLight입니다.​이번 Post에서는 MS에서 .Net이라는 이름을 달고 출시한 다양한 소프트웨어 개..

Development Tip 2025.01.17

.NET Framework / .NET Core / .NET Standard ?

안녕하세요, MoonLight입니다.​이번 Post에서는 MS에서 .Net이라는 이름을 달고 출시한 다양한 소프트웨어 개발 플랫폼들을 알아보도록 하겠습니다. 한 번씩은 이름을 다 들어보셨을 것 같은데, 각 항목들을 발전과정과 차이점을 알고 있으면 도움이 될 것 같습니다.추가로, 장단점과 선택 기준에 대해서도 알아보고 마무리 하겠습니다.​​   1. .NET Framework ​.NET Framework는 마이크로소프트가 2002년에 출시한 소프트웨어 프레임워크로, 주로 윈도우 플랫폼에서 애플리케이션을 개발하고 실행하는 데 사용됩니다. ​이 프레임워크는 CLR(Common Language Runtime)이라는 런타임 환경을 제공하여, 다양한 프로그래밍 언어(C#, VB.NET 등)로 작성된 코드가 공통된 ..

Development Tip 2025.01.17
728x90
반응형