1. 개발 환경의 목표 — '사람 없이도 일관된 결과' REINDEERS의 개발 환경은 단 하나의 목표를 갖고 설계되었다. "사람이 없어도 코드 품질과 배포 결과가 동일해야 한다." 이를 위해 모든 개발 환경은 완전히 동일한 컨테이너 기반으로 세팅되었고, 환경 편차나 로컬 의존성 문제는 제거되었다. 개인의 환경은 존재하지 않으며, 모든 환경은 dev , staging , production 세 단계로 통합 관리된다. 이 목표가 생긴 배경이 있다. 팀이 네 번 교체되면서 매번 겪었던 문제가 "내 PC에서는 되는데 서버에서는 안 된다"였다. 운영체제 버전, 런타임 버전, 로컬에 설치된 라이브러리의 차이가 빌드 결과의 불일치를 만들어냈다. 특히 4개국(태국, 한국, 중국, 말레이시아)에 분산된 개발자들이 각자 다른 환경에서 작업하면 이 문제는 기하급수적으로 커진다. 컨테이너화된 개발 환경은 이 문제를 원천적으로 해결한다. 누가, 어디서 빌드하든 결과가 동일하다. 표준 개발 환경 구조 # Dockerfile (공용 개발환경) FROM node:20-bullseye RUN apt-get update && \ apt-get install -y python3 python3-pip vim curl git && \ pip install pre-commit flake8 WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . CMD ["npm", "run", "dev"] 모든 개발자는 동일한 컨테이너 이미지를 사용하며, 코드 수정 시 Dr...