목표: 서버리스 애플리케이션을 개발하고, DevOps 파이프라인을 구성하여 AWS 아키텍처링 능력과 Node.js 활용 능력을 증명합니다.
-
사용자 관리
- 사용자 등록 및 인증 (Cognito 사용)
- 사용자 프로필 관리
-
업무(Task) 관리
- 업무 생성, 조회, 업데이트, 삭제 (CRUD)
- 업무 상태 변경 (To-Do, In Progress, Done)
-
알림 시스템
- 업무 상태 변경 시 알림 발송 (SNS 사용)
-
파일 업로드
- 업무와 관련된 파일 업로드 (S3 사용)
-
데이터 분석
- 업무 데이터 분석 및 보고서 생성 (Athena 사용)
-
메시징 큐
- 비동기 작업 처리 (SQS 사용)
-
API Gateway & Lambda
- API Gateway를 통해 HTTP 요청을 처리하고, Lambda 함수에서 비즈니스 로직을 실행합니다.
-
사용자 인증 (Cognito)
- AWS Cognito를 사용하여 사용자 등록 및 인증을 처리합니다.
-
데이터 저장 (DynamoDB)
- 사용자 정보와 업무 데이터를 DynamoDB에 저장합니다.
-
파일 저장 (S3)
- 사용자가 업로드하는 파일을 S3 버킷에 저장합니다.
-
알림 시스템 (SNS)
- 업무 상태가 변경될 때 SNS를 통해 알림을 발송합니다.
-
비동기 작업 처리 (SQS)
- 긴 작업이나 비동기 작업을 SQS를 사용하여 처리합니다.
-
데이터 분석 (Athena)
- 업무 데이터를 정기적으로 S3에 저장하고, Athena를 사용하여 쿼리 및 분석합니다.
-
DevOps 파이프라인 (CodePipeline, CodeBuild, CodeDeploy)
- CI/CD 파이프라인을 구축하여 코드 배포를 자동화합니다.
-
API Gateway & Lambda
- API Gateway로 HTTP 요청을 수신하고, Lambda 함수로 비즈니스 로직을 실행합니다.
- 각 Lambda 함수는 사용자 관리, 업무 관리, 파일 업로드 등의 기능을 담당합니다.
-
사용자 인증 (Cognito)
- 사용자 등록 및 인증을 위한 Cognito User Pool을 설정합니다.
- Lambda 함수에서 JWT 토큰을 검증하여 사용자 인증을 처리합니다.
-
데이터 저장 (DynamoDB)
- 사용자 정보와 업무 데이터를 저장할 DynamoDB 테이블을 설정합니다.
- Lambda 함수에서 DynamoDB를 사용하여 CRUD 작업을 처리합니다.
-
파일 저장 (S3)
- 사용자가 업로드하는 파일을 저장할 S3 버킷을 설정합니다.
- Lambda 함수에서 S3 SDK를 사용하여 파일 업로드 및 다운로드를 처리합니다.
-
알림 시스템 (SNS)
- 업무 상태가 변경될 때 SNS 토픽에 메시지를 발행하여 알림을 보냅니다.
- 이메일, SMS 등의 방식으로 알림을 수신하도록 설정할 수 있습니다.
-
비동기 작업 처리 (SQS)
- 긴 작업이나 비동기 작업을 처리하기 위해 SQS 큐를 설정합니다.
- Lambda 함수에서 SQS 메시지를 읽어와서 작업을 처리합니다.
-
데이터 분석 (Athena)
- 정기적으로 업무 데이터를 S3에 저장합니다.
- Athena를 사용하여 S3에 저장된 데이터를 쿼리하고, 분석 결과를 저장합니다.
-
DevOps 파이프라인 (CodePipeline, CodeBuild, CodeDeploy)
- CodePipeline을 설정하여 코드를 자동으로 빌드하고 배포합니다.
- CodeBuild를 사용하여 Lambda 함수와 기타 리소스를 빌드합니다.
- CodeDeploy를 사용하여 Lambda 함수 및 기타 AWS 리소스를 배포합니다.
-
프로젝트 초기 설정
- AWS 계정 설정 및 IAM 역할 구성
- Node.js 프로젝트 초기화 및 필요한 패키지 설치
-
Lambda 함수 작성
- 사용자 관리, 업무 관리, 파일 업로드 등을 위한 Lambda 함수 작성
- API Gateway와 Lambda 함수 연동
-
DynamoDB 테이블 생성
- 사용자 정보 및 업무 데이터를 저장할 DynamoDB 테이블 생성
-
Cognito 설정
- Cognito User Pool 생성 및 사용자 등록/로그인 기능 구현
-
S3 버킷 생성
- 파일 업로드를 위한 S3 버킷 생성
-
SNS 설정
- SNS 토픽 생성 및 알림 발송 기능 구현
-
SQS 설정
- SQS 큐 생성 및 비동기 작업 처리 기능 구현
-
Athena 설정
- S3에 저장된 데이터를 쿼리하기 위한 Athena 설정
-
DevOps 파이프라인 구축
- CodePipeline, CodeBuild, CodeDeploy 설정 및 CI/CD 파이프라인 구축
-
테스트 및 배포
- 전체 시스템 테스트
- 프로젝트 배포 및 문서화
이 프로젝트를 통해 서버리스 아키텍처와 AWS의 다양한 서비스를 활용하는 능력을 증명할 수 있습니다. 또한, DevOps 파이프라인을 통해 코드의 빌드 및 배포 자동화를 구현함으로써 효율적인 개발 및 운영 환경을 보여줄 수 있습니다.
이 프로젝트는 오픈 소스로, 누구나 기여할 수 있습니다. 기여하고 싶다면, 이 저장소를 포크하고 풀 리퀘스트를 생성해 주세요.
이 프로젝트는 MIT 라이선스 하에 제공됩니다. 자세한 내용은 LICENSE
파일을 참조하세요.