코딩공작소
토이프로젝트 기초 기술 스택 초안 본문
기술 스택 및 아키텍처 설계
1. 클라우드 환경
AWS Free Tier
- EC2 (Elastic Compute Cloud): 애플리케이션 서버로 사용. 무료 티어 범위 내에서 Linux 기반 인스턴스를 실행하여 백엔드 애플리케이션을 배포.
- S3 (Simple Storage Service): 정적 파일(이미지, 문서 등) 저장소로 사용.
- RDS (Relational Database Service): 데이터베이스 서비스로 PostgreSQL 사용. JPA와 연동하여 데이터 저장 및 조회 기능을 구현.
- CloudWatch: 애플리케이션 및 리소스 모니터링을 위한 로그 및 지표 수집.
- IAM (Identity and Access Management): 안전한 액세스 관리와 리소스 보호.
2. 애플리케이션 프레임워크
Spring Boot
- 의존성 관리: Spring Boot의 다양한 스타터 모듈을 사용하여 빠르고 간편한 의존성 주입 설정.
- Rest API: 사용자와의 통신을 위한 RESTful API 설계 및 구현.
- Security: Spring Security를 사용하여 인증 및 인가 처리.
- H2 Database: 개발 단계에서는 H2 인메모리 데이터베이스를 사용하여 빠른 테스트 환경을 제공.
3. 데이터 관리
Spring Data JPA (Hibernate)
- ORM(Object-Relational Mapping): JPA를 사용하여 데이터베이스와 객체 간 매핑을 자동화. 간단한 CRUD 작업을 효율적으로 처리.
- JPQL/Native Query: 복잡한 쿼리를 처리하기 위해 JPQL과 네이티브 쿼리를 혼합하여 사용.
4. 마이크로서비스 및 클라우드 구성
Spring Cloud
- Service Discovery (Eureka): 마이크로서비스 간의 동적 서비스 탐색 및 로드 밸런싱을 위한 Eureka 서버/클라이언트 구성.
- API Gateway (Zuul or Spring Cloud Gateway): 각 서비스로의 요청을 관리하고 보안을 강화하기 위한 API 게이트웨이 설정.
- Circuit Breaker (Hystrix): 서비스 간의 장애가 다른 서비스로 전파되지 않도록 보호하는 회로 차단기 패턴을 적용.
- Config Server: 분산 환경에서 마이크로서비스의 설정 파일을 중앙 집중화하여 관리.
5. 데이터베이스
PostgreSQL (AWS RDS)
- 데이터베이스 설계: 엔티티 관계 다이어그램(ERD) 기반의 데이터베이스 모델링. 사용자, 상품, 주문 등의 주요 도메인 엔티티 설계.
- 성능 최적화: AWS RDS의 성능 모니터링을 통해 쿼리 최적화 및 인덱싱 작업을 진행하여 JPA 성능 튜닝.
6. DevOps 및 배포
CI/CD (GitHub Actions & AWS Elastic Beanstalk)
- 지속적 통합/배포: GitHub Actions를 이용해 코드 변경 시 자동 빌드 및 테스트 실행. 성공 시 AWS Elastic Beanstalk에 자동 배포.
- Docker: 컨테이너 기반의 애플리케이션 패키징을 통해 일관된 환경에서의 실행 보장.
7. 모니터링 및 로깅
AWS CloudWatch & ELK Stack
- 로그 관리: CloudWatch와 ELK 스택을 사용해 애플리케이션 로그 모니터링 및 실시간 장애 대응.
- Alerting: 특정 조건이 발생하면 이메일 알림을 받도록 설정하여 즉각적인 문제 해결 가능.
'어플리케이션개발 > 토이프로젝트(취미)' 카테고리의 다른 글
ToDo 관리 (연습용) -- (1) (1) | 2024.10.09 |
---|---|
github 연동 및 AWS 서비스 올리기 (0) | 2024.10.06 |
spring io 프로젝트 생성 (1) | 2024.10.06 |
AWS 를 통한 프리티어 컨테이너 생성 (2) | 2024.10.01 |
토이플젝 주제 초안 (0) | 2024.09.24 |