728x90
반응형

1. 동기 와 비동기

Netty 에 대해 공부 해보기 전에 동기와 비동기에 대한 정의를 공부해본다

지금 부터 자바 네트워크 소녀 네티의 책을 읽으면서 학습 하며 주요 내용을 블로그에 기록하려 한다.

 

정의 : 한국 정보통신 기술협회(TTA)의 정보통신 용어사전에 등록된 동기와 비동기에 대한 정의를 살펴보자.

 

동기[통신망]

주기적인 운동을하는 개체들이 서로 영향을 주고받거나 받게 됨으로써, 동일한 주기를 갖게 되는것, 그러한 현상을 동기 현상이라고 하고,

그러한 현상을 동기 현상이라 하고, 동기된 상퇴를 동기화되었다고 한다. 통신에서는 주로 서로 다른 시스템이나 네트워크에서

클럭 주파수나 비트 프레임, 워드 등을 일치시키는 데 사용된다.

 

● 비동기 : 정의 없음 

 

● 비동기식[데이터통신]

송수신 간에 신호를 주고받으며 작업을 수행하는 방식, 비동기식은 시작/정지 방식(start-stop System)과

단계적 시작/정지 방식(stopped start-stop system)이 있다. 시작/정지 방식은 송신하는 각 문자의 전후에 시작 신호와 정지 신호를 붙여

송수신 간의 동기를 취하는 방식이며, 저속 전송에 사용되고 있다. 단계적 시작 정지 방식은 시작 신호와 정지 신호가 일정하게 정해진 간격에서

일어나는 동기 방식이다.


웹서비스의 동기와 비동기

동기식 서비스

서비스 처리가 완료된 이후에 처리 결과를 알 수 있는 방식을 동기식 호출이라고 하며, 특정 메서드나 서비스가 이와 같은 호출 방식을

지원하면 '동기식 호출을 지원한다' 라고 표현한다

이와 같은 동기식 호출은 쉬운 디버깅과, 직관적인 흐름 추적이 가능하다는 장점이 있다.

동기식 호출은 서비스가 종료될 때까지 호출자가 마냥 기다려야 하므로 컴퓨팅 자원을 비효율적으로 사용할 수 밖에 없다.

동기식 서비스

비동기 호출을 지원하는 디자인 패턴은 다양하다.

퓨처패턴(Future Pattern) : 프로미즈 패턴(Promise Pattern)이라 불리우기도 한다.

이벤트 리스너 : 옵저버 패턴

Node.js : 콜백 함수

Netty : 리액션 패턴

 

앞서 알아본 바와 같이 동기와 비동기 호출은 매우 난해한 주제다. 또한 비동기 호출을 위한 코드를 작성할 때 개발자는 수행시간,

프로그램의 구조 등 다양한 고민을 하게 된다. Netty는 비동기 호출을 위한 API들을 프레임워크 레벨에서 제공하므로

개발자가 스레드 동기화 이슈 및 그에 따른 버그를 신경 쓰는 대신 구현할 기능에 집중할 수 있다.ㄱ

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,