- JVM은 유저 모드 어플리케이션 프로세스이며, IO 수행의 주체다. 💾
- IO 대상은 파일이며, CRUD 또는 읽기/쓰기/실행 작업이 가능하다. 📁
- 블로킹 IO는 API 호출 후 리턴될 때까지 프로그램 흐름이 멈추는 현상이다. 🚫
- 멀티쓰레드를 사용하여 블로킹 IO 문제를 해결할 수 있지만, 더 진보된 개념은 넌블로킹 IO다. 🧵
- 넌블로킹 IO는 OS 레벨에서 지원을 받아 성능 향상을 기대할 수 있다. 🚀
- 넌블로킹 IO는 쓰레드 하나로 여러 IO를 동시에 처리하여 스위칭 오버헤드를 줄인다. 🧵⬇️
- 넌블로킹 IO는 시점 인지가 어렵고 로직이 복잡해지는 단점이 있다. 🕰️
- 서버 개발 시 고성능을 위해 넌블로킹 IO 개념이 필수적이다. 🌐