Programming 4

pip, Poetry, uv: 파이썬 패키지 매니저 삼파전

pip, Poetry, uv: 파이썬 패키지 매니저 삼파전"requirements.txt가 늘어날수록 디버깅이 아니라 고고학 같다"는 말이 여전히 회자될 정도로 환경 관리는 끝나지 않은 과제입니다.1. 각 도구의 핵심 철학pip: 표준 패키지 설치 도구. requirements.txt와 venv로 구성하는 가장 단순한 흐름입니다.Poetry: pyproject.toml 기반 의존성 선언과 잠금 파일(poetry.lock)을 제공하며, 프로젝트 스캐폴딩·퍼블리시까지 관리합니다.uv: Astral이 공개한 초고속 패키지 매니저로, pip와 pip-tools를 대체하면서도 설치 속도를 Rust 구현으로 크게 끌어올립니다.2. 기능 비교 한눈에 보기항목pipPoetryuv설치 속도기본안정적이지만 lock 검증 ..

Programming 2026.02.05

FastAPI 디렉터리 구조, 2026년판 실전 가이드

FastAPI 디렉터리 구조, 2026년판 실전 가이드"엔드포인트가 늘수록 PR이 미로가 된다"는 탄식이 들린다면, 폴더 구조를 손볼 시간이 왔다는 신호입니다.1. 왜 2026년에 다시 구조를 얘기하나요?FastAPI 0.110 이후(2025 Q4) 릴리스에서는 라우터 모듈화, lifespan 핸들러, Settings 관리가 표준 문서에 편입됐습니다. 동시에 DDD(도메인 주도 설계)를 차용한 대규모 서비스 사례가 늘면서, "app/main.py 하나"로 시작한 토이 프로젝트가 실서비스로 진화할 때 겪는 통증이 커졌습니다. 최신 공식 문서(“Bigger Applications”)와 커뮤니티 DDD 스캐폴딩을 조합해, 팀 규모에 맞춘 디렉터리 템플릿을 정리했습니다.2. FastAPI 공식 문서가 제안하는 ..

Programming 2026.02.05

[Java] 제어문 (if, switch, for, while, continue, break)

조건문: if, switch --+ 눈이 6개인 주사위를 던져서 나오는 숫자에 따라 동작하는 코드를 짠다고 할 때 1. If int N = 6; int result = (int) (Math.random()*N) + 1; if (result == 1) { // do something } else if (result == 2) { // do something } else if (result == 3) { // do something } else if (result == 4) { // do something } else if (result == 5) { // do something } else { // do something } 2. Switch int N = 6; int result = (int) (Math..

Programming/Java 2022.07.31

[Java]데이터 타입과 형 변환

기본형(Primitive Type) 데이터 타입 --+ 구분 Type bit 수 값 논리형 boolean true / false 정수형 byte 8 -2^7 ~ 2^7-1 (-128~127) short 16 -2^15 ~ 2^15-1 (-32768~32767) int 32 -2^31 ~ 2^31-1 (-2147483648~2147483647) long 64 -2^63 ~ 2^63-1 실수형 float 32 float f = 0.123456789f; double 64 double d = 0.1234567890; 문자형 char 16 \u0000 ~ \uffff (0 ~ 2^16-1) 형 변환(Type casting) --+ 기본형은 기본형끼리, 참조형은 참조형끼리 형 변환 가능. 단 boolean은 기본적..

Programming/Java 2022.07.31