Programming(219)
-
Github Actions - Output
OutputGithub Actions에서는 Job간에 직접적인 변수의 공유가 되지 않는다.그렇기에 다른 Job에서 값을 갖고 오기위해서 Output이라는 것을 사용하는데 Output은 앞 단계(Step, Job 등)가 계산한 값을 뒤 단계가 쓰도록 전달하는 공식적인 통로이다.CI파이프 라인은 보통 단계가 나뉘어져 있고 앞에서 만든 결과(버전, 경로, 계산값, 지정한 옵션 등)를 다음 단계가 알아야하는 경우가 많고 그걸 해결하기 위해서 output이라는 기술을 사용한다. 여기서 output은 세가지의 방향성을 볼 수 있는데 이는 각각 step → 동일 job의 stepjob → 다른 job재사용 단위의 output (Composite Action / Reusable Workflow) 과 같이 사용 된다. ..
2025.10.14 -
Github Actions - Artifact
Artifact아티팩트는 워크 플로우의 Job의 Step에서 만든 결과물을 파일로 저장하고 같은 워크플로우의 다른 Job에 넘겨 사용하거나 실행이 끝난 뒤 사람이 다운로드 해서 확인하거나 다른 워크플로우의 잡에서 받아서 후속 작업을 하도록 하는 저장물이다.이는 Job끼리는 병렬로 실행되며 각자 다른 러너에 의해서 실행되기에 파일이 연속적으로 유지되지 않기 때문에 사용되는 기술이다.업로드 : upload-artifact아티팩트는 업로드라는 것을 통해서 원하는파일을 저장하여 하나의 아티팩트로 만들어준다.이때 이 업로드는 Job의 Step에서 이뤄지며 uses에 actions/upload-artifact@버전 을 사용해서 아티팩트를 만든다.uses: actions/upload-artifact@v4 이 업로드 ..
2025.10.13 -
Github Actions(CI/CD 구축) - .gitignore에 추가된 파일의 주입
프로젝트를 하다보면 Github에 올리지 않으면서 관리되어야 할만한 정보들이 담긴 파일들이 존재한다.그런 파일들은 .gitignore를 통해서 Github에 올라가지 않도록 설정이 가능한데 이 파일이 아예 프로그램에서 사용되지 않는게 아니기 때문에 빌드할때 사용되기 위해서 Github Actions에서 직접 주입하는 형태로 구현한다. 먼저 application.properties를 보자.위와 같이 application.properties같은 경우는 DB에 대한 정보들을 담고 있고 이걸 통해서 우리의 프로젝트의 DB에 모두 접근이 가능하다.이런 보안적인 문제들이 존재하기 때문에 이를 우리는 workflow에서 주입해서 사용하도록 할 것이다. 우선 .gitignore에 application.propertie..
2025.10.11 -
Github Actions(CI/CD 구축) - Spring Boot로 만든 개인 프로젝트의 CI/CD
Spring Boot로 만든 개인 프로젝트에서의 CI/CD의 구축이번에 해보고자 하는 CI/CD의 흐름은 먼저 로컬에서 코드를 작성한 후에 그 내용을 Github에 Push하게 된다.그러면 Github Actions가 이벤트를 확인해서 workflow를 실행해서 러너의 내부에서 AWS의 EC2로 원격 접속을 한 후에 Git을 통해서 Pull을 해서 해당 소스를 AWS의 EC2로 통합한다. 이러면 전체 프로그램 자체를 다 교체하는 방식이 아니라 지금 Push한 내용에 대해서만 교체하기 때문에 속도와 비용 면에서 이점을 가지게 된다. 그러나 빌드작업 자체는 EC2자체에서 직접 진행하는데 빌드가 컴퓨터의 성능을 많이 먹는 작업이기 때문에 운영하고 있는 서버의 성능에 영향을 줄 수 있다.또한 Github 계정의..
2025.10.03 -
CI/CD
CI/CD란 CI/CD란 Continuous Integration/ Continuous Deployment(Continuous Delivery)로 한국어로 하자면 지속적인 통합/ 지속적인 배포로 소스의 변경을 자동으로 빌드 및 테스트(지속적인 통합)를 하고, 검증된 결과를 가지고 자동으로 배포(지속적인 배포)를 하는 프로세스 혹은 도구 및 체계이다. CI/CD가 발생한 이유CI/CD 없이 수동 빌드 및 배포를 하게 되면 그 때 마다 개발하는 PC와 운영하는 서버 사이의 환경적인 차이로 인해 혹은 사람의 실수로 인해, 테스트를 하지 않아 문제가 생기는 일들이 많고 그럴 때마다 이 소스를 롤백하는게 쉽지 않다. 이를 해결 하기 위해서 커밋 마다 자동으로 빌드 및 테스트를 하고 배포까지 자동화해서 오류를 빠..
2025.10.03 -
CI/CD - EC2에 서버 배포
Express Server EC2에 배포하기먼저 EC2 인스턴스로 접속을 하고 sudo su로 root 계정으로 변경해주자.그리고 아래 명령어를 통해서 Node.js를 설치하도록 하자$ sudo su$ apt-get update && /apt-get install -y ca-certificates curl gnupg && /mkdir -p /etc/apt/keyrings && /curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && /NODE_MAJOR=20 && /echo "deb [signed-by=/etc/apt/keyring..
2025.10.03