작성
·
65
·
수정됨
0
현업에서는 그러면 누가 PUSH를 해서 CI/CD로 적용을 시키나요? 아무나 다 깃 푸쉬로 cicd를 적용하면 깃헙에 merge나 충돌이 날거같은데 그러면 막상 깃헙에 올라온 코드랑 ec2 올라가있는 코드가 다를거같은데 이 부분이 잘 안그려지네요... 질문이 두서가 없어서 죄송합니다 ㅠㅠ 어떤식으로 현업에선 흘러가는지 궁금합니다,.
답변 2
0
안녕하세요 Teo님! 질문 잘 해주셨습니다~~
main - develop - feature 브랜치를 활용해서 버전 관리를 한다고 가정하겠습니다!
크게 2가지 방법이 존재합니다.
첫 번째로, 각 개발자들이 feature 브랜치에서 특정 기능을 개발 완료한 뒤에
develop 브랜치에 직접 merge하기 위해 충돌을 해결하고 나서
Push를 하는 과정을 거치는 방식이 있습니다.
두 번째로, 각 개발자들이 feature 브랜치에서 특정 기능을 개발 완료한 뒤에
develop 브랜치에 직접 merge하기 위해 충돌을 해결하고 나서
Pull Request를 하는 과정을 거치는 방식이 있습니다.
2가지 방식 전부 다 '충돌 해결' 이후에 Push 또는 Pull Request 작업을 합니다.
강의에서 배우는 CI/CD 과정은 Push 또는 Pull Request 과정 이후에 작동하는 방식이므로
충돌 해결 과정은 사람이 직접 수동으로 진행할 수 밖에 없습니다:)
위 설명 중에 이해 안 되시는 점 있으시면 편하게 댓글 남겨주세요~~
안녕하세요 재현님! 개념적으로 확실히 잡아가시는 모습이 아주 좋네요 ㅎㅎ
“push 이벤트는 해당 브랜치에 커밋이 새로 생성될 때 발생한다.
따라서 충돌을 모두 해결한 뒤 생성되는 머지 커밋에 대해 CI/CD가 실행된다.”
→ 네 맞습니다! 정확히 이해하셨어요 !!
예를 들어 develop 브랜치에 push 이벤트를 기준으로
CI/CD가 트리거되게 설정되어 있다면,
머지 커밋이 develop에 올라가는 시점에 CI/CD가 실행되요 ~
즉, 충돌이 해결된 안정적인 커밋 기준으로만 배포되기 때문에,
코드 무결성을 보장할 수 있어요 !
"적어주신 내용을 보면 PR을 올리기 전에 dev와 충돌을 해결한 머지 커밋을 만들어야 한다고 이해됩니다. 후자의 방식이 현업에서 더 많이 쓰이는 방식인가요?"
-> 우선 "PR을 올리기 전에 dev와 충돌을 해결한 머지 커밋을 만들어야 한다"라는 의미는 아니에요 ~
두 경우 모두 "develop 브랜치에 merge하기 전에 충돌을 해결한다”는 의미일 뿐이에요 !
즉, PR을 생성하기 전이 아니라, PR을 머지(수락)하기 전"에 충돌을 해결하면 되는거죠 :)
현업에서는 Teo님이 지금까지 해오신 방법과 같이 PR을 먼저 올리 뒤,
충돌이 생기면 직접 해결하는 방식이 일반적으로 많이 쓰이고 있어요~
깃허브에서도 공식적으로 권장하는 플로우에요 :)
추가로 궁금하신점 있으시면 편하게 질문주세요~~😄😄
0
안녕하세요, 인프런 AI 인턴입니다. Teo님.
현업에서의 CI/CD 파이프라인 구현에 대한 질문을 주셨군요. 궁금해 하시는 사용 사례를 살펴보겠습니다.
브랜치 전략:
풀 리퀘스트(PR)와 코드 리뷰:
자동화 및 충돌 관리:
실제 배포:
아래 링크를 통해 CI/CD 및 브랜치 전략에 대해 더 깊이 있는 정보를 얻으실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변을 보다 궁금한 점 있어서 댓글 남깁니다.
댓글 내용 이해 확인:
push 이벤트는 해당 브랜치에 커밋이 새로 생성될 때 발생한다. 따라서 충돌을 모두 해결한 뒤 생성되는 머지 커밋에 대해 CI/CD가 실행되는 것이므로, 항상 실행 가능한 코드만 빌드/배포된다. 이렇게 이해하면 될까요?
Pull Request와 충돌 해결 순서:
저는 지금까지는 dev에 PR할 때, feat 브랜치에서 PR을 생성하고 충돌이 난 경우 직접 해결하는 방식을 사용했습니다. 하지만 적어주신 내용을 보면 PR을 올리기 전에 dev와 충돌을 해결한 머지 커밋을 만들어야 한다고 이해됩니다. 후자의 방식이 현업에서 더 많이 쓰이는 방식인가요?
감사합니다.