Redis는 매우 빠른 데이터 저장소다. 주로 캐시나 세션 데이터를 저장하기 위해 사용된다. 데이터를 메모리에 저장하기 때문에 읽고 쓰는 속도가 빠르다.
로컬에서 Redis를 설치할 수 있고, 클라우드에서 Redis를 사용할 수도 있다.
sudo apt-get install redis-server
brew install redis
Redis 사용 예시
Redis 서버를 실행한다
redis-server
Redis 클라이언트에 접속하여 데이터를 저장하거나 읽어올 수 있다
# 데이터 저장
SET user:1000 "Alice"
# 데이터 조회
GET user:1000 # 결과: "Alice"
AWS(Amazon Web Services)는 클라우드 서비스로, 서버를 대여하거나 여러 가지 서비스를 제공받을 수 있다. 서버를 직접 운영하지 않고 AWS의 서버를 빌려 사용하면 된다.
EC2 인스턴스 생성 AWS 콘솔에서 EC2 서비스를 선택하고, 원하는 OS를 선택해 인스턴스를 시작한다.
생성된 인스턴스의 퍼블릭 IP를 이용해 서버에 SSH로 접속할 수 있다.
ssh -i your-key.pem ubuntu@your-ec2-public-ip
앱 배포 서버에 파일을 전송하고 실행하면 된다.
# 파일 전송
scp -i your-key.pem your-app.jar ubuntu@your-ec2-public-ip:/home/ubuntu/
# 서버에서 실행
java -jar your-app.jar
S3는 파일을 저장하는 서비스다. 이미지나 파일을 업로드하거나 다운로드할 수 있다. AWS 콘솔에서 S3 버킷을 생성하고, 파일을 저장하거나 다운로드하는 작업을 Java 코드로도 처리할 수 있다.
GitHub Actions는 코드가 변경될 때마다 자동으로 빌드, 테스트, 배포 등의 작업을 처리해주는 자동화 도구다.
.github/workflows/
폴더 안에 .yml
파일을 추가해 워크플로우를 설정할 수 있다.
간단한 빌드 및 배포 설정 예시
name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: '11'
- name: Build with Gradle
run: ./gradlew build
이 설정은 main 브랜치에 코드가 푸시될 때 자동으로 빌드를 실행하게 된다. GitHub Actions는 코드의 품질을 높이고, 배포 과정을 간편하게 해준다.
Docker는 프로그램을 어디서든 똑같이 실행할 수 있도록 필요한 모든 환경을 컨테이너 안에 담는 도구다. 이를 통해 개발 환경과 배포 환경의 차이로 발생하는 문제를 해결할 수 있다.
Dockerfile 작성 예시
Dockerfile을 작성해 앱이 어떻게 실행되는지 정의할 수 있다.
Dockerfile 예시
# 베이스 이미지 설정
FROM openjdk:11
# Jar 파일 복사
COPY ./your-app.jar /usr/app/your-app.jar
# 앱 실행
CMD ["java", "-jar", "/usr/app/your-app.jar"]
Docker 이미지 빌드
docker build -t your-app-name .
Docker 컨테이너 실행
docker run -p 8080:8080 your-app-name
Docker를 사용하면 어디서나 같은 환경에서 앱을 실행할 수 있고, 배포 및 운영의 효율성을 높일 수 있다.
Redis, AWS, GitHub Actions, Docker는 각각의 역할을 통해 개발과 배포 과정을 더 간편하게 만들어준다. Redis는 데이터를 빠르게 처리하고, AWS는 클라우드 서버와 다양한 서비스를 제공하며, GitHub Actions는 자동화된 작업을 가능하게 하고, Docker는 일관된 환경에서 앱을 실행할 수 있도록 도와준다.