배포 전략과 환경 분리: ‘말 바꾸기’에 대처하는 개발서버
‘배포 전략과 환경 분리’의 중요성을 1인 개발자의 보고서 작성 에피소드로 설명하고, 남는 서버를 활용해 개발 서버를 구축하고 GitLab CI로 자동/수동 배포를 분리한 실전 경험담입니다.
‘배포 전략과 환경 분리’의 중요성을 1인 개발자의 보고서 작성 에피소드로 설명하고, 남는 서버를 활용해 개발 서버를 구축하고 GitLab CI로 자동/수동 배포를 분리한 실전 경험담입니다.
‘gitlab runner(깃랩 러너) 설치 및 등록’ 과정을 도커(Docker) 기반으로 설명합니다. GitLab CI 파이프라인이 멈춰있는(Pending) 이유를 해결하고, 토큰 발급부터 executor 설정까지 단계별로 가이드합니다.
‘CI/CD 파이프라인 구축’의 개념을 도커파일 비유를 통해 설명하고, .gitlab-ci.yml 작성을 통해 테스트, 빌드, 배포 과정을 자동화하는 방법을 다룹니다.
‘1인 개발자 인프라’ 구축 경험을 통해 배포 안전장치(Git, Test, Docker Tag)의 중요성을 설명합니다. 회사 분해 후 겪은 시말서 에피소드와 CI/CD 필요성을 깨닫는 성장기입니다.
‘도커 컨테이너와 서비스’의 차이를 햄버거 세트 메뉴 비유로 쉽게 설명하고, 복잡한 인프라 주문(배포)을 해결하기 위한 도커 컴포즈(Docker Compose)의 필요성을 다룹니다.
‘도커 이미지와 레이어’의 원리를 투명 셀로판지와 팬케이크 비유로 설명하고, Dockerfile 작성 순서에 따른 레이어 캐싱 최적화 팁을 제공합니다.
‘가상머신과 도커 차이’를 집과 텐트의 비유로 설명하고, 도커가 가볍고 빠른 원리(OS 공유)와 실무에서의 환경 격리 장점을 다룹니다.
‘리눅스 CLI와 권한’의 중요성을 신입 개발자의 서버 배포 경험담(SSH, MobaXterm)을 통해 설명하고, 파일 권한(chmod) 해석법과 터미널 생존 팁을 제공합니다.
‘서버와 리눅스’의 본질을 설명하고, 서버가 윈도우 대신 리눅스를 사용하는 이유(GUI 비용, 안정성)와 가상머신(VM)의 비효율성을 통해 도커의 필요성을 빌드업합니다.
‘REST API 설계와 DTO’의 중요성을 보안 문제와 순환 참조(무한 루프) 예시를 통해 설명하고, 올바른 RESTful URL 설계법과 실무적인 DTO 네이밍 전략을 제시합니다.