전체 글96 운영체제 - 가상 메모리 가상 메모리(Virtual Memory)란?실제 물리 메모리 개념과 사용자의 논리 메모리 개념을 분리한 것이다. 메모리의 공간은 한정적이므로 사용자에게 더 많은 메모리를 제공하기 위해 가상 주소를 사용한다. 메모리 관리 장치는 가상 주소를 이용해 실제 데이터가 담겨 있는 주소로 변환해 준다. 여기서 가상 주소 공간은 하나의 프로세스가 메모리에 저장되는 논리적인 모습을 가상 메모리에 구현한 공간이며, 가상 주소는 해당 공간을 가리키는 주소이다. 가상 메모리가 필요한 이유1. 물리 메모리의 한계모든 프로그램 코드를 물리 메모리에 올릴 수가 없다.그렇다고, 프로그램을 교체하면서 올리면 메모리 교체 성능 문제가 발생한다.2. 가상 메모리의 장점프로그램 용량이 실제 물리 메모리보다 커도 된다.전체 프로그램이 물리.. 2025. 3. 17. [Spring boot] Refresh Token을 Redis에 저장하는 이유 1. 들어가며현대 웹 애플리케이션에서는 사용자 인증과 인가가 매우 중요합니다. 특히, 무상태(stateless) 방식의 인증 시스템이 선호됨에 따라 JWT(Json Web Token)가 널리 사용되고 있습니다. 그러나 JWT의 특성상 토큰이 만료되기 전까지는 강제로 무효화할 수 없다는 단점이 존재합니다. 이를 보완하기 위해 많은 시스템이 Refresh Token을 사용하여 사용자 세션을 효율적으로 관리하고 있습니다.일반적으로 Refresh Token은 지속성이 보장되는 데이터 저장소, 즉 디스크 기반의 데이터베이스에 저장하는 방식이 흔히 사용됩니다. 하지만 데이터베이스는 동시성 제어와 높은 읽기/쓰기 트래픽 처리에 한계가 있어, 성능과 확장성 면에서 문제가 발생할 수 있습니다.이러한 문제를 해결하기 위해.. 2025. 3. 14. [Spring boot] filter와 interceptor 1. 들어가며Spring 기반의 웹 애플리케이션을 개발하다 보면 요청과 응답을 가로채 특정 로직을 수행해야 하는 경우가 많습니다. 이러한 역할을 수행하는 대표적인 기능이 Filter와 Interceptor입니다.이번 프로젝트를 진행할 때, 로그인 인증 부분을 개발하면서 Filter를 사용하게 되었습니다. 하지만 공부하는 도중 Filter와 Interceptor의 차이가 무엇이며, 어떤 상황에서 사용해야 하는지 궁금하여 블로그를 작성하게 되었습니다.이 글에서는 Filter와 Interceptor의 개념과 차이점을 정리하고, 각각 언제 사용해야 하는지에 대해 알아보겠습니다. 2. Filter와 Interceptor의 개념과 동작 방식Spring 웹 애플리케이션에서 클라이언트의 요청을 가로채는 대표적인 방법은.. 2025. 3. 14. 운영체제 - 동기화와 교착상태 들어가며운영체제(OS)에서 동기화(Synchronization)와 교착상태(Deadlock)는 멀티태스킹 환경에서 중요한 개념이다. 특히, 여러 프로세스나 스레드가 한정된 자원을 공유할 때 발생할 수 있는 문제들을 해결하기 위해 필수적으로 고려해야 한다. 이번 글에서는 동기화의 개념과 필요성, 교착상태의 원인과 해결 방안을 살펴보겠다.1. 동기화(Synchronization)동기화란?동기화(Synchronization)란 여러 개의 프로세스 또는 스레드가 동시에 실행될 때, 공유 자원에 대한 접근을 조정하여 일관성을 유지하는 기법을 의미한다. 이를 통해 데이터의 무결성을 보장하고 경쟁 상태(Race Condition)로 인한 오류를 방지할 수 있다.동기화가 필요한 이유운영체제에서 여러 개의 프로세스나 스.. 2025. 3. 14. 도커 이미지 만들기 1. 도커 이미지 살펴보기> docker image 내려받기docker image pull [내려받을 이미지의 이름]ex) docker image pull diamol/ch03-web-ping이미지 이름 : diamol/ch03-web-ping이 이미지는 도커가 가장 먼저 이미지를 찾기 위해 접근하는 저장소인 도커 허브에 저장되어 있음도커 허브는 무료로 제공되는 공개 레지스트리 레지스트리(registry) : 이미지를 제공하는 저장소 docker image도커 이미지는 논리적으로는 하나의 대상이다.애플맄이션 스택 전체가 하나의 파일로 압축된 압축 파일을 생각하면 쉽게 이해할 수 있다.이미지를 내려받는 과정을 보면 여러 파일을 동시에 내려받는다.이들 각각의 파일을 레이러라고 부른다.도커가 이들 파일을 조립.. 2025. 3. 13. 운영체제 - CPU 스케줄링 CPU 스케줄링이란?CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당한다. 다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는데 있다. 어떤 프로세스가 대기해야 할 경우, 운영체제는 CPU를 그 프로세스로부터 회수해 다른 프로세스에 할당한다. 즉, CPU 이용률을 최대화 하는 것은 다중 프로세서 운영체제 설계의 핵심이다. CPU - I/O 버스트 사이클 (CPU - I/O Burst Cycle)프로세스 실행은 CPU 실행과 I/O 대기의 사이클로 구성된다.프로세스의 실행은 CPU Burst로 시작된다. 뒤이어 I/O Burst가 발생하고, 그 뒤를 이어 또 다른 CPU Burst가 발생하며, 이어 또 다.. 2025. 3. 10. 이전 1 2 3 4 5 ··· 16 다음