2026/05 4

배포 시간 14분에서 53초로: 빌드 구조 개선과 ARM64 정합성 해결

CI/CD를 운영하면서 dev 배포를 돌리던 중 컨테이너가 Restarting 상태로 머물렀고, /dev/health, /dev/swagger-ui/index.html도 정상 확인이 되지 않았다.애플리케이션 설정 문제를 먼저 의심했지만, 로그에서 exec format error가 반복적으로 확인됐다.exec format error는 바이너리(또는 이미지 내부 실행 파일) 아키텍처가 런타임과 맞지 않을 때 발생하는 대표적인 에러다.실제 EC2는 ARM64(aarch64)인데, GitHub Actions에서 빌드한 이미지는 기본값으로 amd64가 생성되고 있었다.즉, 배포 성공과 실행 가능이 분리된 상태였고, 먼저 아키텍처 정합성을 맞추는 게 우선이었다. 1. 실행 실패부터 해결: ARM64 아키텍처 정합성..

Backend 2026.05.31

[한국대학생IT경영학회] 밋업 프로젝트 중간 회고

오늘은 큐시즘에서 진행하는 밋업 프로젝트의 중간 회고를 작성해보려고 한다. 큐시즘은?큐시즘은 비전을 가지고 함께 성장하는 학회로 기획, 디자인, 개발파트로 구성되어 있다. 기업 연계 프로젝트, 밋업 프로젝트, 전문가 초청 강연 등 다양한 활동이 존재한다.자세한 내용은 큐시즘 공식 홈페이지에서 확인할 수 있다. 큐시즘(KUSITMS) - 한국대학생IT경영학회비전을 가지고 함께 성장하는 학회, 큐시즘의 공식 홈페이지입니다.www.kusitms.com 밋업 프로젝트란?기획 파트에서 발제된 아이디어를 디자인, 개발 파트와 함께 3개월 동안 준비해서 발표하는 큐시즘의 메인 프로젝트이다. 아이디어 발제와 커피챗기업 연계 프로젝트를 진행하는 동안 기획 파트는 주제를 선정하고, 기업 연계 프로젝트 이후 선정된 주제에 ..

후기 2026.05.10

포트는 하나로, 배포는 더 명확하게: Nginx 리버스 프록시와 ECR 전환기

CI/CD 구성 이후 애플리케이션 배포 구조를 운영 관점에서 다시 한번 정리했다.다음과 같은 목적으로 작업을 진행하려고 했다.외부 접근 경로를 단순하게 만들고배포 흐름을 더 일관되게 정리하고dev/prod를 명확하게 분리하는 것이번 글에서는 Nginx 리버스 프록시 도입부터 ECR 기반 배포 전환까지를 단계별로 정리할 예정이다. 경로 기반 라우팅이 필요해진 이유초기에는 dev/prod 컨테이너를 포트로 분리해서 접근했다. 검증 단계에서는 빠르고 단순했지만, 운영 관점에서는 불편했다.어떤 포트가 어떤 환경인지 계속 기억해야 하고외부에 앱 포트를 직접 열어두는 구조가 되며라우팅 규칙이 애플리케이션 밖으로 분산된다그래서 외부 진입점은 80 포트 하나로 두고, 내부 라우팅은 Nginx가 맡는 구조로 바꿨다.Ng..

Backend 2026.05.08

서버 접속 배포에서 GitHub Actions 자동 배포까지, CI/CD 구성하기

Docker 기반 실행 구조와 CI/CD 워크플로우 구성 AWS 인프라, 콘솔 대신 Terraform으로 관리해보자그동안 프로젝트를 진행하면서 필요한 리소스들은 AWS 콘솔에서 직접 만들어서 사용했다. EC2, S3, RDS, Redis와 같은 리소스를 하나씩 늘려가면서 작업했다.콘솔에서 필요한 순간에 바로 만들 수 있zerozeroseven.tistory.com이전 글과 같이 Terraform으로 인프라 구성을 정리한 뒤에는 애플리케이션 배포 흐름을 잡는 작업을 진행했다. 이번에는 Dockerfile 추가부터 GitHub Actions 기반 CI/CD 워크플로우 구성까지 정리해보려고 한다. Dockerfile 추가애플리케이션을 서버에서 일관된 방식으로 실행하려면 먼저 컨테이너 실행 구조가 필요했다. ..

Backend 2026.05.02