Spring에서 이해해야 할 JPA 아키텍처 Notes JPA를 왜 아키텍처 관점에서 봐야 하는가 Spring에서 JPA를 쓴다고 할 때, 실제로는 JPA 명세와 구현체(Hibernate), 그리고 Spring Data JPA가 함께 동작한다. 이 층위를 섞어서 이해하면 “JPA가 해주는 일”과 “Spring이 편의로 제공하는 일”이 뒤엉키기 쉽다. 큰 구조 애플리케이션 코드 Spring D... 2025/04/22 Notes, Spring
데이터베이스 페이징 성능을 어떻게 봐야 하는가 Notes 페이징은 왜 느려지는가 목록 조회에서 페이지네이션은 당연한 기능처럼 보이지만, 데이터가 커질수록 단순 limit offset 방식이 병목이 되기 쉽다. 문제는 DB가 offset = 100000이라고 해서 100000개를 건너뛰는 비용이 공짜가 아니라는 점이다. 보통은 앞 데이터를 훑은 뒤 버리는 식으로 처리되기 때문에 뒤 페이지로 갈수록 느려질 ... 2025/04/22 Notes, Database
캐시 스탬피드(Cache Stampede) Notes 캐시 스탬피드(Cache Stampede)란? 캐시 스탬피드는 많은 요청이 동시에 같은 캐시 키를 조회하는 순간, 그 키가 비어 있거나 만료되어 원본 저장소로 요청이 한꺼번에 몰리는 현상이다. 평소에는 캐시가 흡수하던 부하가 한순간에 DB나 외부 API로 전환되기 때문에, 응답 시간 급증과 장애로 이어지기 쉽다. 아래의 간단한 예시를 통해 발생원인... 2025/04/22 Notes, Cache
CPU부터 CDN까지: 모든 계층에서의 캐싱 Notes 캐싱은 반복적인 계산과 원격 조회 비용을 줄이기 위해 데이터를 더 가까운 위치에 저장하는 기술이다. CPU 내부부터 CDN까지 거의 모든 계층에 등장하며, 계층이 달라도 핵심 질문은 비슷하다. 무엇을 저장할 것인지, 언제 무효화할 것인지, 원본과 얼마나 차이를 허용할 것인지가 중요하다. 1. CPU 캐시 개요: CPU는 메모리에서 데이... 2025/04/22 Notes, Cache
2025-04-22-TIL TIL Today I Learned 인증/인가는 어디에 구현해야 할까? 인증/인가는 어디에 어떻게 구현해야 할까? 쿠폰 발급 시스템 효율적인 쿠폰 발급 시스템 구현을 위한 기술적 접근 쿠폰 발급 시스템 디자인 Today I Interview Redis가 싱글 스레드로 만들어진 이유를 설명해주세요. Redis가 단일 스레드(... 2025/04/22 TIL, 2025-TIL
응집도와 결합도에 관하여: About Cohesion and Coupling Notes 응집도와 결합도를 이야기하기에 앞서, 자주 나오는 “모듈(Module)”이라는 단어가 정확히 어떤 의미인지 정리해보았다. 모듈(Module) 모듈(Module)이란? 모듈은 소프트웨어를 구성하는 기능적 단위 또는 구성 단위로, 관련된 코드(클래스, 함수, 설정 등)를 의미 있게 묶은 단위를 말한다. In computer software... 2025/04/21 Archive, Programming
2025-04-21-TIL TIL Today I Learned Today I Interview Q. 응집도와 결합도에 대해서 설명해주세요. 응집도(Cohesion)는 모듈에 포함된 내부 요소들이 연관되어 있는 정도를 나타냅니다. 결합도(Coupling)는 의존성의 정도를 나타내며, 다른 모듈에 대해 얼마나 많은 지식을 갖고 있는지를 나타냅니다. 응집도와 결합도는 변경과... 2025/04/21 TIL, 2025-TIL
2025-04-18-TIL TIL Today I Learned 오늘은 토스증권에 지원했다. 이력서는 토스코어에 지원한 내용과 거의 동일하다. 대규모 채용이라서 6개월 이내에 한 번 더 지원할 수 있다는 내용을 보고 지원을 결심하게 되었다. 🙏 캐시는 캐시로만 사용하자 Caching: What may go wrong? Today I Interview CAP 정리에 대해서... 2025/04/18 TIL, 2025-TIL
Java 진화의 두 축 JEP vs JSR Notes Java 진화의 두 축: JEP vs JSR Java 플랫폼은 수십 년 동안 지속적으로 발전해왔고, 그 변화의 흐름을 이끄는 두 가지 핵심 제안 시스템이 있다. 바로 JEP (JDK Enhancement Proposal) 과 JSR (Java Specification Request) 이다. 이 글에서는 두 시스템의 차이점, 유래, 넘버링 체계까지 명... 2025/04/17 Archive, Java
Jakarta EE 기업용 Java의 진화 Notes ☕ Jakarta EE: 기업용 Java의 진화 Jakarta EE는 단순히 Java EE의 새로운 이름 그 이상이다. Jakarta EE는 기업용 Java 기술의 차세대 플랫폼이며, Java 생태계의 역사, 오픈소스 전환, 그리고 기술적 혁신의 상징이다. 아래에서 Jakarta EE의 역사, 구성, 차이점, 실무 적용까지 체계적으로 설명한다. ... 2025/04/17 Archive, Java