분류 전체보기 19

내가 보려고 정리하는 Redis 자료구조 (Strings / Hashes / Sets / Sorted Sets / Lists)

Strings텍스트, 직렬화된 객체, 바이너리 배열을 포함한 바이트 시퀀스를 저장하는 자료구조Redis 키에 연결할 수 있는 가장 간단한 값 유형활용캐시카운터토큰commandSET & GET`SET A B`A 키에 대한 문자열 B 값 설정`SET A B nx`A 키가 있을 경우에만 SET`MSET A a B b C c`A → a, B → b, C → c 한 번에 삽입`GET A`A 키에 대한 문자열 Value 반환`MGET A B C`A, B, C 키에 대한 문자열 Value 한 번에 반환127.0.0.1:6379> set hello worldOK127.0.0.1:6379> get hello"world"127.0.0.1:6379> set hello redis nx(nil)127.0.0.1:6379> se..

Redis 2026.01.24

Spring Boot 로깅의 표준 Logback과 SLF4J 알아보기

안정적이고 신뢰성 있는 시스템을 만들기 위한 수단은 여러 가지가 있습니다.테스트, 아키텍처, 예외 핸들링 등...그중에서도 시스템의 현재 상태를 관찰하고, 문제가 발생했을 때 빠르게 원인을 파악할 수 있게 해주는 로깅이 가장 기초적이면서도 중요하지 않을까 합니다.그런 의미에서 스프링부트 환경에서 Logback과 SLF4J를 활용한 로깅의 개념 그리고 기본적인 구성 방식을 정리해보고자 합니다. 🔍 목차 # 00. Spring Boot 로깅의 기본 구조 # 01.SLF4J와 Logback # 02. SLF4J 사용법 # 03. Logback 핵심 구성 요소와 설정 방법 # 00. Spring Boot 로깅의 기본 구조 스프링 부트를 사용하고 있다면 이미 로깅은 진행되고 있습니다..

Spring 2025.12.30

고유하면서도 랜덤한 7자리 인코딩을 찾아가는 여정 // Base62, 선형식, XORShift, Feistel Cipher

URL Shortner 웹사이트 제작 중에 있습니다.프로젝트의 목적은 다음과 같습니다.첫 번째로는 스터디의 취지에 따라 초당 쓰기 요청 1,000건과 초당 읽기 연산 10,000건의 트래픽을 10년간 안정적으로 감당하는 대규모 시스템을 직접 설계하고 구현하는 것이고요.두 번째는 URL Shortner라는 도메인에 대한 경험과 인사이트를 얻어가는 것이었습니다.이 중 저는 도메인 로직을 설계하면서 고민하고 공부하면서 얻은 부분들 중 글로 남기면 좋을 만한 내용이 있어서 관련해서 적어보게 되었습니다.대규모 시스템 설계에 대한 내용도 쓸 이야기들이 있는데.... 시간이 되면 다음에 꼭 작성하기로..... 🔍 목차# 00. 변환값의 자릿수# 01. 변환 로직해쉬 함수Base-62# 02. Id 스크램블링 여정..

Ideas 2025.11.02

쿼리 지옥 JPA의 N+1 문제를 둘러싼 오해

동료 분들이랑 대화를 하다가 JPA의 N+1 문제에 대한 이야기가 나왔습니다.사실 그동안은 N+1 문제에 대해 제대로 탐구해보지는 않았고, 면접 단골 문제라기에 그저 암기해 둔 수준에 불과했습니다.근데 대화를 하다 보니까 각자 정확한 문제 정의부터, 원인, 해결 방법까지 이해하고 있는 게 서로 조금씩 다르더라고요.혹시 제가 이해하고 있는 바가 틀릴 수도 있겠다는 생각과 명확하게 정리를 해놓고자 하는 마음에 가볍게 자료들을 찾고 있었는데, 아래와 같이 저를 헷갈리게 하는 말들이 너무 많았습니다. "`LAZY` 때문에 N+1 문제가 발생한다.""`EAGER` 때문에 N+1 문제가 발생한다.""`EAGER`가 N+1 문제를 해결하는 방법이다.""`EAGER`로 로딩하면 `JPQL` 사용 시 N+1 문제가 발생..

Spring 2025.08.26

@Transactional 메서드에서는 Synchronized 동기화가 통하지 않는다?!?!?

소소하게 진행 중인 프로젝트에서 예상과 다르게 동작하는 부분이 있었는데요, 원인을 파악하고 문제를 해결해 가는 과정에서 새롭게 알게 된 내용들이 있어서 또 짧은 글 남기게 되었습니다. 🔍 목차# 00. 배경# 01. 실험 과정 및 문제 직면# 02. @Transactional은 프록시 기반 AOP# 03. 동기화를 하면서 원자성도 보장하기# 04. 지표 비교 # 00. 배경 단일 프로세스 멀티 스레드 환경에서 동시에 요청을 보내 레이스 컨디션을 유발시키고 자바 수준에서 처리할 수 있는 여러 가지 동기화 방법들(Synchronized, ReentrantLock, StampedLock 등)을 적용해 보는 시간을 가지고 있었습니다. 사실 이렇게 자바 수준에서 적용하는 Lock들은 결국 단일 프로세스 내에서의..

Spring 2025.08.19

전략 패턴 적용기 + 스프링에서 List로 빈 주입하기

1학기때는 한 주에 글 하나씩 작성하는 걸 목표로 했었는데 앞으로 그렇게까지는 못하지 않을까 싶습니다.소소하게 시작한 프로젝트에서 새로 알게 된 내용들을 정리해 놓으면 좋겠다 싶어서 오랜만에 짧은 글 남기게 되었습니다. 🔍 목차# 00. 배경# 01. 전략 패턴# 02. 전략 패턴 적용기# 03. 팩토리와 함께 사용하기 + List로 빈 주입하기 # 00. 배경 동시성 문제를 해결하는 전략이 다양하게 있습니다. 저는 스프링 애플리케이션 분산 네트워크 환경에서 동시성 문제를 유발하고 jvm락, db락, redis 락 등 다양한 방식으로 해결해 보고 여러 메트릭을 측정하거나 장단점을 비교해 보는 소소한 프로젝트를 시작했는데요.처음에는 각 전략에 대해 요청을 받는 핸들러를 전략 별로 두어야겠다 생각을 했습..

Design Pattern 2025.08.07

"Attention is All You Need" Transformer(트랜스포머) 아키텍처 살펴보기

과제랑 프로젝트랑 시험 준비까지 하면서 조금 바쁘네요...그래서 이번 주는 기말고사 범위에 있는 Transformer 아키텍처에 대해 정리하는 것으로 날먹 한 번 하겠습니다. Transformer는 사실 오늘 작성할 포스트의 챕터 하나하나만 따로 별도의 글로 작성해야 할 정도로 깊고 넓은 분야의 LLM 모델입니다.그런데 이번 포스트에서는 트랜스포머의 자세한 부분까지 구체적으로 뜯어 파헤치기보다는 시험에 나올 정도로만 전반적인 흐름과 구성요소를 살펴보는 느낌으로 알아보겠습니다. 🔍 목차00. Transformer?기존 RNN 기반 모델의 한계Transformer 구성 요소01. Perceptron과 MLPPerceptron?Perceptron으로 푸는 논리게이트와 XORMLP (Multi Layer P..

LLM 2025.06.13

JVM 메모리 구조와 동작 과정 파헤쳐보기!

후다닥 공부한 내용 정리하고 과제 ,시험준비, 다음 주 코테 벼락치기하러 가겠습니다... 🔍 목차00. JVM Overview01. JVM Architecture Class Loader Runtime Data Area Execution Engine JNI (Java Native Interface) & Native Method Library02. Runtime Data Area Method Area Heap Java Stack PC Register Native Method Stack # 00. JVM Overview Java의 등장 이전에 웹 애플리케이션 생태계에서는 문제가 하나 있었습니다.OS나 CPU가 지원하는 스펙에 따라 컴파일 플랫폼에서는 제대로 동작하는 애플리케이션이 타겟 플랫폼에서는 동작하지..

Java 2025.06.04

파이썬의 AOP? 데코레이터에 대해 알아보기 + 데코레이터를 활용해 있어보이게 로깅하기

진행 중인 학교 프로젝트 중 API 호출이나 DB 상호작용 등에 있어서 로그를 남기면 좋겠다고 생각했습니다.프로젝트를 본격적으로 시작하기 전 파이썬에 대해 공부를 할 때 봤던 데코레이터가 생각이 나서 이걸 활용해서 로깅 체계를 구축해 보면 좋지 않을까 해서 다시 한번 데코레이터에 대해 학습하고 직접 적용해 보는 시간을 가졌습니다. 🔍 목차00. Decorator?01. Decorator가 왜 필요할까?02. 데코레이터의 문법기본 문법데코레이터에 매개변수 받기데코레이터 여러 개 지정데코레이터 중복 지정03. 데코레이터로 로깅하기 # 00. Decorator? 파이썬의 데코레이터를 알아가기 전에 decorator의 사전적 의미를 먼저 살펴보겠습니다. decorator1.실내 장식자2.장식하는 사람3.칠·도..

Python 2025.05.28

데이터베이스 I/O와 스캔 메커니즘

학부생인 아는 분이랑 온라인 스터디 같이 하다가 나눈 얘기가 있습니다.그분이 학교 축제에 츄가 왔는데, 츄가 본인을 보면서 환하게 웃어줬다면서 너무 좋아하시는 거예요.거의 뭐 사랑에 빠진 것처럼 푹 빠져있으시길래 제가 얘기해 드렸죠.그거 츄가 님을 인덱스 스캔한 게 아니라 풀 테이블 스캔 하는 중이었는데 마침 님이 그 테이블에 있었던 거라고. 인트로에 쓸 말이 없어서 쓸데없는 얘기 좀 해봤고요.그런 의미에서 이번 포스트에서는 데이터베이스의 I/O 작업과 데이터 스캔 메커니즘에 대해 알아보도록 하겠습니다. 🔍 목차00. 데이터베이스 저장 구조01. Sequential Access vs Random Access02. Single Block I/O vs Multi Block I/O02. Table Full..

Database 2025.05.20