모르는 상태에서 오픈하냐 말것인가 그것이 문제로다 ㅠ.ㅠ

emptynote의 이미지

데이터 송수신 세상은 참으로 오묘하네요.

웹에서 echo 메시지 페이지 요청하면

발로 짜서 로컬 연결임에도 불구하고

에코 메시지에 대한 속도가 0 milliseconds 가 안나온다고 위로(?) 하고 있지만

도스창(?) 열고 쓰레드 3개쯤 열어 무한 루프로 지속적으로 요청을 하면 이게 왠일로 200 ~ 350 microseconds 가 나오고 그 상태에서 다시 웹에서 echo 메시지 페이지 요청하면 응답 속도가 대략 600 microseconds 가 나오니

기가 막히고 코가 막히네요.

쓰레드가 잠들었다가 깨어나는것 없이 쉬지 않고 계속 일하기 때문이라고 추정을 하지만

어디까지나 제 생각일뿐 진실은 잘 모르겠습니다.

왜? 이런건지 모르는 상태로 오픈해도 될지 고민이 됩니다.

Hodong Kim@Google의 이미지

오픈하냐 안 하냐 그게 중요한게 아닙니다.
a 값이 나오길 예상했는데 b 값이 나오면 그 원인을 파악하는 것이 중요합니다.
스레드 생성/삭제 무한루프를 돌리면 결과가 그렇게 나올 수도 있죠.
웹 페이지 생성 소요 시간도 고려해야할 것이고,

예를 들어, 동기 통신을 하면, A는 클라이언트, B는 서버.
t1: A --> B
t2: B 가 웹 페이지 생성하는 시간
t3: B --> A

T = t1 + t2 + t3

동기 통신일 때, A 는 T 시간 동안 블럭됩니다. 그래서 클라이언트 본체에서 A 를 스레드로 돌리는 방법도 고려할 수 있고, 네트워크 지연을 감안하면 비동기 통신이 유리할 것 같고, 상황에 따라 동기/비동기 섞어쓰면 좋겠네요.

B는 요청을 받으면 스레드 생성하여 처리하거나 포크를 하는 등 여러 방법이 있을 것입니다.
메시지 큐도 활용도 검토해 볼 수 있겠네요.

비동기, 스레드 도입하면 메시지 순서가 뒤바뀌는 일이 발생할 수 있습니다.
메시지에 시간을 찍어서(timestamp) 재정렬하는 방법도 고려해야 할 것입니다.

호기심을 자극하는 굉장히 재미있는 주제인데, 머리카락 빠질까봐 저는 사양합니다.