title 템플릿 단일 소스 — 자식 페이지가 박지 않게 한다
브라우저 탭, SEO 검색 결과, OG 공유 카드 — 같은 페이지의 "제목" 이 세 자리에서 다르게 보이는 사고가 자주 일어납니다. 원인은 단순합니다. 제목 템플릿 이 하나의 소스에서만 합성되지 않고, 페이지마다 자기 제목에 사이트명을 박는 패턴을 같이 쓰기 때문.
배포 옵션·서비스 비교·선택 기준
브라우저 탭, SEO 검색 결과, OG 공유 카드 — 같은 페이지의 "제목" 이 세 자리에서 다르게 보이는 사고가 자주 일어납니다. 원인은 단순합니다. 제목 템플릿 이 하나의 소스에서만 합성되지 않고, 페이지마다 자기 제목에 사이트명을 박는 패턴을 같이 쓰기 때문.
GitHub Pages 는 GitHub 저장소를 그대로 정적 웹사이트로 배포하는 무료 호스팅입니다. HTML/CSS/JS 또는 Jekyll/Hugo/Vite 같은 정적 사이트 생성기 (SSG) 의 빌드 산출물을 그대로 서빙합니다.
Replit 은 IDE · 협업 · 배포 + AI 코드 생성이 한 화면 안에 들어 있는 클라우드 개발 환경입니다. 로컬 셋업 없이 브라우저만으로 자연어 → 코드 → 배포까지 끝낼 수 있어 AI Web IDE 카테고리의 대표 주자입니다.
AWS 는 클라우드 서비스 시장을 사실상 정의한 사업자입니다. 서비스 카탈로그가 200 개를 넘지만 카테고리 단위로 보면 몇 개의 큰 묶음으로 정리됩니다.
Fly.io 는 컨테이너를 글로벌 엣지에 빠르게 띄우는 PaaS 입니다. 내부에서 Firecracker microVM 을 써서 컨테이너 이미지를 가벼운 가상 머신으로 변환해 띄웁니다.
관계형 DB 를 직접 운영하는 일은 백업·복구·HA·튜닝·버전 업그레이드 등 손이 많이 가는 자리입니다. RDS (Relational Database Service) 는 그 운영 책임의 상당 부분을 AWS 가 가져가는 매니지드 서비스입니다.
EC2 (Elastic Compute Cloud) 는 AWS 가 가장 처음 공개한 컴퓨팅 서비스로, 클라우드의 "가상 머신" 추상을 대중화했습니다. 매니지드 서비스가 늘어나면서 직접 사용 비중은 다양해졌지만 자유도와 비용 통제에서 기본이 되는 자리입니다.
AWS 대부분은 인터넷 너머 마법의 데이터센터에서 돈을 받고 일합니다. 개발 머신에서 검증하려면 (1) 실제 AWS 에 PoC 계정 만들기, (2) 어딘가에 비용을 결제하기, (3) 인터넷이 죽으면 손이 멈추기 — 세 가지 비용을 매일 치러야 합니다. 로컬 에뮬레이터는 이 세 비용을 0 에 가깝게 만듭니다.
S3 (Simple Storage Service) 는 AWS 가 2006 년 가장 먼저 GA 한 서비스로, 객체 저장소라는 카테고리를 대중화했습니다. 파일 시스템도 블록 스토리지도 아닌, "키로 접근하는 무한히 큰 버킷" 의 모델이 이후 클라우드 스토리지의 표준 모양이 됐습니다.
정적 파일·동영상·API 응답을 사용자 가까이에 캐시해 두면 응답이 빨라지고 원본 서버의 부담이 줄어듭니다. 이 일을 전세계 분산 엣지에서 처리하는 서비스가 CDN (Content Delivery Network) 입니다.
Firebase 는 2011 년 작은 스타트업으로 시작해 2014 년 Google 에 인수됐습니다. 매니지드 모델이 강한 서비스답게 한동안은 "로컬에서 띄우는 길이 없다" 가 맞는 답이었지만, 2020 년 3 월 Firebase Local Emulator Suite 가 정식 GA 되면서 그림이 바뀌었습니다.
서버를 띄우지 않고 함수 단위로 코드를 실행하는 모델이 있습니다. 이벤트가 들어오면 그 순간 컴퓨트가 깨어나 함수 한 번을 실행하고, 끝나면 사라집니다. AWS 의 그 자리가 Lambda 입니다 — 서버리스라는 단어가 대중화되는 데 큰 역할을 했습니다.
도메인 이름을 IP 로 풀어 주는 DNS 는 인터넷의 가장 오래된 인프라 중 하나입니다. AWS 의 매니지드 DNS 서비스가 Route 53 입니다 — 이름은 DNS 의 표준 포트 (53) 에서 따왔습니다.
Supabase 는 "오픈소스 Firebase" 라는 슬로건으로 2020 년 등장했습니다. Firebase 가 자체 NoSQL · 자체 Auth · 자체 Storage 처럼 하나의 거대한 매니지드 박스라면, Supabase 는 Postgres 를 중심에 두고 그 위에 작은 컴포넌트를 얹는 방식을 택했습니다. 매니지드 (…
AWS 의 네트워크 방화벽은 두 층입니다. 인스턴스에 붙는 보안 그룹 (Security Group) 과 서브넷에 붙는 네트워크 ACL (NACL). 이름은 비슷하지만 동작 모델이 꽤 다릅니다.
AWS 에서 컴퓨팅·DB·로드밸런서가 배치되는 가상 네트워크가 VPC (Virtual Private Cloud) 입니다. VPC 의 모양을 먼저 정의하지 않으면 그 안에서 일어나는 모든 결정이 흔들립니다.
에뮬레이터가 없는 외부 SaaS가 있습니다. OAuth 로그인 · 결제 · 동적 DNS · Slack Webhook · AI provider, 그리고 Firebase Cloud Messaging처럼 공식 emulator가 없는 서비스도 있습니다. 이런 외부 의존을 끊고 싶을 때 가장 단순한 길은 HTTP 응답을 흉내내는…
컨테이너 이미지를 만들고 나면 어디서 실행할지가 다음 질문입니다. EC2 위에 직접 docker 를 돌리는 길도 있지만, 매니지드로 컨테이너 라이프사이클·헬스체크·롤링 배포·서비스 디스커버리를 맡기는 길이 있습니다.
여러 백엔드 서버에 트래픽을 분산하고, 죽은 서버를 빼고, 인증서를 한 자리에서 관리하는 일은 거의 모든 웹 서비스의 공통 자리입니다. AWS 의 그 자리가 ELB (Elastic Load Balancing) 입니다 — 시기마다 다른 모양으로 4 종이 등장했습니다.
클라우드의 모든 호출은 결국 "누가 · 무엇을 · 어디에" 의 질문을 통과합니다. AWS 에서 그 질문을 받는 자리가 IAM (Identity and Access Management) 입니다. 다른 매니지드 서비스가 화려해 보이는 데 비해 IAM 은 텍스트 정책 위주의 평범한 표면을 가지지만, 운영 사고의 상당수가 이…
서브넷이 "공용" 인지 "사설" 인지를 결정하는 것은 라벨이 아니라 라우팅입니다. 인터넷 게이트웨이 (IGW) · NAT 게이트웨이 · 라우트 테이블 · VPC 엔드포인트가 어떻게 결합되는지를 이해하면 서브넷 설계의 의미가 분명해집니다.
"AWS 에 배포한다" 는 한 문장 안에는 매우 다른 추상 수준의 선택지가 있습니다. EC2 한 대 직접 관리부터 Lambda 같은 함수 단위 호스팅까지. 다른 클라우드와 PaaS 까지 포함하면 그림이 더 넓어집니다.