참고 https://learnyousomeerlang.com/distribunomicon#firewalls 10 . The Calls from Beyond 앞선 장에서 분산 얼랭에서 필요한 기초적인 부분을 모두 공부했다. 아래에서는 알면 좋을만한 도구를 더 공부하려고 한다. 10.1 얼랭 쉘에서 분산 노드 실행하기 net_kernel:start([Name, Type, HeartbeatInMilliseconds]) % for example net_kernel:start([romero, shortnames, 15000]). 다음 명령어를 이용하면 얼랭 쉘에서 새로운 분산 노드를 실행할 수 있다. 얼랭은 각 분산 노드들이 살아있는 상태를 유지하도록 'HeartBeat'을 보내는데, 기본값은 15초다. 즉, 얼..
참고 https://learnyousomeerlang.com/distribunomicon#alone-in-the-dark 1. Alone in the dark 단일 서버에서 실행되는 소프트웨어는 그 서버가 다운될 경우 기능하지 못한다. 고가용성을 확보하기 위해 여러 서버에 동일한 어플리케이션을 배포할 수 있다. 그러나 이렇게 확보되는 '고가용성'은 한 대의 서버가 다운되었을 때, 이를 적절히 처리할 수 있어야만 확보할 수 있다. 많은 노드가 서로 통신하는 방법 통신의 Serialize, Deserialize 하는 방법 다중 프로세스의 개념을 많은 노드로 확장하는 방법 네트워크 장애를 모니터링 하는 방법 얼랭을 이용해 분산 시스템에 필요한 몇 가지 피쳐를 작성할 수 있다. 그러나 여기서 가장 중요한 부분은..
참고 https://learnyousomeerlang.com/ets#the-concepts-of-ets 1. ETS가 필요한 이유 ETS(Erlang Term Stroage)가 필요한 이유는 다음과 같다. 프로세스가 내부 스택 영역에 데이터를 저장하는 것은 일반적으로 좋은 선택임. 프로세스 간에 데이터를 공유해야 할 때는, 프로세스의 스택 영역에 데이터를 저장하는 것으로는 해결할 수 없음. 이런 이유 때문에 모든 프로세스가 전역적으로 접근할 수 있는 것이 필요한데, 이런 기능을 제공해주는 것이 ETS(Erlang Term Storage)다. 1.1 ETS란? ETS(Erlang Team Storage)에 대해서 간단히 알아보자. ETS는 Erlang VM에 포함된 인메모리 DB임. 업데이트 허용되고, G..
참고 https://learnyousomeerlang.com/building-otp-applications#why-would-i-want-that 1. 왜 OTP Application이 필요한가? 여러 개발자가 서로 다른 방식의 스크립트를 작성하고, 그 스크립트를 이용해 Suepervision Tree를 실행하는 경우 Conflict이 발생할 수 있다. OTP Application은 이런 유형의 문제를 해결해준다. 디렉토리 구조 구성 처리 방법 Dependency 처리 방법 환경 변수 및 Config 생성. Application 시작 / 중지 Application을 종료하지 않고도 충돌을 감지하고 실시간 업그레이드를 처리할 수 있는 기능 OTP Application은 위 기능을 제공해준다. 2. OTP ..
1. 프로젝트 생성 다음 순서대로 erlang 프로젝트 생성 2. erlang 컴파일러 설정 rebar를 사용하지 않는 버전이기 때문에 Compile project with rebar는 체크하지 않음. Add debug info를 추가함 Additional 'erlc' arguments에 다음 인수를 추가해준다. +nowarn_unused_function +nowarn_unused_vars erlang 모듈을 컴파일 할 때, 사용하지 않는 인자들에서 Warning이 발생하면서 디버그 모드로 정상적으로 들어가지 못하는 경우가 있다. 이것을 해결하기 위해서 위 인자를 추가해준다. 3. EPMD 기동 https://www.jetbrains.com/help/idea/erlang-compile-run-debug...
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.