최신 글
-
All of Dead Lock
1. 데드락이란?정의 : 두 개 이상의 트랜잭션(또는 스레드)이 서로가 보유한 자원을 기다리며 영원히 진행하지 못하는 상태.필수 4조건(Coffman)상호 배제(Mutual Exclusion)점유-대기(Hold and Wait)비선점(No Pre-emption)순환 대기(Circular Wait)상호 배제 (Mutual Exclusion)정의: 자원은 동시에 하나의 트랜잭션(또는 스레드)만이 사용할 수 있어야 한다는 조건입니다.예시: 어떤 트랜잭션이 특정 행(row)을 SELECT … FOR UPDATE로 잠갔다면, 그 잠금이 해제되기 전까지 다른 트랜잭션은 해당 행을 수정할 수 없습니다.필요성: 대부분의 자원(DB row, 파일 핸들 등)은 동시에 여러 주체가 수정하면 데이터 정합성이 깨지기 때문에 상..
2025.06.15
-
소프트웨어 아키텍처 패턴 문서화 템플릿 및 예시
✅ 패턴 설명 템플릿항목 설명Name (이름)패턴의 명칭. 간결하고 핵심 개념을 잘 드러내야 함.Context (맥락)이 패턴이 적용되는 일반적인 시스템 환경 또는 상황.Problem (문제)패턴이 해결하고자 하는 근본적인 문제나 어려움. 시스템 관점에서 어떤 제약이나 한계가 존재하는지 설명.Forces (제약 요인)문제 해결을 어렵게 만드는 상충되는 요구사항이나 시스템 제약. 예: 지연 시간 vs 일관성Solution (해결책)문제를 해결하기 위한 일반적인 설계 방식 또는 전략. 구성 요소와 흐름 등을 포함.Structure (구조)구성 요소 간의 관계를 나타내는 다이어그램 (예: Mermaid, UML 등).Resulting Context (결과 맥락)패턴 적용 이후의 시스템 특성. 해결된 점과 새롭..
2025.05.24
-
스타트업이 RDBMS 대신 선택한 조합: 디프로모션의 AWS 아키텍처 도입기
스타트업에게 있어 기술 스택 선택은 곧 서비스의 속도, 확장성, 그리고 생존력에 직결되는 중요한 문제입니다. 특히 데이터베이스 아키텍처는 초기 개발 속도와 향후 확장 가능성을 동시에 고려해야 하는 까다로운 결정이죠.오늘은 프로모션 기반 사용자 참여 플랫폼인 디프로모션이 어떻게 DynamoDB, OpenSearch, ElastiCache Serverless의 조합을 통해 기존 RDBMS 기반 구조의 한계를 극복했는지 소개해드리겠습니다.왜 RDBMS만으로는 부족했는가?디프로모션의 초기 구조는 전통적인 RDBMS에 기반하고 있었지만, 몇 가지 한계에 직면했습니다:복잡하고 유동적인 데이터 구조: 프로모션별로 다양한 형태의 데이터를 처리해야 하는데, 고정된 스키마 구조를 가진 RDBMS는 자주 변경되는 요구사항에..
2025.05.22
-
기존 GUID(UUID) 데이터베이스 Primary Key 사용: 특징과 고려사항
기존 GUID(UUID) 데이터베이스 Primary Key 사용: 특징과 고려사항안녕하세요. 오늘은 이전에 흔히 사용되던 GUID(Globally Unique Identifier) 또는 UUID(Universally Unique Identifier)의 특징과 이를 데이터베이스의 Primary Key(PK)로 사용할 때 고려해야 할 점들에 대해 이야기해 보겠습니다.1. GUID(UUID)란 무엇인가?GUID는 128비트로 구성된 고유 식별자입니다. 기본적으로 랜덤하게 생성됩니다. 이는 여러 시스템에 걸쳐 충돌할 확률이 매우 낮은 고유한 값을 만들기 위해 고안되었습니다.2. GUID의 사용 목적: 왜 랜덤한 ID가 필요했나?GUID가 등장한 가장 큰 이유는 대규모 트래픽 환경 때문입니다. 일반적인 환경에서는..
2025.05.18
-
GC 알고리즘별 Minor GC와 Survivor 영역의 동작 비교 정리
이 문서는 G1GC의 Minor GC 동작 원리, Survivor 영역의 역할, 그리고 다른 GC 알고리즘에서의 Survivor 처리 방식을 비교하며 정리한 내용입니다. 각 GC 방식의 힙 구조, GC 트리거 조건, STW 여부 등을 상세히 설명하고, 어떤 상황에서 Survivor가 사용되는지를 중심으로 핵심 내용을 요약합니다.1. G1GC의 Minor GC힙 구조G1GC는 힙을 Region 단위로 나눔Young Generation은 여러 개의 Eden + Survivor Region으로 구성됨Minor GC 트리거Eden 영역이 가득 차면 Minor GC 발생Survivor가 가득 차는 건 트리거 요인은 아님 (대신 promotion failure 발생 가능)Minor GC 시 동작Eden에 있는 살아..
2025.05.17