Dandy Now!
  • [ 언어·프레임워크/Python ]
    [Python] UV 치트 시트
    2025-08-03 00:59:54
    UV 치트 시트1. UV의 특징Rust 기반의 빠른 성능: Rust로 개발되어 기존 파이썬 패키지 관리자 대비 10~100배 빠른 속도를 자랑한다.단일 도구로 통합: pip, pip-tools, poetry, pyenv, twine, virtualenv 등 다양한 파이썬 도구의 기능을 UV 하나로 대체할 수 있다.Universal Lockfile: uv.lock 파일 하나로 프로젝트의 파이썬 버전 명시 및 모든 의존성 패키지의 정확한 버전과 해시값을 고정하여 일관되고 재현 가능한 개발 환경을 보장한다.Inline Dependency Metadata 지원: 스크립트 파일 자체에 의존성을 직접 명시함으로써 별도의 requirements.txt 파일 없이도 스크립트를 바로 실행하고 필요한 의존성을 자동으로 설..
  • [ 언어·프레임워크/Python ]
    [Python] 병행성(Concurrency)과 병렬성(Parallelism), 그리고 GIL에 대한 오해
    2025-06-11 14:26:52
    파이썬 병행성(Concurrency)과 병렬성(Parallelism), 그리고 GIL에 대한 오해파이썬 개발을 하다 보면 '병행성'과 '병렬성'이라는 용어를 자주 접하게 된다. 특히 웹 스크래핑이나 네트워크 통신처럼 I/O 작업이 많은 경우, 이 두 가지 개념을 이해하는 것이 중요하다. 파이썬의 GIL(Global Interpreter Lock) 때문에 혼란을 겪는 경우도 많지만, 이번 글에서는 간단한 예제 코드를 통해 이 개념들을 명확히 이해하고자 한다.1. 병행성과 병렬성의 차이점병행성(Concurrency)과 병렬성(Parallelism)은 비슷해 보이지만 중요한 차이가 있다.병행성: 여러 작업을 동시에 "진행하는 것처럼 보이게" 하는 개념이다. 단일 코어에서도 여러 작업을 번갈아 가며 처리하여 동..
  • [ 언어·프레임워크/Python ]
    [Python] time 모듈: time.time(), time.perf_counter(), time.process_time() 설명
    2025-05-12 14:04:47
    Python time 모듈: time.time(), time.perf_counter(), time.process_time() 설명Python의 time 모듈은 시간 관련 기능을 제공한다. 이 모듈 내에는 다양한 시간 측정 함수들이 있는데, 그중 time.time(), time.perf_counter(), time.process_time()은 프로그램의 성능 측정이나 경과 시간 계산에 자주 사용되는 함수이다. 각 함수의 특징과 용도를 명확히 이해하는 것은 효율적인 코드 작성에 도움이 된다.1. time.time()time.time() 함수는 Epoch(일반적으로 1970년 1월 1일 0시 0분 0초 UTC) 이후 경과한 시간을 초 단위로 반환한다. 이 값은 부동 소수점 형태로 나타내며, 운영체제의 시스템 ..
  • [ 언어·프레임워크/Python ]
    [Python] 일급 함수: 런타임 초기화부터 partial 활용까지
    2025-05-08 14:26:35
    파이썬 일급 함수: 런타임 초기화부터 partial 활용까지파이썬에서 함수는 단순한 코드 묶음 그 이상이다. 함수는 일급 객체(First-Class Object)로서, 다른 객체들과 동일하게 취급될 수 있는 특별한 존재이다. 이번 포스팅에서는 파이썬 함수의 주요 특징과 함께 map, filter, reduce, callable, partial의 활용법을 살펴보고, 이를 통해 파이썬의 강력함을 느껴보자.1. 파이썬 함수의 특별한 특징파이썬 함수가 일급 객체로서 가지는 네 가지 핵심 특징은 다음과 같다.1.1. 런타임 초기화파이썬 함수는 코드가 실행되는 런타임에 동적으로 초기화된다. 함수 정의 시점이 아닌, 실제 코드가 실행될 때 함수 객체가 메모리에 생성되는 것이다.def greet(name): re..
  • [ 언어·프레임워크/Python ]
    [Python] 정규 표현식 (Regular Expression)
    2025-04-25 09:48:41
    정규 표현식 (Regular Expression)Python에서 이 정도는 기본적으로 알아야하는 정규 표현식이라고 생각해 정리해 보았다.1. 기본 메타 문자 (Meta Characters).: 임의의 한 문자 (개행 문자 제외)^: 문자열의 시작$: 문자열의 끝*: 앞의 문자가 0번 이상 반복+: 앞의 문자가 1번 이상 반복?: 앞의 문자가 0번 또는 1번 나타남[]: 문자 집합. [abc]는 a, b, c 중 하나를 의미[^]: 부정 문자 집합. [^abc]는 a, b, c를 제외한 나머지 문자 중 하나를 의미|: OR 연산. a|b는 a 또는 b를 의미(): 그룹. 매칭된 부분을 캡처하여 나중에 사용 가능\: 이스케이프 문자. 메타 문자를 리터럴 문자로 사용하기 위해 (예: \.은 점 문자를 의미)2..
  • [ 언어·프레임워크/Python ]
    [Python] 파이썬, 한글 파일명 자모 분리? 걱정 노노!
    2025-04-17 13:47:24
    파이썬, 한글 파일명 자모 분리? 걱정 노노!파이썬으로 파일을 다루다 보면, 특히 macOS 환경에서 한글로 된 파일명이 'ㅎㅏㄴㄱㅡㄹ'처럼 자음과 모음이 따로 떨어져 보이는 당황스러운 경험을 할 수 있다. 분명 '한글'이라고 저장했는데 왜 이렇게 보이는 걸까? 이 현상은 생각보다 흔하며, 다행히 간단한 해결 방법이 있다.1. 왜 이런 문제가 발생할까? (유니코드 정규화)이 문제의 핵심에는 유니코드 정규화(Unicode Normalization) 방식의 차이가 있다.같은 글자, 다른 표현: 컴퓨터는 글자를 유니코드라는 표준 방식으로 다루는데, 놀랍게도 '한'이라는 하나의 한글 글자를 표현하는 방식이 여러 가지일 수 있다.NFC (표준 조합): 우리가 흔히 생각하는 방식이다. '한'이라는 글자를 하나의 완..
  • 게시글 대표 이미지 썸네일 주소
    [ 언어·프레임워크/Python ]
    [Python] Python 패키지 관리의 혁신, uv 사용 가이드 (V3 이슈 포함)
    2025-04-14 19:15:53
    Python 패키지 관리의 혁신, uv 사용 가이드 (V3 이슈 포함)파이썬 개발자라면 누구나 pip를 사용해 패키지를 설치해 보았을 것이다. 하지만 프로젝트가 복잡해질수록 의존성 관리는 점점 어려워지고, 설치 시간은 하염없이 길어지기도 한다. 이러한 문제들을 해결하기 위해 등장한 강력한 도구가 바로 uv이다.이 글에서는 차세대 파이썬 패키지 관리 도구 uv가 무엇인지 알아보고, 기존 pip와의 차이점, 그리고 uv init, uv add, uv run 등의 명령어를 활용하여 pyproject.toml 파일을 중심으로 프로젝트를 진행하는 상세한 예제를 소개하고자 한다. 또한, uv run의 편리한 자동 환경 관리 기능과 가상 환경 직접 관리 방법까지 다룰 것이다.1. uv란 무엇인가?uv는 Rust로 작..
  • [ CS/코딩 테스트 ]
    [레벨2][정렬] 가장 큰 수
    2024-02-15 17:01:09
    1. 문제 numbers 배열의 요소는 0~1000의 숫자이다. 이 숫자를 이어 붙여 가장 큰 숫자를 만들어야 한다. 😉 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=python3 2. 풀이 처음에는 for문과 순열을 이용해 풀이했는데 "시간 초과" 되었다. 고민도 하고 힌트도 찾다가 어썸 한 풀이법을 발견했다. # 파이썬 풀이 def solution(numbers): # 1. 모든 수를 문자열로 변환 numbers = list(map(str, numbers)) # 2. x+y와 y+x를 비교하여 정렬 numbers.sort(key=lambda x: (x * 4)[:4], reverse=True) ''' ..