
서론 교착상태란 두 개 이상의 프로세스 또는 스레드가 상대방의 작업이 끝나길 하염없이 기다리고만 있는 상태를 말합니다. 예를 들면 두 기차가 교차로에 진입했을 때, 두 기차 중 하나의 기차가 지나가는 게 아닌 일단 두 기차 모두 정지하고 상대방이 없어지길 기다린 후 기차가 지나가는 것입니다. 이 예를 보면 기차가 둘 다 정지했는데 어떻게 상대방이 없어지길 기다리고 내가 지나갈 수 있는거지? 라는 생각이 들 것입니다. 이게 바로 교착상태입니다. 앞서 말했듯이 교착상태란 상대방의 작업이 끝나길 하염없이 기다리는데, 상대방 또한 내가 끝나길 하염없이 기다릴 테니 아무런 행동 조차할 수 없는 것이죠 교착상태는 어떤 조건하에 발생하는가? 교착상태는 상호배제, 점유대기, 비선점, 순환 대기 이러한 4가지 조건이 모..

서론 멀티 프로세스 애플리케이션 환경에서 여러 스레드가 한정된 자원을 사용하려고 서로 경쟁할 수 있습니다. 한 스레드가 자원을 요청했을 때, 그 시각에 그 자원을 사용할 수 없는 상황이 발생할 수 있고, 해당 스레드는 대기 상태로 들어가게 됩니다. 이처럼 대기중인 스레드들이 다시는 그 상태를 변경시킬 수 없으면 이런 상황을 교착 상태라 부릅니다. 스레드는 한정된 자원을 사용하기 위해서는 반드시 자원을 요청해야하고, 사용 후에는 반드시 방출해야 합니다. 스레드는 한정된 task를 수행하기 위해 필요한 만큼의 자원을 요청할 수 있습니다. 명백히 스레드가 요청한 자원의 수는 시스템에서 사용 가능한 전체 자원의 수를 초과할 수 없습니다. 세마포어에서 자원의 획득과 방출은 wait, signal 연산을 통해, 그..

서론 HTTP 프로토콜이 배달원이라면 HTTP 메시지는 배달원이 배송하는 소포와 같습니다. 이번 장에서는 메시지가 어떻게 흘러가는지와 HTTP 메시지의 구성 요소, 요청 메시지와 응답 메시지의 차이를 살펴보겠습니다. 메시지의 흐름 메시지는 클라이언트, 프록시, 서버 사이를 흐릅니다. 인바운드, 아웃바운드, 업스트림, 다운스트림은 메시지의 방향을 의미하는 용어입니다. 💡 인바운드 클라이언트의 요청이 서버로 진입하는 것을 말합니다. 우리가 서버에 파일이나 이미지를 저장할 때, 업스트림이라고도 합니다. 💡 아웃바운드 클라이언트의 요청을 서버가 처리하고 , 메시지를 서버에서 클라이언트로 보내는 것을 말합니다. 우리가 서버로부터 파일이나 이미지를 다운로드 받을 때, 다운 스트림이라고도 할 수 있습니다. 메시지의 ..

협력적 프로세스는 시스템 내에서 다른 프로세스와 협력하여 서로의 프로세스에 영향을 주거나 영향을 받는 프로세스입니다. 협력적 프로세스는 논리 주소 공간(코드나 데이터)을 공유하거나 공유 메모리 또는 메시지 전달을 통해서만 데이터를 공유할 수 있는데 이러한 공유 데이터를 공유하게 되면 데이터 일관성이 깨질 수 있습니다. 그렇기 때문에 우리는 어떻게 공유 데이터에 대해 일관성을 보장할 수 있는지 살펴보겠습니다. Race Condition이란 우선 공유 데이터를 공유하면 어떻게 데이터 일관성이 깨질 수 있는지 파악해야합니다. 파악하기 위해서는 race condition(경쟁 상태)에 대해 간략하게 알 필요성이 있습니다. race condition이란 두 개 이상의 프로세스 또는 스레드가 하나의 리소스에 대해 ..
- Total
- Today
- Yesterday
- java ThreadLocal
- spring boot redisson destributed lock
- pipe and filter architecture
- 람다 표현식
- redis sorted set으로 대기열 구현
- spring boot excel download paging
- 서비스 기반 아키텍처
- polling publisher spring boot
- 레이어드 아키텍처란
- 자바 백엔드 개발자 추천 도서
- JDK Dynamic Proxy와 CGLIB의 차이
- spring boot poi excel download
- redis 대기열 구현
- redis sorted set
- space based architecture
- service based architecture
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- spring boot redisson 분산락 구현
- spring boot 엑셀 다운로드
- spring boot redisson sorted set
- spring boot redis 대기열 구현
- 공간 기반 아키텍처
- spring boot excel download oom
- pipeline architecture
- @ControllerAdvice
- microkernel architecture
- java userThread와 DaemonThread
- transactional outbox pattern
- transactional outbox pattern spring boot
- 트랜잭셔널 아웃박스 패턴 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |