한번쯤은 꼭 정리해야지 했었던 부분을 드디어 정리하게 되었다. 대체 Git, GitHub, GitLab 그리고 SVN 차이가 뭘까? 🤷♀️ 1. 기본 개념 비교 항목 설명 Git 소스코드 변경 이력 관리 도구 (로컬 + 원격 가능) GitHub Git 저장소 + 협업 기능 제공 (오픈소스 강자) GitLab Git 저장소 + CI/CD + 이슈 관리 등 풀 패키지 (기업용 강자) SVN 중앙 서버에서만 소스 관리 2. 저장소 구조 차이항목Git(GitHub/GitLab)SVN저장 방식분산형(각자 로컬 ..
🔹 1. ~ Handler (핸들러)특정 이벤트나 요청을 처리하는 역할.주로 이벤트 기반 시스템이나 메시지 큐, HTTP 요청 등의 처리기에 사용됨.✅ 예시RequestHandler → HTTP 요청을 받아서 적절한 서비스로 넘김.EventHandler → 특정 이벤트 발생 시 실행되는 로직을 담당.ErrorHandler → 예외 처리 담당.🔹 2. ~ Service (서비스)비즈니스 로직을 담당하는 계층데이터베이스 접근 없이, 순수한 애플리케이션 로직을 수행.보통 여러 개의 Repository 또는 DAO를 조합해서 비즈니스 기능을 구현함.비즈니스 로직이란? - 사용자의 요구사항을 처리하는 코드 - 이 프로그램이 실제로 해야하는 핵심 기능을 담당 ex) 비즈니스 로직 O : 게임에서 플레이어가..
💓 Heartbeat ?- 서버 클라이언트간의 연결 확인을 위한 기능- 특정 시간 내에 응답이 없으면 타임아웃을 설정하여 자동으로 연결을 종료할 수 있다. 📌 왜 HTTP/2 PING 프레임을 사용하지 않는가? [Client] ← PING/PONG → [LoadBalancer] ← PING/PONG → [Server] 위의 구조로 Client와 Server 사이에 Loadbalancer가 있을때 Loadbalance가 핑을 가로 챌 수 있음, 그러면 '서버'로 전달이 안될수 있음. 그래서 MagicOnion은 자체적으로 Heartbeat를 구현하였고, 서버와 클라이언트 간의 데이터를 명시적으로 보내는 메커니즘을 제공합니다!
큰 수의 법칙, 수학적 확률, 통계적 확률 🎲확률과 통계의 기초 개념을 이해하는 것은 다양한 문제 해결에 중요한 역할을 한다.이번 포스트에서는 큰 수의 법칙, 수학적 확률, 그리고 통계적 확률에 대해 살펴보겠다. 1. 큰 수의 법칙 (Law of Large Numbers) - 큰 수의 법칙은 반복적인 실험을 통해 어떤 사건이 발생하는 **상대적인 빈도(확률)**가 이론적인 기댓값에 수렴하는 경향을 나타내는 법칙이다. 예시동전 던지기를 예로 들어보면, 동전을 10번 던졌을 때 앞면이 나오는 횟수는 정확히 5번이 아닐 수 있지만, 1000번이나 10000번을 던지면 점점 50%에 가까운 비율로 수렴하게 됩니다.즉, 실험을 충분히 많이 반복하면, 경험적 확률이 이론적 확률에 가까워집니다.수학적 의미큰 수의 ..
가중치에 따른 랜덤 값 뽑기 🎲게임 서버나 애플리케이션 개발 시, 특정 항목을 랜덤하게 선택해야 할 경우가 종종 있다.그럴때 각 항목에 가중치를 부여해서 확률적으로 선택되는 방법이 매우 유용하다. 예를 들면 항목 A가 45%, B가 35%, C가 15%, D가 5%로선택되게 하는 방법이다. 이 포스트에서는 C# Random.Shared를 사용하여 어떻게 가중치 기반 랜덤 값을 뽑는지 설명하려 한다. 🎯 일단 가중치란 무엇을까? 🤔 **가중치(Weight)**는 각 항목이 선택될 확률을 상대적으로 조정하는 수치이다.예를 들어, A 항목이 45%, B 항목이 35%, C 항목이 15%, D 항목이 5%의 가중치를 가지고 있다면,A가 선택될 확률이 가장 높고, D는 상대적으로 가장 낮다.가중치는 확률을..