yarn build
컴파일 된 코드를 실행할 수 있는 상태로 만드는 일
소스 코드 및 기타 리소스를 컴퓨터가 이해할 수 있는 형태로 변환하는 과정을 말합니다.
소스 코드를 실행 가능한 실행 파일, 라이브러리, 웹 애플리케이션 등으로 변환하여 애플리케이션을 구축하고 준비하는 작업이에요!
이렇게 빌드의 과정을 거치면 실행할 수 있는 하나의 완성된 파일을 가지게 됩니다
빌드가 완성된 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치시키는 일
애플리케이션을 실제 환경에 전달하여 실행되도록 하는 과정입니다.
CI/CD 적용 전
1) 코드를 수정/추가 등을 하며 개발을 진행
2) 각자의 코딩 컨벤션에 따라 브랜치에 push 한다.
3) 해당 브랜치 코드에 문제가 없다고 판단되면 main branch에 병합한다.
4) 에러가 발생했다면 1)~3) 과정으로 에러를 고치고, 에러가 발생하지 않았다면 직접 배포를 진행한다.
CI/CD 적용 후
1) CI/CD 적용 전과 동일
2) push된 코드를 CI가 알아서 Build, Test, Lint(포맷팅)을 실행하고 결과를 알려준다.
3) 개발자들은 결과를 보고 에러가 난 부분을 수정한 후 main branch에 병합한다.
4) main branch를 감지하고 있던 CD 과정이 알아서 배포를 수행한다.
아래에서 실습할 Netlify, Vercel과 같은 경우에는 CI/CD가 자동으로 구축되어 있어서 이제 배포 하고 난 뒤에 새롭게 코드가 push 될 경우 알아서 새롭게 빌드하고 배포가 완료됩니다!
다들 들어봤을 AWS와 같은 경우에는 기본적인 인프라 서비스만 사용하는 경우에는 CI/CD가 기본적으로 구축되어 있지 않아요!
AWS는 CI/CD를 구축하기 위한 다양한 서비스를 제공하지만, 이러한 서비스를 조합하여 자신의 프로젝트에 맞는 CI/CD 파이프라인을 구축해야합니다.
ex) AWS CodePipeline, AWS CodeDeploy, AWS CodeCommit, AWS CodeBuild, AWS CodeStar
실습해 볼 Netlify, Vercel 같은 경우에는 정적 웹 사이트 및 싱글 페이지 애플리케이션을 위한 서버리스 배포 플랫폼으로, 정적 파일의 호스팅, 빌드 자동화, CDN 제공 등을 지원합니다.
여기서 정적 웹사이트 및 싱글 페이지를 위한 애플리케이션이라고 설명하고 있지만 서버리스 배포 플랫폼을 통해 API 간의 통신을 가능하게 하여 동적인 기능을 추가할 수 있게 합니다.
이러한 플랫폼은 개발자에게 더 간편한 배포 경험을 제공하고, 전 세계적으로 분산된 CDN을 통해 빠른 속도와 성능을 제공하고 있습니다!
서버 없이(정확히는 서버는 API랑 통신하고) 프론트엔드 스택으로만 구성된 정적 애플리케이션을 배포하는 용도로 최적화된 서비스




⭐ build를 해야지 배포가 가능한 파일로 만들 수 있는데, 이를 구현하기 위한 코드를 어떻게 할 것인지를 작성해줘야한다.
⭐ 배포할 파일을 정하라는 것이다. build를 하면 build 폴더가 생기기 마련인데, 그 폴더의 이름을 알려줘야한다.
CRA에서는 build라는 이름으로 폴더가 생성



if) 배포 실패 오류 뜰 경우

경우에 따라 로컬로 실행할 때 빌드 실패를 유발하지 않는 경고 메시지로 인해 빌드가 실패할 수 있습니다. 이는 일부 라이브러리 및 빌드 도구가 CI(Continuous Integration) 환경에서 실행되고 있음을 감지할 때 경고를 다르게 처리하기 때문입니다.
다른 많은 CI 툴 및 플랫폼과 마찬가지로 Netlify는 빌드 환경 변수 CI=true를 자동화된 환경에서 실행 중임을 나타내는 규칙으로 설정합니다. 대부분의 라이브러리는 CI 변수의 존재를 사용하여 진행률 스피너 애니메이션 또는 사용자 프롬프트 제거와 같은 동작 변경을 트리거합니다. 경우에 따라 라이브러리가 경고 메시지를 오류로 처리하여 빌드에 실패할 수도 있습니다.
일반적으로 경고에 실패하도록 선택한 라이브러리는 사용자가 경고를 유발하는 문제를 해결하려고 할 것으로 가정합니다. 사용 사례에 적합하지 않은 경우 site build 명령의 시작 부분에 CI='를 추가하여 CI 변수를 재정의할 수 있습니다.

`Build command`에 `CI=false` 추가해서 수정
⭐ 도메인? 사이트에 액세스하는 데 사용되는 전체 이름
ex) yoursitename.netlify.app, www.yourcustomdomain.com



if ) 개인 도메인을 설정하고 싶다면?
netlify로 배포하게 되면 기본적으로 .netlify.app 붙은채로 배포됩니다.

이미 소유한 도메인 이름을 가져오거나 새 도메인 이름을 구입할 수 있습니다. 도메인을 구입하면 자동으로 DNS 설정을 구성하고 도메인에 대한 와일드카드 인증서를 프로비저닝합니다.
Git에서 해당 프로젝트에 push를 하게되면 Netlify에도 자동으로 프로젝트가 빌드 및 배포 가능







Git에서 해당 프로젝트에 push를 하게되면 Vercel에도 자동으로 프로젝트가 빌드 및 배포 가능