분류 전체보기221 실시간 시세 시스템아키텍처에 대한 고민, feat.토스증권 개요 현재 진행 중인 백엔드 프로젝트에서 카프카를 활용한 실시간 비트코인 시세를 어떻게 구현을 해야 하는지 많은 고민을 하게 되었고 토스증권의 시스템아키텍처를 통해서 힌트를 얻을 수 있었다. 출처 - youtube https://www.youtube.com/watch?v=SF7eqlL0mjw https://www.youtube.com/watch?v=DQFroVSkqJM 토스증권의 실시간 및 누적 시세 시스템 아키텍처 토스증권의 실시간 시세 시스템 아키텍처는 크게 국내시세와 해외시세로 나누어져 있는 것을 볼 수 있다.기존의 증권 시스템들과의 차이점은 카프카를 활용하여 실시간 시세를 클라이언트에게 전달한다는 점이 있다. 또한 가공 서버에서는 누적시세와 실시간시세로 나뉘며 누적시세는 과거 데이터 활용을 위해서.. 2023. 10. 14. [책 리뷰] 자바 개발자를 위한 데브옵스 툴 - 스티븐 친,멜리사 맥케이 들어가면서 최근 백엔드 공부를 하면서 API개발만 할 줄 아는 개발자가 되기보다 데브옵스 환경에 대한 넓은 시야와 이해도를 가지고 있는 백엔드 개발자가 되고 싶어서 이 서적을 구매했고 데브옵스 환경의 트렌드와 변화를 읽고 내가 앞으로 자바 개발 공부를 할 때 어떤 식으로 활용할 수 있을지에 대한 식견을 얻으려고 노력했다. 좋았던 점 데브옵스의 개념부터 보안, 테스트, 쿼커스, 실제 기업들의 사례 등 트렌디하고 많은 내용을 다루어서 데브옵스에 대한 시야를 넓힐 수 있어서 좋았다. 그리고 github를 실습하면서 책의 깃허브 레포지토리에 visitor log를 남기는 내용이 있었는데 머지 되지는 않았지만 전세계에서 이 책을 읽는 다양한 사람들이 visitor log를 남긴 것을 구경하기도 하고 내가 직접 v.. 2023. 10. 8. Spring-Boot + redis + kafka로 대용량 트래픽을 관리해보자 이 내용은 이전에 포스팅하였던 LINE의 HotChat에 대응하는 시스템 아키텍처를 직접 구현해본 경험을 글로 작성하였습니다. 들어가면서.. 이 프로젝트는 Kafka와 Redis의 활용법을 익히고 갑작스럽게 트래픽이 증가하는 경우 대비할 수 있는 로직에 대해서 공부하기 위해서 진행하였습니다. 프로젝트의 가정 Kafka 이벤트 기반 채팅 시스템에서 임계점을 넘는 대규모 FETCH 트래픽이 발생했을 때 redis와 kafka, 스로틀링을 활용하여 트래픽을 잡는다. 시스템 아키텍처 크게 클라이언트(react), ChatServer, PublishServer로 나뉘며 각각 클라이언트는 react를 활용해 채팅방을 구현하였고 ChatServer는 클라이언트에서 메세지나 공감 이벤트가 발생하였을 때 카프카 클러스터.. 2023. 10. 5. LINE 오픈챗 서버가 100배 급증하는 트래픽을 다루는 방법 feat.Kafka 최근 새롭게 Join한 백엔드 스터디에서 기존에 사용해보지 못했던 기술들을 활용하는 방법들을 공부하고 기록으로 남기기 위해서 Kafka에 대해서 공부를 했고 모두 어느 정도 알고 있는 원리를 정리하기보다는 실제 기업에서는 어떤 방식으로 Kafka가 운영되고 어떤 목적으로 사용되는지 정리를 하기 위해서 Line의 오픈챗 서버에서 Kafka가 어떻게 활용이 되었고 어떤 방식으로 100배 급증하는 트래픽을 해결하였는지 정리를 하기 위해서 글을 작성하게 되었습니다. 이번 글에서는 Line의 개발자분들이 오픈챗의 핫챗을 통해 100배 급증하는 트래픽을 어떻게 Kafka를 활용하여 해결하게 되었는지 설명하겠습니다. 핫챗이란? 만약 한 오픈챗에 참여한 5천 명의 사용자가 모두 동시에 활발하게 메시지를 주고받는다면 어.. 2023. 9. 21. Github Action, Kubernetes 설정파일 관리 with Argo-CD 쿠버네티스에 스프링부트 프로젝트를 배포하고 Github Action과 Argo-CD를 통해서 CI/CD도 거의 완료 단계에 들어가게 되었다. 그러나 로컬에 들어있는 application.yml 파일들이나 FCM을 동작하게 해주는 FCM 인증서 JSON 파일은 깃 레포지토리에서 관리를 하고 있지 않았기 때문에 CI/CD 파이프라인을 타게 되면 설정이 빠진 스프링 프로젝트가 배포되는 문제가 있었다. 그래서 어떻게 하면 application.yml에 들어있는 DB 중요정보나 FCM 인증서를 레포지토리에서 관리하지 않고도 CI/CD 파이프라인을 통해서 문제없이 설정 정보까지 배포를 할 수 있을까 고민을 하게 되었다. 먼저 application.yml에 들어있는 중요정보들은 쉽게 해결할 수 있었다. 쿠버네티스에.. 2023. 9. 20. 젠킨스 파이프라인 스프링부트3 버전 에러 java 17 version 변경 최근 젠킨스를 이용한 스프링부트 프로젝트를 쿠버네티스에 배포하고 CI/CD를 구축하고자 작업을 진행하고 있는데 파이프라인을 구성하고 깃허브에서 프로젝트를 받아오는 것 까지는 진행이 되는데 스프링부트를 빌드하는 과정에서 계속해서 Java -version 에러가 났다. 그 이유는 스프링부트 3 버전과 jdk 17버전을 이용해서 프로젝트를 진행했는데 젠킨스에서는 정식적으로 지원하는 java version이 jdk 11버전까지 지원을 하고 있었고 만약에 jdk 17버전으로 스프링부트 프로젝트를 진행했다면 따로 jdk 17버전을 업해주어야 했다. 그래서 다양한 방법들을 시도했지만 현재 쿠버네티스 파드의 도커 내부에서 젠킨스가 돌아가고 있는 상황에서 JDK 버전을 바꾸고자 하니 root 권한 사용자의 문제에 부딪히.. 2023. 9. 18. 이전 1 ··· 20 21 22 23 24 25 26 ··· 37 다음