목록전체 글 (185)
hmk run dev
polling 클라이언트가 평범한 http request를 서버로 계속 날려서 이벤트 내용을 전달받는 방식이다. 가장 쉬운방법이지만 클라이언트가 계속적으로 request를 날리기때문에 클라이언가 많아지면 서버의 부담이 급증하게 된다. http request connection을 맺고 끊는것 자체가 부담이 많은 방식이다. 그리고 클라이언트에서 실시간정도의 빠른 응답을 기대하기도 어렵다. polling은 http 오버헤드가 발생한다는 단점이 있다. 하지만 일정하게 갱신되는 서버 데이터의 경우 유용하게 사용할 수 있는 방식이다. (ex. 대시보드 갱신) SocketSSE(Server-Sent-Event) Socket SSE 브라우저 지원 대부분 브라우저에서 지원 대부분 모던 브라우저 지원(polyfills 가..
교착 상태 해결 - 예방 - 회피 - 검출 후 회복 교착 상태 예방 참고로, 교착 상태 조건 중 하나라도 충족되지 않는다면 교착상태는 절대로 발생하지 않는다. - 애초에 교착 상태가 발생하지 않도록 예방 - 교착 상태 발생 조건(상호 배제, 점유와 대기, 비선점, 원행 대기) 중 하나를 없애버리기 상호배제 없애기 모든 자원을 공유 가능하게 만든다? => 이론적으로 가능하지만 현실적인 해결법은 아니다. 점유와 대기 없애기(자원을 할당받은 상태에서 자원을 대기하는 것) 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분 => 자원의 활용률을 낮출 수 있는 방식 비선점 조건을 없애기 선점이 가능한 자원(e.g CPU)에 한해 효과적 => 모든 자원이 선점 가능한 것은 아니다. (한 프..
프로세스가 실행이 되려면 자원이 필요합니다 두 개 이상의 프로세스가 각자 갖고 있는 자원들을 그저 기다리기만 한다면, 그 어떤 프로세스도 실행되지 못하고 이를 교착상태라고 합니다. 식사하는 철학자 문제로 엿보는 교착상태 보이는 것처럼 원형 식탁에 다섯 명의 철학자가 앉아 있고 철학자 앞에는 음식과 포크가 있습니다. 음식을 먹으려면 꼭 2개의 포크가 필요합니다. 모든 철학자들이 동시에 위와 같은 순서로 식사를 한다면, 모든 철학자들이 식사를 하지 못하게 된다. 이런 식으로 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상을 "교착상태"라고 합니다. 여기서 철학자는 프로세스고 포크는 실행에 꼭 필요한 자원 식사는 자원을 이용함 => 실행에 빗댈 수 있습니다. 서로가 점거하고 있는 자원을 서로가 기다리면..