동기(Synchronous) 통신
1) 개념
2) 흐름 예시
- 클라이언트가 서버에 HTTP 통신을 보냄
- 서버가 요청을 처리하는 동안, 클라이언트는 결과가 올 때까지 대기
- 결과가 도착하면 그 때 다음 작업 진행
3) 특징
- 코드 흐름이 위에서 아래로 직관적으로 이해하기 쉬움
- 하지만 응답 시간이 길어지면, 그만큼 계속 기다려야 함
- 서버 : 느린 IO(외부API, DB 쿼리 등)를 기다리는 동안 스레드가 묶임
- 클라이언트 : 페이지가 멈춘 것처럼 느낌
4) 장단점
장점
- 구현이 쉽고, 디버깅이 단순
- 순차 로직 표현이 직관적(처리 순서 이해가 쉬움)
단점
- 오래 걸리는 작업이 있으면 전체 흐름이 블로킹
- 동시에 많은 요청을 처리하기 불리(스레드 낭비)
5) 예시