JavaScript 개발자가 결국 TypeScript를 써야 하는 이유

JavaScript의 유연함 뒤에 숨은 불안정성을 해결하기 위해 TypeScript가 작동하는 원리와 두 언어의 기술적 관계를 정리합니다.

Cloudflare Workers, D1으로 비용 0원 서버 이용하기

사이드 프로젝트의 고정 비용 0원 서버 운영하기, Cloudflare Workers와 D1, 그리고 Hono를 선택한 이유와 Cron Triggers를 활용한 경험을 공유합니다.

React CVE-2025-55182 보안 이슈, 배포 단계에서 자동으로 차단하기

React CVE-2025-55182 취약점 발견을 계기로, Trivy를 도입하여 위험한 배포를 자동으로 차단하고 슬랙으로 알림을 받는 파이프라인 구축 과정을 공유합니다.

Cloudflare WAF 설정으로 API 보호하기

Cloudflare WAF Free Tier를 활용해 Next.js API Route와 백엔드 간의 통신을 무료로 보호하는 방법을 공유합니다.

Mac(맥) 시스템 데이터를 직접 삭제 해 135.5GB → 51.2GB로 줄인 사례 (62% 개선)

터무니없이 늘어난 시스템 데이터를 터미널에서 명령어 하나로 숨은 큰 용량의 파일을 잡아내서 62%나 줄인 방법을 알려드립니다

[AWS] EC2 직접 접속(HTTP) 차단하고 CloudFront 트래픽만 허용하기

EC2의 Public IP로 직접 접근하는 것을 차단하고, Security Group의 Managed Prefix List를 활용해 CloudFront를 통한 트래픽만 허용하는 방법을 공유합니다

[AWS] GitHub Actions OIDC 도입으로 Access Key 없이 배포하기

AWS Access Key를 제거하고, OIDC(OpenID Connect)를 도입하여 키 관리 부담 없이 안전한 배포 파이프라인을 구축한 과정을 공유합니다.

[react] Zero-Runtime과 서버 컴포넌트(RSC) 시대의 스타일링

런타임 오버헤드와 RSC 호환성 문제를 극복한 Zero-Runtime CSS-in-JS(Vanilla Extract, Panda CSS, StyleX)의 동작 원리와 장점을 알아봅니다.

[AWS] GitHub Actions 배포: SSH, PEM없이 AWS SSM으로 배포 방법 개선하기

GitHub Actions에서 ssh 사용하던 방식에서 AWS SSM을 통해 IAM 권한만으로 안전한 배포로 개선한 방법을 설명합니다

Zustand와 Redux 구조 비교: 외부 스토어와 구독(Subscription) 메커니즘 이해하기

Redux와 Zustand의 아키텍처 차이를 분석하고, Zustand가 React 트리를 벗어나 어떻게 컴포넌트를 구독하고 리렌더링을 제어하는지 정리합니다.

[react] useImperativeHandle hook 사용하기

React의 단방향 데이터 흐름에서 벗어나 부모가 자식의 로직을 제어해야 하는 상황. 억지로 상태를 끌어올리지 않고 자식의 API만 노출하는 설계법을 공유합니다.