[SHOOTOCK] 주식 시세 조회 서비스ㅤ

노출 페이지
인덱스
클라우드 네이티브
5 more properties

1. 배경(Problem)

주식 시장이 열리는 오전 9시부터 오후 4시까지,
수많은 사용자가 동시에 접속하면서 트래픽이 몰려 데이터 반영이 지연되는 상황이 자주 발생할 것이라고 생각했습니다.
그때 이런 질문을 던지게 됐습니다.
“왜 주식 정보 하나 보는데 이렇게 번거로워야 하지?”
정보가 넘쳐 나는 시대지만,
신뢰할 수 있고, 빠르고, 한눈에 보여주는 서비스는 쉽게 찾아보기 어렵다고 느꼈습니다.
우리는 이러한 불편함을 해결할 수 있는 방법을 고민하게 되었습니다.
단순히 서비스만 만드는 데 그치지 않고,
 자동화 기술을 도입해 운영 효율성을 향샹시키고
 몰리는 트래픽을 안정적으로 처리하는 인프라 구축
을 목표로 누구나 쉽고 빠르게 주식 정보를 확인할 수 있도록 했습니다.
“고객과 엔지니어 모두에게 효율적인, 주식 시세 조회 서비스”
그 시작이 바로 우리의 SHOOTOCK 입니다.
SHOOTOCK은 다음과 같은 가치를 제공합니다.
 실시간 주식 데이터를 지연 없이, 정확하게 전달합니다.
 종목별 일별 시세 데이터까지 한눈에 확인할 수 있습니다.
 실시간 변동을 반영한 주식 랭킹을 제공합니다.
 누구나 쉽고, 빠르게 원하는 정보를 확인할 수 있도록 안정적인 인프라를 구축했습니다.

2. 서비스 소개(Solution)

"슈탁(SHOOTOCK)" 은 주식 정보 확인의 불편함을 없애기 위해, 빠르고 직관적으로 실시간 주식 데이터 조회를 제공하는 서비스입니다.

서비스 주요 기능

인기 급상승 Top10
키워드 검색 결과
종목별 실시간 체결 정보
종목별 일별 시세 데이터

인기 급상승 Top10

주식 시장에서 거래량과 등락률이 급등하고 있는 인기 종목 상위 10개를 실시간으로 보여줍니다.
사용자는 별도의 검색 없이도 현재 시장에서 주목받고 있는 종목을 한눈에 확인할 수 있습니다.

키워드 검색 결과

종목명을 입력하면 해당 키워드가 포함된 종목들의 정보를 실시간으로 검색하여 제공합니다.
특히 등락률, 거래량, 현재가를 함께 제공하여, 사용자가 관심 종목의 흐름을 빠르게 파악할 수 있습니다.

종목별 실시간 체결 정보

선택한 종목의 가장 최근 체결된 거래 내역을 확인할 수 있습니다.
체결가, 체결량, 등락률, 체결 시간 등 초 단위의 데이터를 제공하여 시장의 흐름을 실시간으로 파악할 수 있도록 돕습니다.

종목별 일별 시세 데이터

종목별로 일별 종가, 등락률, 거래량, 시가, 고가, 저가를 한눈에 확인할 수 있습니다.
일별로 어떤 흐름으로 주가가 변화했는지 파악할 수 있으며 투자 판단에 필요한 기초 데이터로 활용할 수 있습니다.

3. 아키텍처 및 핵심 기능

1) 프론트엔드 & 백엔드

AWS EKS 내 배포
Frontend Pods
React 기반 프론트엔드 애플리케이션
Kubernetes Pod 단위로 배포되어 자동 확장 및 관리됨
Backend Pods
Spring Boot로 작성된 API 서버
실시간 데이터 처리 및 Kafka, Redis, RDS 등과 통신

2) 서비스 디스커버리 & 트래픽 라우팅

AWS EKS 내 배포
Frontend Service / Backend Service
각각의 Pods에 대한 접근을 Ingress를 통한 ClusterIP 형태로 라우팅
Ingress Controller
외부 트래픽을 클러스터 내부의 서비스로 라우팅
도메인 기반 트래픽 분기 처리

3) 클라우드 인프라

AWS EKS (Elastic Kubernetes Service)
AWS에서 관리형 Kubernetes 클러스터 제공
프론트엔드, 백엔드, Redis, Kafka 등 모든 워크로드 실행
Docker Hub
프론트엔드/백엔드 애플리케이션 컨테이너 이미지를 저장

4) CI/CD 파이프라인

GitHub Actions
코드 커밋 → 빌드 → Docker 이미지 생성 → Docker Hub에 푸시
ArgoCD
GitOps 방식으로 Kubernetes 클러스터에 자동 배포
Git 저장소와 동기화하여 실시간 배포 상태 유지
Kustomize
환경별 설정 분리 및 관리 (dev, prod 등)

5) 인증 및 보안

AWS Certificate Manager
TLS 인증서를 관리하여 HTTPS 제공
AWS Secrets Manager
RDS 접근정보, 한국투자증권 API Key등 민감한 정보 저장 및 제공

6) 데이터 저장소 및 메시지 브로커

Redis (Master + Replication)
캐시, 실시간 데이터 저장소로 활용
고가용성을 위한 Replication 구성
Kafka Cluster (Broker 1, 2, 3)
분산형 스트리밍 플랫폼
대량의 실시간 체결 데이터를 안정적이고 실시간으로 처리 가능

7) 외부 연동

한국투자증권 (외부 API)
주식 정보, 실시간 체결 시세 등 외부 데이터 연동

데이터 흐름 요약

1.
사용자가 웹 브라우저에서 요청
2.
Ingress Controller를 통해 요청이 프론트엔드로 전달
3.
프론트엔드는 API 요청을 백엔드로 전달
4.
실시간 데이터 처리 필요 시 외부 API (한국투자증권)를 이용하여 Redis와 Kafka를 통해 데이터 처리
5.
일별 데이터 필요 시 RDS를 통해 데이터 처리
6.
최종 결과를 프론트엔드에 반환
7.
모든 구성요소는 GitHub Actions + ArgoCD로 자동화 배포됨

4. 활용 라이브러리 및 개발 환경

어떻게 활용했는지 & 왜 선택했는지 중심

 서비스

[Front] React
실시간 주식 조회 서비스 특성 상 동적 렌더링 필요
다양한 레퍼런스 참고 가능
[Back] SpringBoot
대규모의 데이터를 다루기 때문에 멀티스레드 기반의 고성능 처리 필요
[Message Queue] Kafka
실시간 데이터를 SpringBoot에서 즉시 처리하는 경우 서버 부하 발생
Message Queue에 데이터에 저장한 후 메세지를 순차적으로 소비해 서버 부하 분산 및 데이터 누락 방지 목적
필요한 모든 데이터는 Kafka를 거친 후 처리
[API] 한국투자증권 API
실시간 주식 체결 데이터 → websocket을 통해 처리
종목별 일별 시세 데이터, 순위 데이터 → HTTP API를 통해 처리

 배포 환경

[Infra] AWS EKS
다양한 Kubernetes 네이티브 도구 활용 가능해 높은 배포 유연성
Helm, ArgoCD, Kustomize 적용
Ingress 리소스를 통한 유연한 트래픽 제어 가능
[DB] RDS
한국투자증권 API를 통해 가져오는 데이터 저장
e.g. 한국투자증권 API 정보, 주식 이름, 주식 아이디, 체결량 기준 주식 랭킹 순위
[DB] Redis
한국투자증권 API 웹소켓을 통해 가져오는 실시간 데이터 저장
e.g. 실시간 주식 체결 데이터
[자동화] Terraform
인프라를 코드로 정의하여 서비스 운영 및 배포, 유지보수 자동화
인프라 자동화를 통해 휴먼 에러 방지 및 운영 효율성 향상
형상 관리 가능
[자동화] Ansible
서버에 필요한 설정 자동화
자동화를 통해 휴먼 에러 방지
추후 서버 증설을 가정해 확장성과 유지 보수에 유리
[CICD] GitHub Actions
코드 변경 사항 감지 후 자동으로 빌드 및 푸시하는 CI 파이프라인 구축
Git과 직접적인 연동이 가능해 코드 관리에 유리
[CICD] Kustomize
GitHub Actions에서 새로운 코드 태그가 생성되면 이를 감지해 ArgoCD가 인지할 수 있도록 함
ArgoCD와 통합하여 GitOps 방식으로의 손쉬운 배포 가능
[CICD] ArgoCD
AWS EKS와 GitHub 코드를 주기적으로 비교해 변경 사항 감지 시 자동으로 동기화
GitOps 기반의 자동 배포 가능 및 실시간 상태 동기화 가능
⇒ 전반적으로 프로젝트 주제인 “클라우드 운영 자동화”에 초점을 두어 아키텍처를 설계했으며, 서비스에 맞는 적절한 기술을 선택하려 노력했습니다.

5. 트러블 슈팅

6. 팀 소개

나보영
nabo2000@naver.com
류경표
kyongpyo0626@gmail.com
박서연
psy0201123@gmail.com
김연희
qkfh559@gmail.com
전재열
woduf1020@gmail.com