기술 | 선택지 | 선택 근거 |
---|---|---|
Data Serialize Format | Protocol Buffer - protobufjs, | |
JSON, | ||
XML, | 타입 안정성 | |
Protobuf는 정적 타입 기반이기 때문에 데이터 타입에 대한 오류를 사전에 방지할 수 있다. |
효율성 Protobuf는 이진 형식으로 JSON, XML보다 데이터 크기가 훨씬 작아 데이터 전송 비용이 줄일 수 있고 처리 속도가 매우 빠르다.
확장성 기존 데이터 구조에 새로운 구조가 추가되어도 추가적인 파싱 로직 등이 필요하지 않기 때문에 빠르고 개발하면서 호환성도 유지할 수 있다. | | Transport Protocol | TCP/IP, UDP/IP | 데이터 신뢰성 TCP 방식은 패킷 손실을 감지하고 자동으로 재전송 데이터가 손실없이 전송되는 것과 전송한 데이터의 순서를 보장하기 때문에 매우 정확한 데이터의 전달이 가능하다.
연결 기반 통신 TCP 방식은 클라이언트와 서버 간 연결 상태를 유지하기 때문에, 클라이언트가 언제 연결되었고 언제 연결이 끊겼는지 알 수 있으므로 이와 관련된 로직 구현이 쉽다. | | IaaS | AWS EC2, GCP CE, Azure VMs | 확장성 트래픽 변화에 따라 서버를 자동으로 추가하거나 축소가 가능하다.(Auto-Scaling)
넓은 생태계 EC2는 가장 많이 사용되는 클라우드 컴퓨트 서비스임과 동시에 AWS의 다른 서비스와 쉽게 통합해서 사용할 수 있다. RDS(데이터베이스), IAM(보안 관리), S3(저장소), CloudFront(CDN) 등 | | Container Tools | Docker, Helm, Podman | 간단하고 직관적인 컨테이너 관리 Docker는 가장 널리 사용되는 컨테이너 플랫폼으로, 애플리케이션의 빌드, 배포, 실행 등을 지원한다. 현재 프로젝트에 적용하기 위한 러닝 커브가 가장 적합하다고 판단했다.
Docker-Compose 사용 가능 Docker-Compose를 사용해서 여러 컨테이너를 코드로 정의하여 실행 가능하며 Database, 환경 변수, 네트워크 등을 동시에 관리할 수 있다. |