개발자
금전적인 문제로 Aws ec2나 s3없이 해야하는 상황입니다 어떻게 해야 떨어져있는 팀원들과 원활한 협업이 가능할까요? 현재는 백엔드1명의 데스크탑을 서버로 사용중입니다. 이게 24시간 돌아가는 상황도 아니고 개발용,배포용 서버가 따로 있는게 아니라 백엔드끼리도 백엔드-프론트끼리도 쉽지않더군요. 이미지저장같은 경우도그렇구요 혹시 저랑 비슷한 상황이실때 선배님들은 어떻게 하셨는지 궁금합니다.
답변 3
아파치나 NGINX는 이해하고 계신다고 가정해볼게요. 이미지는 특정 디렉토리에다 넣어두고 라우트 패스를 잡아두세요. 개발용 배포용 서버가 따로 없으면 도커로 해결하면 됩니다. 개발용 컨테이너, 운영용 컨테이너 이렇게요. 미니쿠베같은거 지금 공부하시기 어려울테니 도커컴포즈를 추천합니다. 그럼 자주 쓰이는 패턴으로 자동배포를 구현할 수 있겠죠. 1. 깃허브 PR pass 후 merge 혹은 push 2. 깃허브 액션을 통한 빌드 및 도커 이미지 빌드 3. 깃허브 액션에서 ssh 를 통한 자동 Deploy 혹은 직접 docker compuse pull 명령어로 새 이미지 받아와서 릴리즈 4. 좀더 고민해보면 쉘(배치파일) 하나 짜서 블루그린으로 배포해도 되죠.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 10월 26일
프로젝트의 규모에 따라 다르겠지만 Github 같은 버전관리 시스템을 활용하여 원격 리포지토리에서 협업하는 것이 가장 기본적인 방법입니다. 각자의 작업을 브랜치로 관리하고 Pull Request를 통해 코드를 머지하는 방식으로 협업할 수 있습니다. 서버 문제에 대해서는, 당장 금전적으로 부담되는 AWS나 GCP를 사용하지 않아도, 비교적 저렴한 비용으로 VPS 호스팅 서비스(예: DigitalOcean, Vultr 등)를 이용해 서버를 운영할 수 있습니다. 개발/배포 환경 구분도 Docker를 활용하여 같은 서버에서 분리된 컨테이너 안에서 돌릴 수 있습니다. 데이터베이스도 마찬가지로 docker-compose 같은 것을 이용해서 로컬 DB와 동일한 환경을 갖출 수 있습니다. 이미지 저장같은 경우에는, 추가적인 비용 없이 Github LFS(Large File Storage)나 GitLab의 경우 내장된 object storage 기능을 사용할 수 있습니다. 마지막으로 CI/CD 도구(Jenkins, Travis CI 등)를 활용하여 자동 배포환경을 구축하면 좋습니다. 이렇게 하면 개발자는 코드만 Github에 Push하면 자동으로 테스트와 배포가 이루어지게 됩니다. VirtualBox나 Vagrant같은 가상환경을 만들어서 그 안에서 개발하며, 모든 환경을 코드로 관리(Infrastructure as Code)하여 환경 설정의 차이로 인한 문제를 방지할 수 있습니다. 협업도구로는 Slack, Trello, Jira 등을 사용하여 프로젝트 일정과 태스크 관리를 할 수 있습니다. 마지막으로 공개프로젝트가 아니라면 비용을 들여도 Private 리포지토리를 사용하는 것이 좋습니다. 무료 오픈소스 플랫폼들에서도 저렴한 비용으로 Private 리포지토리를 제공합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!