gen_server 2

[Erlang OTP]서버 만드는 법 (feat. gen_server)

?gen_server gen_server(generic server, 제네릭 서버)는 서버 템플릿같은 것으로, 클라이언트-서버 모델에서 서버 측 기능을 지원하는 인터페이스 함수를 제공한다. gen_server에 미리 정의된 모든 인터페이스 함수는 각각 매칭되는 callback 함수를 가지고 있으며, 이 부분이 바로 사용자가 필요한대로 작성하게 되는 곳이다. ?죽지 않는 서버 callback 함수가 실패하거나 올바른 값을 리턴하지 않으면 제네릭 서버 프로세스는 종료된다, 즉 서버가 죽는다. 그래서 제네릭 서버 프로세스가 죽으면 제네릭 서버의 모든 모듈을 사용할 수 없다. 서버를 안죽이려면 어떻게 해야 하는가? 물론 코드를 잘 짜서 콜백함수가 실패할 일이 없도록 예외처리를 꼼꼼히 하는 방법도 있지만, 예측하..

IT 2018.06.01

Standard Erlang OTP behaviors

Erlang을 사용하면서 가장 편리하다고 느꼈던 부분은 OTP behavior다. behavior는 공통적인 행위 패턴들을 형식으로 만들어 놓은 것인데, behavior 모듈과 callback 모듈로 나뉜다. behavior 모듈의 경우 Erlang OTP에서 제공하는 부분인데 무정지, 동적 코드 갱신 같은 기능도 있어서 이런 부분에 대한 구현은 신경쓰지 않고 callback 모듈만 만들면 된다는 점이 좋은 것 같다. gen_servergen_statemgen_eventsupervisor 간단하게 살펴 보면 대략 아래와 같은 행동을 수행한다.gen_server : 서버-클라이언트에서 서버 구현. gen_statem : state machine.gen_event : 이벤트 처리.supervisor : su..

IT 2018.05.31
반응형