## 학습 목표
Erlang에서 프로세스 감시 체계를 구축하고, 오류 발생 시 자동 복구 로직을 개발할 수 있는 실무 능력을 갖추는 것이 목표입니다. 특히 'DOWN' 메시지 처리와 try/catch 블록 활용법을 익히게 됩니다.
## 준비사항
- Erlang/OTP 환경 설정 (erlang.org에서 설치)
- 에디터: VS Code(Erlang 확장) 또는 Emacs
- 기본 지식: 함수형 프로그래밍, 모듈 구조 이해
## 단계별 진행
### 1단계: 기초 설정
Elixir CLI를 통한 기본 환경 구성 및 테스트 프로세스 생성
### 2단계: 핵심 구현
감시자(스프라우퍼)와 피감시자(워커) 간 관계 설정 및 메시지 처리 로직 구현
### 3단계: 고급 기능
다중 감시 트리 구성과 오류 유형별 분기 처리 로직 개발
### 4단계: 완성 및 테스트
실제 시나리오에서 프로세스 죽음 시 자동 복구를 검증하는 통합 테스트
## 다음 학습 단계
- 분산 시스템 구축(Erlang Distribution)
- OTP 설계 패턴 적용
- 고가용성 아키텍처 설계
🔴 Erlang 프로세스 감시와 오류 처리 실전 가이드
Erlang 튜토리얼
고급
난이도
튜토리얼
타입
10/28
등록일
Erlang 프로세스 감시와 오류 처리 실전 가이드
고급태그
코드 예제
// 1단계: 기초 설정
-module(supervisor_test).
-export([start/0, start_link/0]).
start() ->
{ok, Pid} = supervisor:start_link({local, ?MODULE}, supervisor, [{worker, worker_test, []}]),
Pid.
// 2단계: 핵심 구현
-module(worker_test).
-export([start/0, loop/0]).
start() ->
spawn(fun() -> loop() end).
loop() ->
receive
{monitor, Ref} ->
erlang:monitor(process, self()),
loop();
{'DOWN', Ref, process, Pid, _Reason} ->
io:format("~p 프로세스 종료 감지~n", [Pid]),
exit(kill)
end.
// 3단계: 고급 기능
-module(supervisor_test).
-export([start/0, start_link/0]).
start() ->
supervisor:start_link({local, ?MODULE}, supervisor, [
{worker, worker_test, [1]},
{worker, worker_test, [2]}
]).
// 4단계: 완성 및 테스트
-module(test_SUITE).
-export([all/0, init_per_suite/1, test_failure/1]).
all() -> [[test_failure/1]].
test_failure(_) ->
Pid = supervisor_test:start(),
erlang:exit(Pid, kill),
timer:sleep(500),
ok.
등록일: 2025년 10월 28일 02:45
언어 정보
언어
Erlang
카테고리
Functional
인기도
#28
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요