앵간해진코드
ㄷㅓ 좋은 코드를 만드는 거보다 우선 구동이 되어야 좋은거 아니나요.
구동만 되면 안되고 앵간이 앵기는 부하테스트를 버텨내어야 해요. 비동기 프로그램을 작성하면서 이케이케 뚫어보면 데드락이 아니었다 하더라도 대기열이 폭발하여서 망하는 경우가 있어쩌. 1년 전에 서버 개발에 계속 터졌었는데 http3 실험적 기능에서 생기는 페이지 한도 오버플로 였었나 몰라요.
다른 모델에 의존하는 프로그램은 불안하여서 강박증이 생겨버려쩌. 앵간이 다시 살펴보아서 적당이 이유 없음 순수 구현 코드를 사용해요.
이번 1달 이내에 nio2 모델에 간을 볼거 같은데 이거는 구현에 따라서 구조가 앵간한거 아나요.

(위에 플립플롭 구조 위키백과에서 떼옴)
일반적으로 프록시 서버를 예시로 들면 I받음 → 보냄 O 받음 → 보냄 단순한 구조이어서 완료콜백 로직을 위에처럼 크로스 하면 되어요. (이럼 단일 스레드에서 앵간이 되는데 사실 nio2는 메인 스레드에서 콜을 치면 예외가 나요.)
위에 단순한 콜백 모델은 단편적인 처리를 하는데 에는 이상적인 모델 이었지만 http2 등장으로 단일 링크에서 여럿 채널을 운영하면서 난리가 나쩌. 자바쪽 모듈은 앵간이 전멸 이럼 C언어로 되어진 nghttp2 모듈에 의존하거나 (스레드) 상호 베제 모델로 동기화된 기록을 하여야 코드가 짧아져요. 안그럼 위에서 보는 큐폭발을 방어하지 못해요.
동기화된 스레드 상호 배제가 없었다 하더라도 사실 채널에 커널이 수신한 데이터 량만 표기하였어도 다른 의미로 라운드 로빈 같은 구조를 사용하여서 여럿 채널을 순차적으로 읽고 읽지 말아야 하는 애는 걍(그냥) 제껴요. 읽을 데이터가 0인 채널을 읽어버리면 완료 콜백이 나지 않아서 잘못되면 영구적으로 어플이 다운되어 망해요.
자바 진영에 시스템 개발자는 이케 소신이 없음 쓰나요. 오라클에 먹히면서 망한 처지가 되어서 이런데 자바나 mysql 이나 개발자들 사이에서도 이케이케 앵간이 많은 지적이 있어요. (만일 안드로이드가 자바가 아니고 c#으로 기반을 하였음 뒤가 구린 돈을 받고 100 배에 성장을 이루거 아나요)
그냥저냥 안드로이드 (따위는) 상호배제 모델으로 만족 .. ㅠ
문득 시스템 개발에 자신이 있음 운영체제 개발을 하면 될거여요. 누가 써주거나 많은 컴퓨터 모델을 어뜨케 감당을 하느냐는 문제를 어뜨케 하여야 하는지 몰랐어쩌. (오늘 아침이었나 ..) 이거는 집에서 사용하는 라우터 같은 거를 만드는데 의존성이 없는 순수 구현 소프트웨어를 사용하면 되는 거였어요. 크기가 심하게 큰 디바이스가 아니어서 이정도는 혼자서도 감당이 되는 거이고 이케 좋은 ai도 널려서 h100을 구한다면 머라도 이루어지는지도 몰라요. 이케하면 호출 스택 규격처럼 하드웨어 설계 단계에서 전례를 모두 틀어서 아무렇게 하여도 되어요. (너무 지나치나 ..)
