최근 포스트

[Spring] 실시간 알림 DB 부하 개선 사례 (80% 감소)

   3 분 소요

0. 들어가며 이번 사례는 실제로는 NestJS 기반 프로젝트에서 발생한 문제이다. 다만 포스팅에서는 내가 부족하다고 느끼는 Spring 실전 사례 인사이트를 보강하기 위해, 시나리오와 예시 코드를 Java/Spring 환경으로 재구성했다. 아키텍처적 아이디어와 개선 방식 자체는 ...

[JPA] 5. JPA vs TypeORM - JPA 1차 캐시

   6 분 소요

1. 들어가며 지금까지 JPA 시리즈에서는 EntityManager, N+1 문제, 트랜잭션 관리, Lock 전략을 다뤘다. 이번 포스팅에서는 JPA의 또 하나 중요한 특징인 1차 캐시(Persistence Context Cache)를 정리 해보려 한다.

[JPA] 4. JPA vs TypeORM - Lock 전략

   5 분 소요

1. Lock 전략 동시성 환경에서는 여러 트랜잭션이 동시에 같은 데이터에 접근할 수 있기 때문에, 정합성을 보장하기 위해 락(Lock) 전략이 필요하다.

[JPA] 3. JPA vs TypeORM - Transaction

   8 분 소요

1. Transaction 트랜잭션은 데이터베이스의 일관성을 보장하기 위한 방법으로, ACID 원칙을 따른다. 원자성(Atomicity): 전부 수행되거나 전부 취소된다. 일관성(Consistency): 트랜잭션 전후로 데이터 무결성이 유지된다. 격리성(Isolatio...

[JPA] 2. JPA vs TypeORM - N+1

   6 분 소요

1. N+1 문제 ORM을 사용하면 EntityManager를 통해 객체와 DB간 매핑이 자동으로 처리되므로 개발자는 데이터를 객체로 다루기만 하면 된다. 하지만 이 편리함 뒤에는 몇가지 성능 문제가 숨어있으며, 그중 대표적인 것이 N+1 문제다.

[JPA] 1. JPA vs TypeORM - EntityManager

   2 분 소요

1. 시작하며 그동안 여러 언어와 프레임워크에서 ORM (Object Relational Model)을 다뤄왔다. Golang : grom, go-pg TypeScript : TypeORM Java : JPA

[Clean Architecture] 2. Clean Architecture with Spring Boot

   4 분 소요

Spring Boot와 Clean Architecture Spring Boot의 3-Tier 아키텍처와 Clean Architecture는 소프트웨어 설계에서 계층화를 통해 코드의 유지보수성과 확장성을 높이는 것을 목표로 한다. 두 아키텍처 모두 명확한 계층 분리를 통해 책임을 분...

[Clean Architecture] 1. Clean Architecture 개요

   2 분 소요

Clean Architecture: 유지보수성과 확장성을 극대화하는 아키텍처 패턴 소프트웨어 개발의 궁극적인 목표는 높은 유지보수성과 확장성을 갖춘 시스템을 구축하는 것이다. 이를 위해서는 명확한 아키텍처 패턴을 적용하는 것이 중요하다. Clean Architecture는 이러...

[Clean Architecture] 0. SOLID 5원칙

   3 분 소요

SOLID 원칙: 깨끗한 아키텍처를 위한 기초 개념 소프트웨어 개발에서 유지보수성과 확장성을 높이기 위해 여러가지 설계 원칙이 있다. 그중에서도 특히 중요한 것이 바로 SOLID 원칙이다. SOLID 원칙은 객체지향 설계에서 지켜야 할 다섯가지 기본 원칙을 의미하며, 코드의 품질을...