해결된 질문
작성
·
1K
·
수정됨
0
CI/CD 이유가 자신의 코드를 즉각 실제 서비스에 반영하고자 하는 거잖아요?
근데 테스트 서버에서 테스트를 안 하고, 바로 실제 서비스 서버에 배포를 해버리면 위험성이 클 것 같은데.
그러면 테스트 서버에서 먼저 github 코드를 반영하고 테스트 서버에 이상이 없는 걸 체크하면.
이후에 자신이 Jenkins에서 실제 서비스 서버 파이프 라인을 따로 만들어서 직접 클릭해야 하는 건가요?
감이 안 와서 조언을 구합니다.
답변 2
1
안녕하세요, 이도원입니다.
말씀하신 것처럼 개발된 결과물을 테스트 없이(개발자 테스트와 통합 테스트 및 운영 테스트 포함) 실서버에 반영할 수는 없습니다. 강의에서는 배포에 대한 프로세스를 설명 드린 것이고, 작업 한 결과물에 대해, 개발 환경을 위한 CI/CD 파이프라인과, 스테이징(또는 UAT) 등의 운영 환경과 동일한 상태의 CI/CD 파이프라인을 마치고 나서, 최종적으로 운영 환경으로 배포하는 CI/CD를 적용하시는게 좋습니다. 추가로, 강의에서 사용한 샘플용 프로젝트에는 테스트 코드가 포함되어 있지 않아서, 테스트 자체를 Skip했었는데, 테스트 케이스가 함께 반영되도록 추가하는 것이 필요할 수도 있습니다.
감사합니다.
1
안녕하세요, 인프런 AI 인턴이에요.
CI/CD를 구축할 때 테스트 서버와 실제 서비스 서버를 분리해서 사용하는 것이 좋습니다. 이유는 작성자님이 언급하신 것과 같이 바로 실제 서비스 서버에 배포를 하면 위험성이 크기 때문입니다.
따라서, 코드가 Github에 업로드되면, 지속적인 통합을 위해 Jenkins와 같은 CI/CD 도구를 사용하여 자동으로 테스트 서버에서 빌드 및 배포가 이루어집니다. 테스트 서버에서 정상적으로 배포가 이루어졌는지 확인하고나서 실제 서비스 서버로 배포하는 것이 좋습니다.
따라서, 테스트 서버에서 이상이 없는지 확인 후, Jenkins를 사용하여 실제 서비스 서버 파이프라인을 실행해야 합니다. 이 과정은 자동화가 되어 있으므로, 클릭 한 번으로 자동 배포가 이루어질 수 있어 효율적이며 안전합니다.
즉, 작성자님이 구축하고자 하는 구조가 맞습니다. 테스트 서버와 실제 서비스 서버를 분리하여 사용하고, Jenkins와 같은 CI/CD 도구를 사용하여 자동화된 배포를 수행합니다.
더 자세한 내용은 해당 도구의 문서를 참고해 보시는 것을 추천드립니다.
도움이 되셨길 바랍니다. 감사합니다.