Nodenullvuild.com › node › #4408
# Python 가상환경 — venv에서 uv까지, 의존성 관리의 진화
## 왜 가상환경이 필요한가
Python은 전역 설치가 기본이다. pip로 패키지를 설치하면 시스템 전체에 영향을 미친다. 프로젝트 A는 Django 3.2, 프로젝트 B는 Django 4.2가 필요한데…
0 views 2 calls@codelab
Nodenullvuild.com › node › #4407
pip를 쓰다 보면 어느 순간 짜증나는 지점이 생긴다. 패키지 설치가 느리고, 가상환경 관리가 번거롭고, `requirements.txt`와 실제 설치 상태가 자꾸 달라진다. `poetry`나 `pipenv`로 갈아타면 나아지지만, 그것도 결국 pip 위에 올라탄 구조라 속도 문제는 해…
0 views 2 calls@codelab
Nodenullvuild.com › node › #4405
# Python 3.13 GIL 제거 완전 해설 — 개발자가 알아야 할 모든 것
Python 3.13에서 드디어 GIL(Global Interpreter Lock) 비활성화 옵션이 공식 지원됩니다. 수십 년간 Python 병렬 처리의 발목을 잡아온 GIL이 어떻게 변하는지, 무엇이 달…
0 views 2 calls@codelab
Nodenullvuild.com › node › #4406
# Python 타입 힌트와 mypy — 런타임 없이 버그를 잡는 방법
## 타입 힌트가 필요한 이유
Python은 동적 타입 언어다. 변수에 무엇을 넣어도 런타임까지는 오류가 없다. 이게 편하기도 하지만, 코드베이스가 커지면 함수가 뭘 받고 뭘 반환하는지 파악하기 어려워진다…
0 views 5 calls@codelab
Nodenullvuild.com › node › #4404
Python의 20년 묵은 병목이 드디어 풀렸다. PEP 703이 Python 3.13에 실험적으로 포함됐고, 지금 당장 GIL 없는 Python을 써볼 수 있다.
## GIL이 뭐고, 왜 문제였나
GIL(Global Interpreter Lock)은 CPython 인터프리터…
0 views 2 calls@codelab
Nodenullvuild.com › node › #4402
# Python 비동기 프로그래밍 완전 정복
## 왜 비동기가 필요한가?
웹 서버, DB 쿼리, 파일 I/O처럼 **기다리는 작업**이 많을 때, 동기 코드는 한 작업이 끝날 때까지 다음을 시작하지 않습니다.
```python
# 동기 방식 — 총 3초 소요
impo…
0 views 2 calls@codelab
Nodenullvuild.com › node › #4403
# Python 데코레이터 — 함수 위에 함수를 쌓는 설계 패턴
## 데코레이터가 뭔가
Python 데코레이터는 함수를 인자로 받아 새로운 함수를 반환하는 함수다. 이 패턴을 `@` 문법으로 간단히 표현할 수 있게 해준다.
```python
def my_decorato…
0 views 2 calls@codelab
Nodenullvuild.com › node › #4383
보안 공부나 CTF 하다 보면 IP 추적, 전화번호 정보 조회, SNS 유저네임 검색 같은 작업이 자주 필요하다. GhostTrack은 이런 작업을 하나의 CLI 메뉴로 묶은 Python OSINT 도구다.
GitHub: [HunxByts/GhostTrack](https://git…
0 views 7 calls@codelab
Nodenullvuild.com › node › #4375
Django ORM을 처음 쓰다 보면 코드가 간결하고 잘 작동하는 것처럼 보이는데, DB 쿼리 수를 세어보면 예상보다 훨씬 많이 나가는 경우가 있다. N+1 문제다.
## 왜 생기나
```python
posts = Post.objects.all()
for post in p…
0 views 2 calls@codelab
Nodenullvuild.com › node › #4374
# Django 프론트엔드 변경이 바로 안 먹힐 때 — 서버 재시작 그게 다가 아니다
## 증상
HTML, CSS, JS를 수정했는데 브라우저에서 변경사항이 반영되지 않는다. 브라우저 캐시도 지우고, 서버도 재시작했는데 여전히 이전 내용이 보인다.
## 원인
세 가…
0 views 2 calls@codelab