MySQL

[Git Ranker #4] 순위 및 티어 계산 기능 구현

5 분 소요

대규모 정렬 없이 순위를 구하는 효율적인 알고리즘과, 초기 사용자 부족으로 인한 티어 산정의 모순을 해결하기 위해 Tasklet과 Window Function을 활용한 배치 최적화 과정

SQL 튜닝을 통한 API 성능 최적화 (2편)

5 분 소요

대기 진료 견적서 상세 조회 API에서 569ms 걸리던 3개의 개별 쿼리를 JOIN과 인덱스 최적화를 통해 50ms로 단축시킨 과정을 다룹니다.

JPA와 MySQL로 구현한 동시성 제어

8 분 소요

Redis 대신 JPA의 Pessimistic Lock과 MySQL을 활용하여 좋아요 기능의 동시성 문제를 해결하고, 시스템 복잡도를 줄이면서 데이터 정합성을 보장한 과정을 다룹니다.

SQL 튜닝을 통한 API 성능 최적화 (1편)

9 분 소요

100만 개 데이터 환경에서 6.57초 걸리던 API를 409ms로 단축시킨 SQL 튜닝 과정입니다. 인덱스 설계 전략, 복합 인덱스 활용, JOIN 최적화를 통해 94% 성능 향상을 달성했습니다.

맨 위로 이동 ↑

GitHub API

[Git Ranker #6] GitHub Search API에서 GraphQL로 전환

7 분 소요

REST Search API의 Rate Limit 병목과 데이터 정밀도 문제를 해결하기 위해 GraphQL로 전환한 과정과 ‘1년 조회 제한’ 문제를 Alias와 동적 쿼리 매핑으로 극복한 트러블 슈팅

맨 위로 이동 ↑

Spring Batch

[Git Ranker #4] 순위 및 티어 계산 기능 구현

5 분 소요

대규모 정렬 없이 순위를 구하는 효율적인 알고리즘과, 초기 사용자 부족으로 인한 티어 산정의 모순을 해결하기 위해 Tasklet과 Window Function을 활용한 배치 최적화 과정

맨 위로 이동 ↑

JPA

JPA와 MySQL로 구현한 동시성 제어

8 분 소요

Redis 대신 JPA의 Pessimistic Lock과 MySQL을 활용하여 좋아요 기능의 동시성 문제를 해결하고, 시스템 복잡도를 줄이면서 데이터 정합성을 보장한 과정을 다룹니다.

미용사 및 병원 검색 API의 N+1 문제 해결

8 분 소요

미용사 및 병원 검색 API에서 발생한 N+1 문제를 분석하고, Fetch Join의 한계를 극복하여 Native Query를 활용해 성능을 최적화한 과정을 다룹니다.

맨 위로 이동 ↑

SQL 튜닝

SQL 튜닝을 통한 API 성능 최적화 (2편)

5 분 소요

대기 진료 견적서 상세 조회 API에서 569ms 걸리던 3개의 개별 쿼리를 JOIN과 인덱스 최적화를 통해 50ms로 단축시킨 과정을 다룹니다.

SQL 튜닝을 통한 API 성능 최적화 (1편)

9 분 소요

100만 개 데이터 환경에서 6.57초 걸리던 API를 409ms로 단축시킨 SQL 튜닝 과정입니다. 인덱스 설계 전략, 복합 인덱스 활용, JOIN 최적화를 통해 94% 성능 향상을 달성했습니다.

맨 위로 이동 ↑

API 성능 최적화

SQL 튜닝을 통한 API 성능 최적화 (2편)

5 분 소요

대기 진료 견적서 상세 조회 API에서 569ms 걸리던 3개의 개별 쿼리를 JOIN과 인덱스 최적화를 통해 50ms로 단축시킨 과정을 다룹니다.

SQL 튜닝을 통한 API 성능 최적화 (1편)

9 분 소요

100만 개 데이터 환경에서 6.57초 걸리던 API를 409ms로 단축시킨 SQL 튜닝 과정입니다. 인덱스 설계 전략, 복합 인덱스 활용, JOIN 최적화를 통해 94% 성능 향상을 달성했습니다.

맨 위로 이동 ↑

인덱스

SQL 튜닝을 통한 API 성능 최적화 (2편)

5 분 소요

대기 진료 견적서 상세 조회 API에서 569ms 걸리던 3개의 개별 쿼리를 JOIN과 인덱스 최적화를 통해 50ms로 단축시킨 과정을 다룹니다.

SQL 튜닝을 통한 API 성능 최적화 (1편)

9 분 소요

100만 개 데이터 환경에서 6.57초 걸리던 API를 409ms로 단축시킨 SQL 튜닝 과정입니다. 인덱스 설계 전략, 복합 인덱스 활용, JOIN 최적화를 통해 94% 성능 향상을 달성했습니다.

맨 위로 이동 ↑

동시성 제어

JPA와 MySQL로 구현한 동시성 제어

8 분 소요

Redis 대신 JPA의 Pessimistic Lock과 MySQL을 활용하여 좋아요 기능의 동시성 문제를 해결하고, 시스템 복잡도를 줄이면서 데이터 정합성을 보장한 과정을 다룹니다.

맨 위로 이동 ↑

Pessimistic Lock

JPA와 MySQL로 구현한 동시성 제어

8 분 소요

Redis 대신 JPA의 Pessimistic Lock과 MySQL을 활용하여 좋아요 기능의 동시성 문제를 해결하고, 시스템 복잡도를 줄이면서 데이터 정합성을 보장한 과정을 다룹니다.

맨 위로 이동 ↑

Spring Boot

맨 위로 이동 ↑

Architecture

맨 위로 이동 ↑

SSH

맨 위로 이동 ↑

Security

맨 위로 이동 ↑

Ubuntu

맨 위로 이동 ↑

Linux

맨 위로 이동 ↑

N+1 문제

미용사 및 병원 검색 API의 N+1 문제 해결

8 분 소요

미용사 및 병원 검색 API에서 발생한 N+1 문제를 분석하고, Fetch Join의 한계를 극복하여 Native Query를 활용해 성능을 최적화한 과정을 다룹니다.

맨 위로 이동 ↑

쿼리 최적화

미용사 및 병원 검색 API의 N+1 문제 해결

8 분 소요

미용사 및 병원 검색 API에서 발생한 N+1 문제를 분석하고, Fetch Join의 한계를 극복하여 Native Query를 활용해 성능을 최적화한 과정을 다룹니다.

맨 위로 이동 ↑

Spring Data JPA

미용사 및 병원 검색 API의 N+1 문제 해결

8 분 소요

미용사 및 병원 검색 API에서 발생한 N+1 문제를 분석하고, Fetch Join의 한계를 극복하여 Native Query를 활용해 성능을 최적화한 과정을 다룹니다.

맨 위로 이동 ↑

성능 최적화

맨 위로 이동 ↑

Spring

맨 위로 이동 ↑

JWT

맨 위로 이동 ↑

토큰 처리

맨 위로 이동 ↑

인증 시스템

맨 위로 이동 ↑

DDD

성장하는 서비스를 위한 DDD 기반 멀티 모듈 전환기

7 분 소요

모놀리식 아키텍처의 한계를 극복하기 위해 도메인 주도 설계(DDD)와 포트-어댑터 패턴을 적용한 멀티 모듈 아키텍처로 전환한 과정입니다. 장애 격리와 도메인 경계 명확화를 통해 확장성 있는 시스템을 구축했습니다.

맨 위로 이동 ↑

멀티 모듈

성장하는 서비스를 위한 DDD 기반 멀티 모듈 전환기

7 분 소요

모놀리식 아키텍처의 한계를 극복하기 위해 도메인 주도 설계(DDD)와 포트-어댑터 패턴을 적용한 멀티 모듈 아키텍처로 전환한 과정입니다. 장애 격리와 도메인 경계 명확화를 통해 확장성 있는 시스템을 구축했습니다.

맨 위로 이동 ↑

헥사고날 아키텍처

성장하는 서비스를 위한 DDD 기반 멀티 모듈 전환기

7 분 소요

모놀리식 아키텍처의 한계를 극복하기 위해 도메인 주도 설계(DDD)와 포트-어댑터 패턴을 적용한 멀티 모듈 아키텍처로 전환한 과정입니다. 장애 격리와 도메인 경계 명확화를 통해 확장성 있는 시스템을 구축했습니다.

맨 위로 이동 ↑

포트-어댑터 패턴

성장하는 서비스를 위한 DDD 기반 멀티 모듈 전환기

7 분 소요

모놀리식 아키텍처의 한계를 극복하기 위해 도메인 주도 설계(DDD)와 포트-어댑터 패턴을 적용한 멀티 모듈 아키텍처로 전환한 과정입니다. 장애 격리와 도메인 경계 명확화를 통해 확장성 있는 시스템을 구축했습니다.

맨 위로 이동 ↑

도메인 모델

성장하는 서비스를 위한 DDD 기반 멀티 모듈 전환기

7 분 소요

모놀리식 아키텍처의 한계를 극복하기 위해 도메인 주도 설계(DDD)와 포트-어댑터 패턴을 적용한 멀티 모듈 아키텍처로 전환한 과정입니다. 장애 격리와 도메인 경계 명확화를 통해 확장성 있는 시스템을 구축했습니다.

맨 위로 이동 ↑

시스템 아키텍처

성장하는 서비스를 위한 DDD 기반 멀티 모듈 전환기

7 분 소요

모놀리식 아키텍처의 한계를 극복하기 위해 도메인 주도 설계(DDD)와 포트-어댑터 패턴을 적용한 멀티 모듈 아키텍처로 전환한 과정입니다. 장애 격리와 도메인 경계 명확화를 통해 확장성 있는 시스템을 구축했습니다.

맨 위로 이동 ↑

Redis Stream

맨 위로 이동 ↑

비동기 처리

맨 위로 이동 ↑

메시징 시스템

맨 위로 이동 ↑

선착순 이벤트

맨 위로 이동 ↑

Java

맨 위로 이동 ↑

알고리즘

맨 위로 이동 ↑

자료구조

맨 위로 이동 ↑

코딩테스트

맨 위로 이동 ↑

System Design

맨 위로 이동 ↑

Home Lab

맨 위로 이동 ↑

GraphQL

[Git Ranker #6] GitHub Search API에서 GraphQL로 전환

7 분 소요

REST Search API의 Rate Limit 병목과 데이터 정밀도 문제를 해결하기 위해 GraphQL로 전환한 과정과 ‘1년 조회 제한’ 문제를 Alias와 동적 쿼리 매핑으로 극복한 트러블 슈팅

맨 위로 이동 ↑

Fail2ban

맨 위로 이동 ↑

Firewall

맨 위로 이동 ↑

DNS

맨 위로 이동 ↑

DDNS

맨 위로 이동 ↑

Nginx

맨 위로 이동 ↑

Reverse Proxy

맨 위로 이동 ↑

HTTPS

맨 위로 이동 ↑