본문 바로가기
SMALL

전체 글15

실시간 퍼즐 랭킹 시스템, puzzle-leaderboard에 사용된 기술들 퍼즐 게임에 랭킹 기능을 붙이려고 하면 처음엔 다들 "점수 저장하고 정렬해서 보여주면 되지" 정도로 생각한다. 근데 막상 만들어보면 얘기가 좀 다르다. 동시에 수백 명이 점수를 갱신하는 상황에서 데이터가 안 꼬여야 하고, 내 순위가 몇 등인지 바로 알 수 있어야 하고, 트래픽이 몰리는 순간에도 응답이 느려지면 안 된다. puzzle-leaderboard는 이 문제를 풀기 위해 백엔드, 캐시, 인프라, CI/CD까지 여러 기술을 엮어서 만든 프로젝트다. 각각을 왜 골랐는지, 실제로 어떻게 붙였는지 정리해 본다.1. Java 21 + Spring Boot 3.4.3백엔드는 Java 21, Spring Boot 3.4.3으로 짰다. Java 17이 아니라 21을 쓴 이유는 가상 스레드(Virtual Threa.. 2026. 7. 7.
객체지향 프로그래밍 (OOP) 완전 정리 1. 객체지향 프로그래밍이란?프로그램을 객체(Object)들의 집합으로 구성하는 프로그래밍 패러다임이다.현실 세계의 사물을 코드로 표현하는 방식이다.현실 세계 코드────────── → ──────자동차 Car 클래스 - 색상 - color (필드) - 속도 - speed (필드) - 달린다 - run() (메서드) - 멈춘다 - stop() (메서드)2. 핵심 개념 4가지① 캡슐화 (Encapsulation)데이터(필드)와 메서드를 하나로 묶고, 외부에서 직접 접근을 제한하는 것이다.// 캡슐화 없이 — 누구나 직접 접근 가능 💥public class Bank.. 2026. 6. 30.
MVVM 패턴 완전정리 1. MVVM 패턴이란?MVP에서 Presenter 대신 ViewModel을 사용하는 패턴이다.MVP의 단점인 View와 Presenter의 1:1 강결합을 해결한 것이 핵심이다.ViewModel은 View를 전혀 모르고, View가 ViewModel을 관찰(Observe)해서 자동으로 업데이트된다.2. MVC → MVP → MVVM 진화 흐름MVC: View ↔ Model 직접 의존 💥 ↓ 해결MVP: Presenter가 중재, View 인터페이스로 분리 But Presenter가 View를 직접 참조 (1:1 강결합) 💥 ↓ 해결MVVM: ViewModel은 View를 전혀 모름 ✅ View가 ViewModel을 관찰(Observe)해서 자동 업데.. 2026. 6. 30.
MVP 패턴 (Model-View-Presenter) 완전 정리 1. MVP 패턴이란?MVC 패턴에서 Controller 대신 Presenter를 사용하는 패턴이다.MVC의 단점인 View와 Model 간의 의존성을 완전히 제거한 것이 핵심이다.2. MVC vs MVP 핵심 차이MVC:사용자 → Controller → Model ↕ View ← Model이 View를 직접 업데이트 가능 💥MVP:사용자 → View → Presenter → Model ↑ │ └──────────┘ Presenter가 View를 직접 업데이트 (Model은 View 모름) ✅3. 구조구성 요소역할Model데이터와 비즈니스 로직 (MVC와 동일)View화면 출력. Pres.. 2026. 6. 30.
MVC 패턴 (Model-View-Controller) 완전 정리 1. MVC 패턴이란?애플리케이션을 3가지 역할로 분리하는 아키텍처 패턴이다.구성 요소역할Model데이터와 비즈니스 로직View화면 출력 (UI)ControllerModel과 View를 연결하는 중간 역할2. 왜 필요할까?MVC 없이 짜면 DB 조회, 비즈니스 로직, HTML 출력이 전부 한 클래스에 섞인다. UI 바꾸려면 로직도 건드려야 하고 테스트도 어렵다. MVC는 역할을 분리해서 이 문제를 해결한다.3. MVC 흐름사용자 요청 │ ▼Controller ── 요청 분석 ──▶ Model ── 데이터 처리 │ │ │◀─────────── 결과 반환 ────────┘ │ ▼ View ── 화면 출력4. S.. 2026. 6. 30.
노출 모듈 패턴 (Revealing Module Pattern) 완전 정리 1. 노출 모듈 패턴이란?모듈 내부의 private 변수/함수는 숨기고, 외부에 공개할 것만 선택적으로 노출(reveal)하는 패턴이다.GoF 디자인 패턴은 아니고, JavaScript에서 클로저를 활용해 캡슐화를 구현하는 관용적 패턴이다. 클래스나 ES 모듈이 없던 시절에 public/private을 구분하기 위해 등장했다.2. 기본 구조const Counter = (() => { // private — 외부에서 직접 접근 불가 let count = 0; function increment() { count++; } function decrement() { count--; } function getCount() { return count; } function reset(.. 2026. 6. 29.
LIST