개인 프로젝트에서 많이 쓰는 CI/CD 구축 방법 (Github Actions) ✅ 전체적인 흐름 ✅ 장점git pull을 활용해서 변경된 부분의 프로젝트 코드에 대해서만 업데이트 하기 때문에 CI/CD 속도가 빠르다.대부분의 CI/CD 방식들은 전체 프로젝트를 통째로 갈아끼우는 방식을 사용한다.CI/CD 툴로 Github Actions만 사용하기 때문에 인프라 구조가 복잡하지 않고 간단하다. ✅ 단점빌드 작업을 EC2에서 직접 진행하기 때문에 운영하고 있는 서버의 성능에 영향을 미칠 수 있다. (운영하고 있는 서버에서 빌드를 하면 성능이 안좋아짐)Github 계정 정보가 해당 EC2에 저장되기 때문에 개인 프로젝트 또는 믿을만한 사람들과 같이 진행하는 토이 프로젝트에서만 사용해야 한다. 1. Spr..
✅ 처음으로 Github Actions 작동시켜보기새로운 프로젝트 폴더 만들기.github/workflows/deploy.yml 만들기# Workflow의 이름# Workflow : 하나의 yml 파일을 하나의 Workflow라고 부른다. name: Github Actions 실행시켜보기# Event : 실행되는 시점을 설정# main이라는 브랜치에 push 될 때 아래 Workflow를 실행on: push: branches: - main# 하나의 Workflow는 1개 이상의 Job으로 구성된다. # 여러 Job은 기본적으로 병렬적으로 수행된다.jobs: # Job을 식별하기 위한 id My-Deploy-Job: # Github Actions를 실행시킬 서버 종류 선택 ..
✅ CI/CD CI/CD란 Continuous Integration, Continuous Deployment라는 의미를 가지고 있다. CI/CD는 테스트(Test), 통합(Merge), 배포(Deploy)의 과정을 자동화하는 걸 의미한다. 왜 필요한가?서비스를 운영하다보면 새로운 기능을 추가하는 일이 많아진다. 새로운 기능에 대한 코드를 작성한 뒤에 Commit을 찍는다. 그런 뒤에 브랜치에 Merge를 하고 배포를 한다. 배포를 할 때 직접 컴퓨터 서버(ex. AWS EC2)에 접속해서 새로운 코드를 다운받아 실행시켜주어야 한다. 특정 기능을 개발 완료해서 Commit을 찍으면 빌드가 되게 셋팅한다. 빌드가 완료되면 작성한 테스트 코드를 실행시킨다.(테스트 코드를 작성하지 않은 서비스에서는 이..
전에 올렸던 게시글에서 인스턴스에 연결하여 우분투 환경에서 진행한다. ✅ 1. Ubuntu 환경에서 JDK 설치하는 법$ sudo apt update && /sudo apt install openjdk-17-jdk -y ✅ 2. 잘 설치됐는 지 확인하기$ java -version ✅ 3. Github으로부터 Spring Boot 프로젝트 clone하기 $ git clone (github 주소)$ cd 생성한 레포지토리 이름 ✅ 4. application.yml 파일 직접 만들기 application.yml와 같은 민감한 정보가 포함된 파일은 Git으로 버전 관리를 하지 않는게 일반적이다. 따라서 application.yml 파일은 별도로 EC2 인스턴스에 올려주어야 한다. 하지만 application..
EC2(Elastic Compute Cloud)란?컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스 EC2를 왜 배울까?서버를 배포하기 위해선 컴퓨터가 필요하고, 서버를 배포해 다른 사용자들이 인터넷을 통해 접근할 수 있게 만들어야 한다.하지만 내 컴퓨터로 배포하게 되면 24시간 동안 컴퓨터를 켜놔야 하며, 인터넷을 통해 내 컴퓨터에 접근할 수 있게 만들다보니 보안적으로 위험할 수도 있다. 실습 Region 설정 EC2를 검색해 들어가자. AWS EC2를 시작하기 위해서는 우선적으로 리전(Region)을 먼저 선택해야 한다. 아시아 태평양(서울) 리전에서 EC2를 생성해놓고, 실수로 미국 동부(버지니아 북부) 리전에 들어가서 생성한 EC2가 없어졌다고 당황하는 경우가 있다..
✅ IP의 개념네트워크 상에서의 특정 컴퓨터를 가리키는 주소 (ex: 13.250.15.132) ✅ Port의 개념한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소이다. (ex: 13.250.15.132:3000) 한 컴퓨터 내에서 여러 프로그램이 실행되고 있을 것이다. 내가 지금 사용하고 있는 노트북만 보더라도 크롬, 카카오톡, 슬랙, VSCode 등 여러가지 프로그램이 동시에 실행되고 있다. 실제 서버를 운영하는 컴퓨터도 동일하다. 하나의 컴퓨터에서 여러가지의 프로그램이 실행된다. 외부에서 IP 주소만 알아서는 실행되고 있는 여러 프로그램 중 어떤 프로그램과 통신을 해야 할 지 알 수가 없다. 그래서 특정 서버와 통신을 할 때는 IP 주소와 서버가 실행되고 있는 포트 번호까지 알고 있어야 한다...
배포(Deployment)란?배포(Deployment)란 다른 사용자들이 인터넷을 통해서 사용할 수 있게 만드는 걸 의미한다. 자신의 컴퓨터에서 개발을 할 때는 localhost라는 주소로 테스트도 하고 개발을 한다. 하지만 이 localhost는 다른 컴퓨터에서는 접근이 불가능한 주소이다. 배포를 하게 되면 IP(ex. 124.16.2.1)나 도메인(ex. www.naver.com)과 같이 고유의 주소를 부여받게 되고, 다른 컴퓨터에서 그 주소로 접속할 수 있게 된다. 이게 바로 배포(Deployment)다.