키워드로 검색하여 게시물을 찾으세요.
There are a total of 256 posts.
Published 12월 10, 2025 by whitedec
Django ORM에서 _, __, . 기호의 차이와 사용법 : user_id, user.id, user__id 무엇을 써야할까?
Django ORM에서 흔히 혼동되는 `_`, `__`, `.` 기호의 의미와 차이를 명확히 정리합니다. ForeignKey의 실제 DB 컬럼, ORM 룩업 구분자, 파이썬 속성 접근의 역할을 구분하고, 성능 차이…
리버스 프록시란? 포워드 프록시와의 차이, 목적, 사용 시나리오 한눈에 정리
리버스 프록시와 포워드 프록시의 차이점을 명확히 정리하고, 각각의 목적과 사용 시나리오를 한눈에 파악할 수 있는 가이드입니다. 로드 밸런싱, SSL 종료, WAF, 캐싱, URL 라우팅 등 리버스 프록시가 제공하는…
Published 12월 09, 2025 by whitedec
데스크탑 시스템 팬 교체 후기: 서버 운영자가 직접 해보니 알게 된 것들
서버처럼 24시간 켜두는 데스크탑의 팬 소음 문제를 해결한 실제 경험을 공유합니다. ARCTIC P12 5팩으로 교체한 후 소음이 거의 없고, PWM 제어로 온도에 맞춰 팬 속도를 조절하는 방법, RGB 포기, 흡…
Django/DRF에서 HMAC 서명으로 서버-서버 요청 무결성 지키기
Django와 DRF 환경에서 HMAC 서명을 활용해 서버-서버 간 요청의 무결성과 인증을 확보하는 방법을 상세히 소개합니다. 비밀 키 공유, 타임스탬프, nonce를 이용한 리플레이 방지, 클라이언트와의 차이점,…
Published 12월 08, 2025 by whitedec
React RCE 사건이 남긴 교훈: HMAC 서명·키 로테이션·제로 트러스트의 필요성
React Server Components/Next.js에서 발생한 RCE(CVE-2025-55182) 사건은 클라이언트 데이터에 대한 무조건적 신뢰가 얼마나 위험한지를 보여준다. HMAC 서명과 키 로테이션, 제…
React RCE 취약점(CVE-2025-55182): 무엇이 문제였고 왜 발생했는가
2025년 12월 공개된 React Server Components 취약점(CVE-2025-55182)은 Flight 프로토콜 역직렬화 결함으로 RSC를 사용하는 Next.js 서버에서 인증 없이 원격 코드 실행이…
Published 12월 05, 2025 by whitedec
Edge가 User-Agent에 Safari를 넣는 이유
Edge가 User-Agent 문자열에 Safari를 포함하는 이유를 30년의 브라우저 전쟁과 레거시 코드의 역사와 함께 설명합니다. Netscape, IE, Chrome, WebKit, Gecko 등 주요 엔진과…
악성 봇은 못 멈춘다. 대신 앱 앞에서 잘라버립시다 - nginx 단계에서 이상한 URL 정리하기
웹 애플리케이션을 노출하면 악성 봇과 스캐너가 무작정 요청을 보냅니다. 이 글에서는 nginx의 444 상태코드를 활용해 ‘blackhole.conf’ 파일로 이상한 URL을 사전 차단하는 방법을 소개합니다. 로그…
클라우드플레어(Cloudflare)는 왜 공짜일까? : CDN의 원리와 ‘돈’이 되는 비즈니스 모델
클라우드플레어가 왜 무료로 CDN과 보안 서비스를 제공하는지, 그 비즈니스 모델과 무료 플랜이 개인 블로그와 작은 서비스에 어떤 이점을 주는지, 그리고 유료 플랜으로 자연스럽게 전환되는 과정을 상세히 설명합니다. …
리눅스 /usr 디렉터리, 50년 전 하드웨어 사고가 만든 나비효과
리눅스의 /usr 디렉터리가 왜 User가 아니라 Unix System Resources인지, 1971년 하드 디스크 용량 부족으로 탄생한 임시방편이 어떻게 표준이 되었는지, 그리고 최근 Usr Merge로 재편되…
리눅스 파일 시스템에서 `/usr` 디렉토리의 정체와 역할
리눅스에서 흔히 오해되는 `/usr` 디렉토리의 실제 역할을 정리합니다. `/usr`는 사용자 홈이 아니라 시스템과 애플리케이션이 공유하는 실행 파일, 라이브러리, 매뉴얼, 데이터가 모여 있는 영역입니다. `/ho…
리눅스 AppImage: 파일 하나로 끝나는 데스크톱 앱 배포 방식
리눅스에서 AppImage는 한 파일에 모든 의존성을 담아 설치 없이 바로 실행할 수 있는 포터블 앱 배포 방식입니다. 윈도우 사용자에게는 낯설지만, 루트 권한 없이도 사용 가능하며, /opt에 정리하고 .desk…
Docker 대신 systemd.service? 리눅스에서 웹 애플리케이션 배포 전략 다시 보기
리눅스 서버에서 웹 애플리케이션을 배포할 때 Docker 대신 systemd.service를 활용하는 장점과 적합한 상황을 정리했습니다. 단순한 구조, 리소스 오버헤드 감소, 로그·네트워크 통합 등 운영 친화적이면…
Published 12월 04, 2025 by whitedec
웹 개발자에게 VPN이 필수인 이유: 보안만이 아니라 서비스 품질까지
웹 개발자가 VPN을 활용해야 하는 이유를 보안뿐 아니라 서비스 품질, 결제 로직, GDPR, CDN 차단, SEO 현지화 등 실제 사용자 환경을 재현하고 문제를 사전에 발견하는 방법을 사례와 함께 자세히 설명합니…
Django와 Tailwind CSS로 Docker 이미지 경량화: 멀티 스테이지 빌드 전략
Django 프로젝트에서 Tailwind CSS를 사용하면서 Docker 이미지를 경량화하는 방법을 소개합니다. Node.js를 빌드 단계에만 포함하고, 최종 런타임에는 순수 Python 환경만 남겨 이미지 크기를…