인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

RookieLsou님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 CI/CD 입문·실전

Deploy 트리거 관련 질문드립니다.

해결된 질문

작성

·

29

0

강의를 들으면서 프로젝트로 실습해보다가 궁금한 점이 생겨 질문드립니다!

강의에서는 main 브랜치에 push가 일어나는 것이 트리거가 되는 경우를 설명해주셨습니다.

만약에 main 브랜치 하위에 기능별로 브랜치를 나누어서

feature/login, feature/post 식으로 브랜치가 존재하며

프론트엔드 React 코드, 백엔드 Spring 코드의 별도 구분 없이 각각의 브랜치에 같이 존재한다면

백엔드 코드만 ec2에 deploy 되도록 설정하는 방법이 있을까요?

답변 2

1

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 RookieLsou님! 아주 좋은 질문 해주셨네요:)

아래의 방법을 활용해 구현할 수 있습니다!

image.png

위 설명 보시면서 이해 안 되시거나 또 다른 궁금한 점 생기시면 질문 남겨주세요~~

RookieLsou님의 프로필 이미지
RookieLsou
질문자

같은 repo 안에서 frontend, backend 디렉터리를 나눠서 세팅하고 관리하라는 뜻으로 이해하면 될까요?

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

넵넵! 만약 같은 repo를 쓰고 계시다면 frontend, backend 디렉터리를 나눠서 셋팅하신 다음에 위에서 답변드린 방법을 사용하시면 됩니다~!!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. RookieLsou님.

강의에서 설명된 CI/CD 파이프라인 구조에서 deploy 트리거 설정에 대해 궁금해하신 부분에 대해 설명드리겠습니다.

특정 코드만 Deploy하는 방법

CI/CD 파이프라인에서 특정 파일 또는 디렉토리의 변경 사항만을 대상으로 배포를 수행하려면 몇 가지 전략을 활용할 수 있습니다:

  1. 경로 기반 필터 사용:

    • CI/CD 도구(예: GitHub Actions, Jenkins 등)에서는 특정 경로의 변경을 감지하여 작업을 수행할 수 있도록 설정할 수 있습니다. 예를 들어, GitHub Actions의 경우 paths 옵션을 이용하여 특정 디렉토리에 있는 파일의 변경이 있을 때만 워크플로우를 트리거할 수 있습니다.
    • 예시:
      ”`yaml
      on:
      push:
      branches:
         - main
      
      paths:
      - ‘backend/**’
      ”`
  2. Mono Repo 전략:

    • 프론트엔드와 백엔드를 하나의 리포지토리 내에서 관리하되, 각기 다른 디렉토리로 나누어 배치합니다. 그런 다음 배포 파이프라인에서 각 디렉토리의 변화만 감지하여 배포를 수행하도록 설정할 수 있습니다.
  3. 서브모듈 또는 서브트리 사용:

    • 프로젝트 구조를 서브모듈 또는 서브트리로 분리하여 각각 독립적인 배포 파이프라인을 가질 수 있습니다. 이는 프로젝트를 깨끗하게 분리하고, 각각의 서비스가 독립적으로 배포될 수 있도록 합니다.
  4. 스크립트 수정:

    • 파이프라인 스크립트 내에서 변경된 파일을 감지하고, 백엔드 관련 변경사항이 있을 때만 배포를 수행하도록 조건을 추가할 수 있습니다.

관련 질문과 답변이 유사한 내용이 담긴 게시물이 있다면, 아래 링크를 참고하시기 바랍니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.