정지용
기술스택 목록
DevOps

Heroku

프로젝트 2에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

Git 저장소에 코드를 push 하는 것만으로 애플리케이션을 빌드·배포·운영하는 PaaS 플랫폼

Heroku는 서버 인프라를 직접 관리하지 않고도 애플리케이션을 배포·실행할 수 있게 해주는 PaaS(Platform as a Service)입니다. 개발자가 서버 프로비저닝, OS 설정, 로드밸런싱 같은 인프라 작업 없이 코드 실행 환경(언어 런타임, 의존성 설치, 프로세스 관리)에만 집중할 수 있도록 만들어졌습니다. 애플리케이션은 Dyno라는 격리된 컨테이너 단위로 실행되며, Git push 한 번으로 빌드부터 배포까지 이어지는 워크플로를 제공합니다.

이럴 때 사용합니다

  • 서버 인프라 관리 없이 빠르게 애플리케이션을 배포하고 싶을 때
  • 소규모 프로젝트나 프로토타입을 최소한의 운영 부담으로 운영하고 싶을 때
  • Git 워크플로에 익숙한 팀이 별도 CI/CD 구축 없이 배포를 간단히 하고 싶을 때

핵심 개념

Dyno
애플리케이션이 실제로 실행되는 격리된 경량 컨테이너로, 필요에 따라 개수를 늘리거나 줄여 스케일링할 수 있다.
Procfile
애플리케이션이 어떤 프로세스(web, worker 등)를 어떤 명령으로 실행할지 선언하는 설정 파일이다.
Buildpack
소스 코드의 언어와 의존성을 감지해 실행 가능한 형태로 자동 빌드해주는 스크립트 모음이다.
Slug
빌드 과정을 거쳐 생성된, 실행에 필요한 코드와 의존성이 압축된 배포 산출물이다.
Add-on
데이터베이스, 로깅, 캐시 등 부가 기능을 클릭 몇 번으로 애플리케이션에 연결해 사용하는 서드파티 서비스이다.
Config Vars
코드에 하드코딩하지 않고 환경변수로 관리하는 설정 값으로, API 키나 접속 정보 등을 저장한다.

Node.js 애플리케이션 배포를 위한 Procfile과 배포 명령

Procfile로 실행할 프로세스를 정의하고, git push heroku main 한 번으로 빌드와 배포를 수행하는 기본 예시입니다.

Shell
# Procfile: 프로젝트 루트에 위치
# web: node index.js

# Heroku CLI로 앱 생성 및 배포
heroku create my-app
git push heroku main

# 배포 후 dyno 개수 조절
heroku ps:scale web=1

처음 쓸 때 흔한 함정

  • 일정 시간 요청이 없으면 무료/저사양 Dyno가 슬립 상태로 전환되어 첫 요청 응답이 느려질 수 있다.
  • Dyno의 파일 시스템은 재시작 시 초기화되므로 파일을 영구 저장소처럼 쓰면 데이터가 사라진다.
  • Procfile의 프로세스 타입 이름(web 등)을 잘못 지정하면 배포는 성공해도 서비스가 뜨지 않는다.

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

  1. 02Web3
    2026년 7월

    Discord NFT 홀더 인증 서비스

    Discord 사용자의 지갑 서명과 NFT 보유 여부를 검증해 서버 접근 권한을 자동으로 부여하는 NestJS 기반 인증 서비스

    이 프로젝트에서의 Heroku 활용

    Procfile 기반 배포 대상 플랫폼

    discord-nft-holder-verification-docs프로젝트 자세히 보기 →

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.