서론 멀티 프로세스 애플리케이션 환경에서 여러 스레드가 한정된 자원을 사용하려고 서로 경쟁할 수 있습니다. 한 스레드가 자원을 요청했을 때, 그 시각에 그 자원을 사용할 수 없는 상황이 발생할 수 있고, 해당 스레드는 대기 상태로 들어가게 됩니다. 이처럼 대기중인 스레드들이 다시는 그 상태를 변경시킬 수 없으면 이런 상황을 교착 상태라 부릅니다. 스레드는 한정된 자원을 사용하기 위해서는 반드시 자원을 요청해야하고, 사용 후에는 반드시 방출해야 합니다. 스레드는 한정된 task를 수행하기 위해 필요한 만큼의 자원을 요청할 수 있습니다. 명백히 스레드가 요청한 자원의 수는 시스템에서 사용 가능한 전체 자원의 수를 초과할 수 없습니다. 세마포어에서 자원의 획득과 방출은 wait, signal 연산을 통해, 그..
서론 HTTP 프로토콜이 배달원이라면 HTTP 메시지는 배달원이 배송하는 소포와 같습니다. 이번 장에서는 메시지가 어떻게 흘러가는지와 HTTP 메시지의 구성 요소, 요청 메시지와 응답 메시지의 차이를 살펴보겠습니다. 메시지의 흐름 메시지는 클라이언트, 프록시, 서버 사이를 흐릅니다. 인바운드, 아웃바운드, 업스트림, 다운스트림은 메시지의 방향을 의미하는 용어입니다. 💡 인바운드 클라이언트의 요청이 서버로 진입하는 것을 말합니다. 우리가 서버에 파일이나 이미지를 저장할 때, 업스트림이라고도 합니다. 💡 아웃바운드 클라이언트의 요청을 서버가 처리하고 , 메시지를 서버에서 클라이언트로 보내는 것을 말합니다. 우리가 서버로부터 파일이나 이미지를 다운로드 받을 때, 다운 스트림이라고도 할 수 있습니다. 메시지의 ..
협력적 프로세스는 시스템 내에서 다른 프로세스와 협력하여 서로의 프로세스에 영향을 주거나 영향을 받는 프로세스입니다. 협력적 프로세스는 논리 주소 공간(코드나 데이터)을 공유하거나 공유 메모리 또는 메시지 전달을 통해서만 데이터를 공유할 수 있는데 이러한 공유 데이터를 공유하게 되면 데이터 일관성이 깨질 수 있습니다. 그렇기 때문에 우리는 어떻게 공유 데이터에 대해 일관성을 보장할 수 있는지 살펴보겠습니다. Race Condition이란 우선 공유 데이터를 공유하면 어떻게 데이터 일관성이 깨질 수 있는지 파악해야합니다. 파악하기 위해서는 race condition(경쟁 상태)에 대해 간략하게 알 필요성이 있습니다. race condition이란 두 개 이상의 프로세스 또는 스레드가 하나의 리소스에 대해 ..
URL 문법 URL을 사용하여 인터넷 상의 모든 리소스를 찾을 수 있지만 리소스들은 scheme마다 접근 방법이 다릅니다. 💡 scheme scheme은 리소스를 가져오려면 어떤 프로토콜을 사용해서 서버에 접근해야 하는지 알려주는 중요한 정보입니다. scheme은 알파벳으로 시작해야합니다. 💡 사용자 이름과 비밀번호 몇몇의 scheme은 리소스에 접근하기 위해 사용자 이름을 필요로 합니다. 💡 호스트와 포트 호스트는 접근하려고 하는 리소스를 가진 인터넷상의 호스트 장비를 말합니다.(도메인명이나 IP주소) 포트는 서버가 열어놓은 네트워크 포트를 말합니다. 💡 경로 URL의 경로는 얻고자 하는 리소스가 서버의 어느 위치에 존재하는지 알려줍니다. HTTP URL에서 경로는 '/' 문자를 기준으로 나뉩니다. 💡..
- Total
- Today
- Yesterday
- spring boot 엑셀 다운로드
- 자바 백엔드 개발자 추천 도서
- spring boot redisson sorted set
- pipe and filter architecture
- spring boot excel download oom
- microkernel architecture
- redis sorted set
- 람다 표현식
- 서비스 기반 아키텍처
- space based architecture
- 공간 기반 아키텍처
- @ControllerAdvice
- java ThreadLocal
- spring boot poi excel download
- java userThread와 DaemonThread
- service based architecture
- spring boot excel download paging
- JDK Dynamic Proxy와 CGLIB의 차이
- transactional outbox pattern spring boot
- polling publisher spring boot
- spring boot redis 대기열 구현
- pipeline architecture
- spring boot redisson destributed lock
- spring boot redisson 분산락 구현
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- transactional outbox pattern
- redis 대기열 구현
- 레이어드 아키텍처란
- 트랜잭셔널 아웃박스 패턴 스프링부트
- redis sorted set으로 대기열 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |