콜백(callback)
0. 콜백(callback)의 탄생 배경 콜백(callback)은 “코드를 나중에 실행하기 위해 전달하는 기술”로, 함수형 프로그래밍과 비동기 프로그래밍의 핵심 요소이다. 콜백은 단순히 기술적인 편의성을 넘어서 제어 흐름을 위임하고 추상화하기 위한 패러다임에서 출발했다. 0.1. 콜백의 탄생 배경 프로그래밍의 구조적 진화 흐름 속에서 등장 ...
0. 콜백(callback)의 탄생 배경 콜백(callback)은 “코드를 나중에 실행하기 위해 전달하는 기술”로, 함수형 프로그래밍과 비동기 프로그래밍의 핵심 요소이다. 콜백은 단순히 기술적인 편의성을 넘어서 제어 흐름을 위임하고 추상화하기 위한 패러다임에서 출발했다. 0.1. 콜백의 탄생 배경 프로그래밍의 구조적 진화 흐름 속에서 등장 ...
1. 백엔드는 왜 중요한가? 웹 사이트나 앱에서 버튼을 클릭했을 때 어떤 일이 일어날까? 화면에는 무언가가 나타나지만, 그 이면에는 수많은 처리 과정이 있다. 버튼에 의해 요청되는 데이터를 수신하고, DB에 저장하며 필요한 데이터를 응답하는 일련의 과정이 백엔드 시스템에서 동작한다. 바로 그 보이지 않는 세계를 설계하고 책임지는 존재가 백엔드다. ...
캐시 스탬피드(Cache Stampede)란? 캐시 스탬피드(Cache Stampede)는 다수의 요청이 동시에 캐시 미스(Cache Miss)를 발생시키면서, 백엔드(예: DB, 외부 API 등)에 부하가 집중되는 현상을 말한다. 캐시가 만료된 후 같은 데이터를 요청하는 다수의 클라이언트가 모두 캐시를 우회해서 원본 소스로 요청하게 되면, 시스템에...
캐싱(Caching)은 데이터 요청 시 반복적인 연산을 줄이고 응답 속도를 높이기 위해 데이터를 미리 저장해 두는 기술이다. 이는 시스템의 모든 계층에서 활용될 수 있으며, 캐싱 전략이나 문제 해결전략의 컨셉이 대부분 비슷한 방식을 따른다. 따라서 낮은 단계에서부터 캐싱의 원리와 전략을 잘 이해하는 것이 중요하다. 1. CPU 캐시 개요: ...
Today I Learned 인증/인가는 어디에 구현해야 할까? 인증/인가는 어디에 어떻게 구현해야 할까? 쿠폰 발급 시스템 효율적인 쿠폰 발급 시스템 구현을 위한 기술적 접근 쿠폰 발급 시스템 디자인 Today I Interview Redis가 싱글 스레드로 만들어진 이유를 설명해주세요. Redis가 단일 스레드(...
응집도와 결합도를 이야기하기에 앞서, 자주 나오는 “모듈(Module)”이라는 단어가 정확히 어떤 의미인지 정리해보았다. 모듈(Module) 모듈(Module)이란? 모듈은 소프트웨어를 구성하는 기능적 단위 또는 구성 단위로, 관련된 코드(클래스, 함수, 설정 등)를 의미 있게 묶은 단위를 말한다. In computer software...
Today I Learned Today I Interview Q. 응집도와 결합도에 대해서 설명해주세요. 응집도(Cohesion)는 모듈에 포함된 내부 요소들이 연관되어 있는 정도를 나타냅니다. 결합도(Coupling)는 의존성의 정도를 나타내며, 다른 모듈에 대해 얼마나 많은 지식을 갖고 있는지를 나타냅니다. 응집도와 결합도는 변경과...
Today I Learned 오늘은 토스증권에 지원했다. 이력서는 토스코어에 지원한 내용과 거의 동일하다. 대규모 채용이라서 6개월 이내에 한 번 더 지원할 수 있다는 내용을 보고 지원을 결심하게 되었다. 🙏 캐시는 캐시로만 사용하자 Caching: What may go wrong? Today I Interview CAP 정리에 대해서...
Java 진화의 두 축: JEP vs JSR Java 플랫폼은 수십 년 동안 지속적으로 발전해왔고, 그 변화의 흐름을 이끄는 두 가지 핵심 제안 시스템이 있다. 바로 JEP (JDK Enhancement Proposal) 과 JSR (Java Specification Request) 이다. 이 글에서는 두 시스템의 차이점, 유래, 넘버링 체계까지 명...
☕ Jakarta EE: 기업용 Java의 진화 Jakarta EE는 단순히 Java EE의 새로운 이름 그 이상이다. Jakarta EE는 기업용 Java 기술의 차세대 플랫폼이며, Java 생태계의 역사, 오픈소스 전환, 그리고 기술적 혁신의 상징이다. 아래에서 Jakarta EE의 역사, 구성, 차이점, 실무 적용까지 체계적으로 설명한다. ...