프로젝트로 돌아가기

운영 중

Portfolio Infrastructure

포트폴리오를 콘텐츠뿐 아니라 배포와 운영까지 포함한 실제 서비스로 다룹니다.

일본어 우선 포트폴리오를 Next.js로 만들고 재활용 노트북에서 Docker Compose와 Cloudflare Tunnel로 운영합니다.

기간
2026.07 - 현재
담당 범위
콘텐츠 모델 · container · network · 운영
개인 개발
저장소
비공개 리포지토리

링크가 열리고 필요한 정보에 빠르게 닿는 포트폴리오

채용 담당자가 모든 페이지를 순서대로 읽는 것은 아닙니다. 주요 프로젝트와 구체적인 근거, 이력서를 빠르게 찾을 수 있도록 일본어·영어·한국어 콘텐츠를 하나의 데이터 모델에서 관리했습니다.

내용이 좋아도 링크 자체가 열리지 않으면 신뢰를 얻기 어렵습니다. 그래서 화면의 정보 구조와 사이트를 계속 동작시키는 환경을 하나의 제품 문제로 다뤘습니다.

공개 경로

라우터 인바운드 포트를 열지 않고 방문자를 홈서버로 연결

  1. 01

    방문자

    브라우저에서 안전하게 연결

  2. 02

    Cloudflare

    DNS / HTTPS / Tunnel

  3. 03

    안전한 통로

    cloudflared container

  4. 04

    포트폴리오

    Docker의 Next.js standalone

포트 개방 없이 홈 서버를 공개했습니다

재활용 노트북을 홈서버로 사용하려면 외부 방문자가 포트폴리오에 접속할 공개 경로가 필요했습니다.

홈 라우터의 인바운드 포트를 직접 열지 않고 앱 컨테이너와 외부 공개 경로를 분리하고자 했습니다. 컨테이너마다 localhost가 다르다는 점도 설정에서 명확히 해야 했습니다.

Cloudflare Tunnel을 공개 경로로 사용하고 앱과 cloudflared를 같은 Docker Compose 네트워크에서 실행해 서비스 이름으로 연결했습니다.

  • 앱과 cloudflared를 같은 Compose 브리지 네트워크에 배치했습니다.
  • localhost가 아닌 서비스 이름으로 앱에 연결했습니다.
  • Tunnel·Compose·네트워크 경계를 저장소에 기록했습니다.

이 구성으로 wondde.com을 홈서버에서 운영하고 있습니다.

공개 경로와 컨테이너 네트워크의 경계를 설정에 남겨, 연결 대상을 운영자의 기억에 의존하지 않고 재현할 수 있게 됐습니다.

재시작 뒤에도 스스로 돌아오는 배포 구조

재활용 노트북을 서버로 사용하기 때문에, 재부팅이나 컨테이너 중단 때마다 실행 순서를 수동으로 맞추면 제가 직접 대응할 수 있는 상황인지에 따라 복구가 달라집니다.

RAM이 제한된 개인 서버라 자동 CI/CD, 외부 모니터링, 백업 복구 검증까지 한 번에 갖추기는 어려웠습니다. 우선 현재 환경에서 반복할 수 있는 복구 절차가 필요했습니다.

필요한 파일만 담은 Next.js standalone 이미지를 non-root 사용자로 실행하고, Compose의 healthcheck와 restart policy로 앱의 준비 상태와 재시작을 관리했습니다. 수동 업데이트와 로그 확인 절차도 저장소에 남겼습니다.

  • standalone 결과물만 실행 이미지에 복사했습니다.
  • non-root 사용자로 Next.js 프로세스 실행했습니다.
  • healthcheck·restart policy·수동 운영 절차를 Compose와 문서에 반영했습니다.

현재 Dockerfile과 Compose 설정으로 wondde.com을 운영하고 있습니다. 자동 복구 시간이나 가동률은 아직 측정하지 않았고, 외부 모니터링도 도입하지 않았습니다.

배포는 실행하는 것뿐 아니라 중단 뒤 어디까지 자동으로 돌아오고, 나머지는 어떤 절차로 복구할지까지 설계해야 한다는 점을 배웠습니다.

wondde.com에서 일본어 포트폴리오를 실제로 운영하고 있으며, Dockerfile과 Compose·Tunnel 설정, 업데이트 절차를 저장소에 남겼습니다.

이제 배포를 코드를 한 번 올리는 작업으로 보지 않습니다. 재시작 후 복구, 올바른 네트워크 경계(network boundary), 비밀 정보 관리(secret management), 상태 확인(healthcheck), 장애를 추적할 수 있는 로그까지 모두 운영에 포함합니다.

자동 CI/CD, 가동률 목표(uptime SLA), 외부 모니터링, 부하 테스트, 백업 복구(backup/restore) 검증은 아직 없습니다.

  • main 배포용 CI/CD 또는 승인된 release workflow
  • uptime·응답시간 모니터링과 알림
  • 로그 rotation·backup/restore·관리형 hosting fallback