세마포어에서 서버까지: 논블로킹 패러다임과 Redis의 기원
·
CS
서론현대 소프트웨어 아키텍처의 핵심에는 동시성과 데이터 처리라는 두 가지 근본적인 과제가 자리 잡고 있다. 초당 수백만 건의 요청을 처리하는 웹 서버부터 실시간 데이터 분석 플랫폼에 이르기까지, 효율적인 시스템 설계는 프로세스가 서로 상호작용하고 입출력(I/O) 작업을 처리하는 방식을 어떻게 모델링하느냐에 달려 있다.본 글에서는 블로킹/논블로킹 및 동기/비동기 개념에 대해 분석하고, 그것이 실제 시스템에서 어떻게 적용·발전되어 왔는지 정리해보려 한다.먼저, 두 가지 핵심 질문에서 출발했다.블로킹과 논블로킹, 동기와 비동기라는 개념은 어떤 배경에서 탄생했는가?오늘날 널리 쓰이는 Redis는 어떤 원리로 동작하고, 왜 이런 아키텍처를 택했는가?겉으로는 동떨어져 보일 수 있지만, 논블로킹 처리의 뿌리를 뒤지다..
[CS] 자바 메모리 구조: 스택(Stack)과 힙(Heap)
·
CS
📌 서론프로그래밍을 공부하다 보면 자주 마주치는 '스택'과 '힙'이라는 용어들. 한 번쯤은 들어봤을 이 두 메모리 영역에 대해 자세히 알아보겠습니다. 비전공자도 쉽게 이해할 수 있도록 실생활의 예시와 함께 설명해드리겠습니다. (비유이기 때문에 100% 일치하지 않을 수도 있습니다. 참고만 해주세요!)💡 본론1. 메모리 구조 개요JVM(Java Virtual Machine)의 메모리는 크게 스택(Stack)과 힙(Heap) 영역으로 나눌 수 있습니다. 이를 실생활에 비유하자면 다음과 같습니다스택(Stack): 사무실의 책상당장 필요한 물건들을 올려두고 작업공간이 제한적빠르게 접근 가능힙(Heap): 창고큰 물건들을 보관상대적으로 큰 공간찾는데 시간이 좀 더 걸림2. 스택(Stack) 메모리 심층 분석특..