db 5

게임은 서버와 어떤 방식으로 통신할까?

🎯 글을 쓰게 된 이유 리그 오브 레전드에서 챔피언을 움직이거나, 온라인 게임에서 몬스터를 잡거나, 총 게임을 할 때....우리는 매 순간 수많은 데이터를 서버와 주고받고 있다. 문득 궁금해졌다.내가 게임에서 한 걸음 움직일 때마다 서버에 API 호출을 하는 걸까?아이템을 획득할 때마다 DB에 저장되는 건가?실시간으로 다른 유저와 싸우는데 어떻게 렉이 안 생기지? 그래서 이번에는 게임이 서버와 통신하는 방식에 대해 파헤쳐보기로 했다. 🎮 게임 통신의 기본 분류 게임 서버 통신을 이해하려면 먼저 게임을 크게 세 가지로 분류해야 한다 1. 실시간 게임 (FPS, MOBA, 배틀로얄)밀리초 단위의 빠른 반응이 필요다수 유저가 동시에 상호작용지연시간이 게임 플레이에 직접적 영향2. 턴제/비실시간 게임 (..

백엔드 멘토링 2025.08.26

[Spring] 조회 성능 테스트 및 조회 성능 개선 일지

이 포스팅은 여행 서비스 프로젝트인 nomadic의 조회 성능 과정 일지입니당.어떤 고민을 거치고, 어떤 트러블슈팅이 있었는지, 결과는 어땠는지를 중점적으로 다룰거고,제가 했던 고민들과 어떤 의사결정을 내렸는지, 그 과정에서 어떤 문제들이 있었고 어떻게 해결했는지 보며,함께 생각해보고 더 나은 방법이 있다면 댓글로 알려주길 바랍니당. 트러블 슈팅을 거의 다 기록하고, 고민과정과 구현방식등 많은 내용이 포함되어 있어, 다소 장황할 수 있으나내가 어떻게 성능 개선을 했는지 정확하게 기록하고자하는 포스팅이기에 양해 부탁드립니다 ^o^ 목차1. 성능 개선 배경2. 성능 테스트3. 성능 개선4. 후기 중간중간 트러블 슈팅과 고민 과정등이 포함되어 있습니다. 성능 개선 배경 토이 프로젝트로 진행했던 No..

백엔드 멘토링 2025.04.18

주식 프로젝트 influx DB 도입 ADR 과정

이번에 진행하고 있는 모의 주식 투자 프로젝트에서 influx DB 도입을 결정했다.모의 주식 투자인 만큼 실시간 주식 가격을 받아와야했고, 과거의 주식 가격을 그래프로 보여줘야했다.이러한 방식의 데이터 저장을 하기 위해서는 초 단위로 변화하는 주식의 가격을 모두 저장해야했고, 이렇게 하면수십 수백가지가 되는 주식 수만큼의 쿼리가 초단위로 RDB에 날라가게 된다. 그럼 주식의 가짓수가 300가지라고 했을 때, 1분동안 서비스가 실행된다면 300 * 60 으로 총 18,000개의 쿼리가 발생한다.이는 매우 비효율적일 것이라고 생각되었다. 그래서 어떻게 하면 시간을 기준으로 변화하는 데이터를 효율적으로 저장할 수 있을지 고민을 하며, 방법을 찾던중Influx DB라는 시계열 DB를 발견했다. Influx D..

백엔드 멘토링 2024.10.30

주식 투자 프로젝트 실시간 Real time DB 적용기

해당 글은 모의 주식 투자 프로젝트에서 real time DB (실시간 DB)를 적용하는 과정을 회고하는 글이다.주로 어떤 고민을 했고, real time을 선택하게 된 과정을 적어놓은 글이니 가볍게 읽을 수 있는 포스팅이라 생각한다.  최근 진행한 프로젝트는 모의 주식 투자 시뮬레이션 프로젝트다.해당 프로젝트의 특성상 실제 주식 가격을 실시간으로 받아와야만 했다.내가 선택한 방법은 KIS, 한국투자증권에서 제공하는 실시간 주식 체결가 API를 통해 KIS에서 제공하는 web socket으로 데이터를 받아오는 방식이었다.  따라서 초기에 실시간으로 변경되는 주식의 가격을 저장하기 위해 위와 같은 플로우로 계획했었다.이러한 방식에서 만약 사용자가 현재 실시간으로 전체 주식들의 가격을 보고자 한다면, 나는 ..

백엔드 멘토링 2024.09.06

2023-08-29 DB 관련 질문 정리

- RDBMS는 무엇일까? = RDBMS는 관계형 데이터 베이스를 관리하는 소프트웨어를 뜻하며, 모든 데이터를 2차원 테이블로 표현한다. - 장, 단점은 무엇인가? 장점 데이터의 일관성과 무결성은 유지할 수 있다. SQL을 통하여 데이터를 조작 및 조회가 가능하다 테이블 간의 관계를 통하여 복잡한 데이터 모델의 구축이 가능하다. 보안 및 복구와 백업을 지원한다 단점 대규모의 DB를 설계하고 관리 할 경우 높은 복잡성을 요구할 수 있고, 모델링이 잘못 구성될 경우 성능 및 유지보수에 문제가 발생한다 테이블 간의 조인등 복잡한 쿼리를 실행시 성능 이슈가 발생할 수 있다. 상용 RDBMS를 사용함에 있어 비용이 부담될 수 있다. - NoSQL이란? = Not Only SQL의 약어로 비관계형 데이터베이스이다...

백엔드 멘토링 2023.08.30