diff --git a/_posts/2023-12-08-GithubActions.md b/_posts/2023-12-08-GithubActions.md new file mode 100644 index 0000000..d6b9f1a --- /dev/null +++ b/_posts/2023-12-08-GithubActions.md @@ -0,0 +1,130 @@ + +--- +layout: post +title: `Github Actions` +author: `이종찬` +categories: `기술세미나` +banner: + image: `` + background: "#000" + height: "100vh" + min_height: "38vh" + heading_style: "font-size: 4.25em; font-weight: bold; text-decoration: underline" + tags: [`GithubActions`] +--- + +목차 +- 목표 +- CI / CD란? +- GithubActions란? + - workflow? + - 사용해야하는 이유? + - 장점 + - 단점 +- 정리 + +## 목표 + +CI / CD, Github Actions이 무엇이고, 어떻게 사용할 수 있는지, 그리고 어떤 장단점이 있는지를 알고 사용하는 것을 목표로 글을 작성합니다. + +## 1. CI / CD란? + +CI/CD는 Continuous Integration과 Continuous Delivery 또는 Continuous Deployment의 약자로, 소프트웨어 개발에서 흔히 사용되는 방법론입니다. + +### 1-1. Continuous Integration + + + +CI는 지속적인 통합이라는 뜻으로, 개발자들이 코드를 자주 병합하고, 빌드하고, 테스트하는 과정을 말합니다. CI를 통해 코드의 품질을 높이고, 버그를 줄이고, 협업을 쉽게 할 수 있습니다. + +### 1-2. Continuous Deployment + +CD는 지속적인 배포 또는 지속적인 전달이라는 뜻으로, CI의 결과물을 자동으로 배포하거나, 배포 준비 상태로 만드는 과정을 말합니다. CD를 통해 배포의 속도와 안정성을 높이고, 고객의 피드백을 빠르게 반영할 수 있습니다. + + + +### 1-3. 장점 + +CI / CD 환경이 필요한 이유는 반복 작업의 자동화 및 피드백 루프 단축 등을 통해 소프트웨어 릴리스 프로세스의 속도를 개선하는 것 입니다. + + + +짧은주기의 개발단위를 반복하며, 많은 협력과 피드백을 필요로 하는 애자일의 원칙을 실현하는 데 핵심적인 역할을 합니다. + + +## 2. Github Action + +Github Actions은 Github에서 제공하는 CI/CD 도구입니다. + +Github 저장소에서 발생하는 다양한 이벤트에 따라 원하는 작업을 자동화할 수 있으며 workflow라는 단위로 구성되어있습니다. + + + +### 2-1. Workflow + +Workflow는 Github Actions에서 자동화할 수 있는 작업의 흐름을 의미합니다. ./github/workflows 폴더에 저장되며 다음과 같은 요소로 구성됩니다. + +- name: Workflow의 이름을 지정합니다. (선택 사항) +- on: Workflow를 트리거할 이벤트를 지정합니다. (필수 사항) +- jobs: Workflow에서 실행할 Job들을 지정합니다. (필수 사항) +- env: Workflow 전체에서 사용할 환경 변수를 지정합니다. (선택 사항) + +```yml +# Workflow 이름 +name: Java CI with Gradle + +# workflow trigger +on: + push: + branches: [ "develop" ] + +# permission +permissions: + contents: read + +# Job +jobs: + build: + + # Job 실행 환경 + runs-on: ubuntu-latest + + # Job Step + steps: + # Step Action + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + + # Step Input + with: + java-version: '17' + distribution: 'temurin' + - name: Run chmod to make gradlew executable + # Step 커맨드 + run: chmod +x ./gradlew + + - name: Build with Test + run: ./gradlew clean build test + +``` + +### 2-2. 장점 + +- Github Actions를 사용하면 다음과 같은 이유로 CI/CD를 쉽고 편리하게 구현할 수 있습니다. +- Workflow를 YAML 파일로 간단하게 정의하고, 코드와 함께 버전 관리할 수 있습니다. +- Github 마켓플레이스에서 수많은 Action을 찾아서 사용할 수 있으며, 자신이 만든 Action을 공유하거나 재사용할 수 있습니다. +- Workflow를 트리거할 수 있는 이벤트의 범위가 넓습니다. + +### 2-3. 단점 + +- Workflow의 실행 시간과 리소스에 제한이 있습니다. +- Workflow의 실행 환경에 따라서, 도커 컨테이너로 작성한 Action을 사용할 수 없는 경우가 있습니다. +- Workflow의 실행 결과와 로그를 Github 외부에서 확인하거나, 공유하기 어려울 수 있습니다. +- Workflow의 테스트와 디버깅을 위한 툴이 부족할 수 있습니다. + +## 정리 + +- CI / CD는 지속적인 통합과 지속적인 배포를 의미하며, 소프트웨어 출시 및 운영에 필요한 반복적인 작업을 빠르게 안정적으로 가져가기 위해 필요 +- Github Action은 CI / CD 환경 구축에 대한 리소스를 최소화 하며 사용할 수 있으며 트리거 할 수 있는 이벤트 범위가 넓기 때문에 사용 +- Github Actions의 단점은 workflow에 대한 테스트 및 디버깅을 할 수 있는 수단이 부족하며 외부에서 로그 확인이 힘듬 diff --git a/_posts/2024-01-17-docker-replication.md b/_posts/2024-01-17-docker-replication.md new file mode 100644 index 0000000..5034096 --- /dev/null +++ b/_posts/2024-01-17-docker-replication.md @@ -0,0 +1,169 @@ +--- +layout: post +title: 배포있게 배포하기 -DB편- +author: 손민우 +categories: 기술세미나 +banner: + image: https://github.com/Kernel360/blog-image/blob/main/2024/0117/1.png?raw=true + background: "#000" + height: "100vh" + min_height: "38vh" + heading_style: "font-size: 4.25em; font-weight: bold; text-decoration: underline" + tags: [Docker, AWS, DB] +--- + +다시 돌아온 Docker 세미나 시간입니다. 어쩌다보니 오픈세미나에 이어서 이번 주제도 Docker와 관련한 주제로 선택을 하게 되었는데요. (정말 파도 파도 공부해야 하는 부분이 계속 나오더라구요.) + +이전 오픈 세미나에서는 Docker의 기본적인 내용을 설명을 했다면 오늘 설명드릴 내용은 DB replication을 Docker를 통해서 적용해 보고 이를 쉽게 적용할 수 있도록 나온 서비스인 AWS RDS를 + +통해서 이해하는 시간을 가져보려고 합니다. 그럼 시작해보겠습니다. + +## 1. Docker-Compose는 무엇인가? + +