728x90
반응형

Development Tip 48

Python의 Vector vs List, 그 근본적인 차이점

안녕하세요, MoonLight입니다.​개발자라면 누구나 list를 사용해 보셨을 겁니다. 편리하고 유연한 이 내장 자료형은 다양한 데이터를 담는 데 최적화되어 있죠. 하지만 데이터 과학, 머신러닝, 게임 개발 등 고성능 컴퓨팅이 필요한 분야로 발을 들여놓는 순간, list만으로는 한계에 부딪히게 됩니다. 바로 이때, 우리는 Vector(벡터)라는 개념을 만나게 됩니다.​그렇다면 list와 vector는 정확히 어떤 차이가 있을까요? 이 글에서는 두 자료구조의 근본적인 차이점을 컴퓨터 과학적 관점과 수학적 관점에서 심층적으로 비교해보고, 왜 특정 상황에서는 vector가 필수적인지 알아보겠습니다.​ 1. 컴퓨터 과학적 관점: 메모리 구조와 성능 list와 vector의 가장 큰 차이점은 데이터를 메모리..

Development Tip 2025.10.09

Python의 가장 기본적인 자료형 #1 - list

안녕하세요, MoonLight입니다.​Python을 배우다 보면 가장 먼저 마주치는 게 바로 기본 자료형입니다.​그중에서도 list, tuple, set, dict 이 네 가지는 자료구조의 기본 틀을 잡는 중요한 자료형들입니다.​겉보기엔 그냥 "자료를 담는 그릇"처럼 보이지만, 실제로는 동작 방식이나 목적, 특성이 다 달라서 필요한 곳이 적절하게 사용하는 것이 중요합니다.​오늘은 이 네 가지중에 가장 흔하게 사용되는 List에 대해서 알아보면서, 어떤 상황에서 무엇을 쓰는 게 맞는지 정리해 보겠습니다.​​ 1. List List는 가장 흔하게 쓰이는 자료형이며, 순서가 있고, 변경 가능(mutable)하며, 중복을 허용합니다.​ 1.1 예제 List 생성fruits = ["apple", "banan..

Development Tip 2025.10.02

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
728x90
반응형