{"action":"created","comment":{"url":"https://api.github.com/repos/doomspork/elixir-school/pulls/comments/65506137","id":65506137,"diff_hunk":"@@ -0,0 +1,86 @@\n+---\n+layout: page\n+title: OTP 슈퍼바이저\n+category: advanced\n+order: 5\n+lang: ko\n+---\n+\n+슈퍼바이저(Supervisor)는 다른 프로세스를 감시한다는, 단 하나의 목적에 특화된 프로세스입니다. 자식 프로세스가 실패하면 자동으로 재시작해주므로 장애에 대한 내성이 높은(Fault-tolerant) 애플리케이션을 만들 수 있게 해줍니다.\n+\n+{% include toc.html %}\n+\n+## 설정\n+\n+슈퍼바이저의 마법은 `Supervisor.start_link` 함수의 내부에 있습니다. 슈퍼바이저 프로세스를 실행하면서, 슈퍼바이저가 자식을 관리하기 위해 사용할 전략을 정의할 수 있습니다.\n+\n+자식 프로세스는 리스트와 `Supervisor.Spec`에 포함된 `worker/3` 함수를 사용해서 정의됩니다. `worker/3` 함수는 모듈, 인수, 그리고 옵션을 받습니다. 내부에서는 `worker/3`를 초기화하며 주어진 인수를 사용해서 `start_link/3`을 호출합니다.\n+\n+[OTP의 병렬성](/ko/lessons/advanced/otp-concurrency)에서 구현한 SimpleQueue를 사용해서 시작해봅시다:\n+","path":"ko/lessons/advanced/otp-supervisor.md","position":20,"original_position":20,"commit_id":"86a852cb5a5722cb3c1db68c84d4e4edc863bae8","original_commit_id":"86a852cb5a5722cb3c1db68c84d4e4edc863bae8","user":{"login":"rijgndqw012","id":2427963,"avatar_url":"https://avatars.githubusercontent.com/u/2427963?v=3","gravatar_id":"","url":"https://api.github.com/users/rijgndqw012","html_url":"https://github.com/rijgndqw012","followers_url":"https://api.github.com/users/rijgndqw012/followers","following_url":"https://api.github.com/users/rijgndqw012/following{/other_user}","gists_url":"https://api.github.com/users/rijgndqw012/gists{/gist_id}","starred_url":"https://api.github.com/users/rijgndqw012/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rijgndqw012/subscriptions","organizations_url":"https://api.github.com/users/rijgndqw012/orgs","repos_url":"https://api.github.com/users/rijgndqw012/repos","events_url":"https://api.github.com/users/rijgndqw012/events{/privacy}","received_events_url":"https://api.github.com/users/rijgndqw012/received_events","type":"User","site_admin":false},"body":"동시성(Concurrency), 병렬성(Parallelism). they have difference.","created_at":"2016-06-02T09:03:03Z","updated_at":"2016-06-02T09:03:03Z","html_url":"https://github.com/doomspork/elixir-school/pull/426#discussion_r65506137","pull_request_url":"https://api.github.com/repos/doomspork/elixir-school/pulls/426","_links":{"self":{"href":"https://api.github.com/repos/doomspork/elixir-school/pulls/comments/65506137"},"html":{"href":"https://github.com/doomspork/elixir-school/pull/426#discussion_r65506137"},"pull_request":{"href":"https://api.github.com/repos/doomspork/elixir-school/pulls/426"}}},"pull_request":{"url":"https://api.github.com/repos/doomspork/elixir-school/pulls/426","id":72000663,"html_url":"https://github.com/doomspork/elixir-school/pull/426","diff_url":"https://github.com/doomspork/elixir-school/pull/426.diff","patch_url":"https://github.com/doomspork/elixir-school/pull/426.patch","issue_url":"https://api.github.com/repos/doomspork/elixir-school/issues/426","number":426,"state":"open","locked":false,"title":"[KO] Translation of OTP Supervisor lesson","user":{"login":"riseshia","id":7338443,"avatar_url":"https://avatars.githubusercontent.com/u/7338443?v=3","gravatar_id":"","url":"https://api.github.com/users/riseshia","html_url":"https://github.com/riseshia","followers_url":"https://api.github.com/users/riseshia/followers","following_url":"https://api.github.com/users/riseshia/following{/other_user}","gists_url":"https://api.github.com/users/riseshia/gists{/gist_id}","starred_url":"https://api.github.com/users/riseshia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/riseshia/subscriptions","organizations_url":"https://api.github.com/users/riseshia/orgs","repos_url":"https://api.github.com/users/riseshia/repos","events_url":"https://api.github.com/users/riseshia/events{/privacy}","received_events_url":"https://api.github.com/users/riseshia/received_events","type":"User","site_admin":false},"body":"Related to: #201\r\n@Dalgona @devleoper @rijgndqw012\r\nPlease review this when you have time, it's fine after basic lesson translation done :)","created_at":"2016-05-31T11:38:50Z","updated_at":"2016-06-02T09:03:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4983afc0e452e3811e44f297de298594d4bc15bc","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/doomspork/elixir-school/pulls/426/commits","review_comments_url":"https://api.github.com/repos/doomspork/elixir-school/pulls/426/comments","review_comment_url":"https://api.github.com/repos/doomspork/elixir-school/pulls/comments{/number}","comments_url":"https://api.github.com/repos/doomspork/elixir-school/issues/426/comments","statuses_url":"https://api.github.com/repos/doomspork/elixir-school/statuses/86a852cb5a5722cb3c1db68c84d4e4edc863bae8","head":{"label":"riseshia:otp-supervisor","ref":"otp-supervisor","sha":"86a852cb5a5722cb3c1db68c84d4e4edc863bae8","user":{"login":"riseshia","id":7338443,"avatar_url":"https://avatars.githubusercontent.com/u/7338443?v=3","gravatar_id":"","url":"https://api.github.com/users/riseshia","html_url":"https://github.com/riseshia","followers_url":"https://api.github.com/users/riseshia/followers","following_url":"https://api.github.com/users/riseshia/following{/other_user}","gists_url":"https://api.github.com/users/riseshia/gists{/gist_id}","starred_url":"https://api.github.com/users/riseshia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/riseshia/subscriptions","organizations_url":"https://api.github.com/users/riseshia/orgs","repos_url":"https://api.github.com/users/riseshia/repos","events_url":"https://api.github.com/users/riseshia/events{/privacy}","received_events_url":"https://api.github.com/users/riseshia/received_events","type":"User","site_admin":false},"repo":{"id":59409234,"name":"elixir-school","full_name":"riseshia/elixir-school","owner":{"login":"riseshia","id":7338443,"avatar_url":"https://avatars.githubusercontent.com/u/7338443?v=3","gravatar_id":"","url":"https://api.github.com/users/riseshia","html_url":"https://github.com/riseshia","followers_url":"https://api.github.com/users/riseshia/followers","following_url":"https://api.github.com/users/riseshia/following{/other_user}","gists_url":"https://api.github.com/users/riseshia/gists{/gist_id}","starred_url":"https://api.github.com/users/riseshia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/riseshia/subscriptions","organizations_url":"https://api.github.com/users/riseshia/orgs","repos_url":"https://api.github.com/users/riseshia/repos","events_url":"https://api.github.com/users/riseshia/events{/privacy}","received_events_url":"https://api.github.com/users/riseshia/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/riseshia/elixir-school","description":"Lessons about the Elixir programming language","fork":true,"url":"https://api.github.com/repos/riseshia/elixir-school","forks_url":"https://api.github.com/repos/riseshia/elixir-school/forks","keys_url":"https://api.github.com/repos/riseshia/elixir-school/keys{/key_id}","collaborators_url":"https://api.github.com/repos/riseshia/elixir-school/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/riseshia/elixir-school/teams","hooks_url":"https://api.github.com/repos/riseshia/elixir-school/hooks","issue_events_url":"https://api.github.com/repos/riseshia/elixir-school/issues/events{/number}","events_url":"https://api.github.com/repos/riseshia/elixir-school/events","assignees_url":"https://api.github.com/repos/riseshia/elixir-school/assignees{/user}","branches_url":"https://api.github.com/repos/riseshia/elixir-school/branches{/branch}","tags_url":"https://api.github.com/repos/riseshia/elixir-school/tags","blobs_url":"https://api.github.com/repos/riseshia/elixir-school/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/riseshia/elixir-school/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/riseshia/elixir-school/git/refs{/sha}","trees_url":"https://api.github.com/repos/riseshia/elixir-school/git/trees{/sha}","statuses_url":"https://api.github.com/repos/riseshia/elixir-school/statuses/{sha}","languages_url":"https://api.github.com/repos/riseshia/elixir-school/languages","stargazers_url":"https://api.github.com/repos/riseshia/elixir-school/stargazers","contributors_url":"https://api.github.com/repos/riseshia/elixir-school/contributors","subscribers_url":"https://api.github.com/repos/riseshia/elixir-school/subscribers","subscription_url":"https://api.github.com/repos/riseshia/elixir-school/subscription","commits_url":"https://api.github.com/repos/riseshia/elixir-school/commits{/sha}","git_commits_url":"https://api.github.com/repos/riseshia/elixir-school/git/commits{/sha}","comments_url":"https://api.github.com/repos/riseshia/elixir-school/comments{/number}","issue_comment_url":"https://api.github.com/repos/riseshia/elixir-school/issues/comments{/number}","contents_url":"https://api.github.com/repos/riseshia/elixir-school/contents/{+path}","compare_url":"https://api.github.com/repos/riseshia/elixir-school/compare/{base}...{head}","merges_url":"https://api.github.com/repos/riseshia/elixir-school/merges","archive_url":"https://api.github.com/repos/riseshia/elixir-school/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/riseshia/elixir-school/downloads","issues_url":"https://api.github.com/repos/riseshia/elixir-school/issues{/number}","pulls_url":"https://api.github.com/repos/riseshia/elixir-school/pulls{/number}","milestones_url":"https://api.github.com/repos/riseshia/elixir-school/milestones{/number}","notifications_url":"https://api.github.com/repos/riseshia/elixir-school/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/riseshia/elixir-school/labels{/name}","releases_url":"https://api.github.com/repos/riseshia/elixir-school/releases{/id}","deployments_url":"https://api.github.com/repos/riseshia/elixir-school/deployments","created_at":"2016-05-22T11:40:58Z","updated_at":"2016-05-22T11:41:00Z","pushed_at":"2016-06-01T09:25:06Z","git_url":"git://github.com/riseshia/elixir-school.git","ssh_url":"git@github.com:riseshia/elixir-school.git","clone_url":"https://github.com/riseshia/elixir-school.git","svn_url":"https://github.com/riseshia/elixir-school","homepage":"https://elixirschool.com","size":1585,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"doomspork:master","ref":"master","sha":"06c8e89c00b0e89d1daf76bc6e3b495513f503c4","user":{"login":"doomspork","id":73386,"avatar_url":"https://avatars.githubusercontent.com/u/73386?v=3","gravatar_id":"","url":"https://api.github.com/users/doomspork","html_url":"https://github.com/doomspork","followers_url":"https://api.github.com/users/doomspork/followers","following_url":"https://api.github.com/users/doomspork/following{/other_user}","gists_url":"https://api.github.com/users/doomspork/gists{/gist_id}","starred_url":"https://api.github.com/users/doomspork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/doomspork/subscriptions","organizations_url":"https://api.github.com/users/doomspork/orgs","repos_url":"https://api.github.com/users/doomspork/repos","events_url":"https://api.github.com/users/doomspork/events{/privacy}","received_events_url":"https://api.github.com/users/doomspork/received_events","type":"User","site_admin":false},"repo":{"id":36616176,"name":"elixir-school","full_name":"doomspork/elixir-school","owner":{"login":"doomspork","id":73386,"avatar_url":"https://avatars.githubusercontent.com/u/73386?v=3","gravatar_id":"","url":"https://api.github.com/users/doomspork","html_url":"https://github.com/doomspork","followers_url":"https://api.github.com/users/doomspork/followers","following_url":"https://api.github.com/users/doomspork/following{/other_user}","gists_url":"https://api.github.com/users/doomspork/gists{/gist_id}","starred_url":"https://api.github.com/users/doomspork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/doomspork/subscriptions","organizations_url":"https://api.github.com/users/doomspork/orgs","repos_url":"https://api.github.com/users/doomspork/repos","events_url":"https://api.github.com/users/doomspork/events{/privacy}","received_events_url":"https://api.github.com/users/doomspork/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/doomspork/elixir-school","description":"Lessons about the Elixir programming language","fork":false,"url":"https://api.github.com/repos/doomspork/elixir-school","forks_url":"https://api.github.com/repos/doomspork/elixir-school/forks","keys_url":"https://api.github.com/repos/doomspork/elixir-school/keys{/key_id}","collaborators_url":"https://api.github.com/repos/doomspork/elixir-school/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/doomspork/elixir-school/teams","hooks_url":"https://api.github.com/repos/doomspork/elixir-school/hooks","issue_events_url":"https://api.github.com/repos/doomspork/elixir-school/issues/events{/number}","events_url":"https://api.github.com/repos/doomspork/elixir-school/events","assignees_url":"https://api.github.com/repos/doomspork/elixir-school/assignees{/user}","branches_url":"https://api.github.com/repos/doomspork/elixir-school/branches{/branch}","tags_url":"https://api.github.com/repos/doomspork/elixir-school/tags","blobs_url":"https://api.github.com/repos/doomspork/elixir-school/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/doomspork/elixir-school/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/doomspork/elixir-school/git/refs{/sha}","trees_url":"https://api.github.com/repos/doomspork/elixir-school/git/trees{/sha}","statuses_url":"https://api.github.com/repos/doomspork/elixir-school/statuses/{sha}","languages_url":"https://api.github.com/repos/doomspork/elixir-school/languages","stargazers_url":"https://api.github.com/repos/doomspork/elixir-school/stargazers","contributors_url":"https://api.github.com/repos/doomspork/elixir-school/contributors","subscribers_url":"https://api.github.com/repos/doomspork/elixir-school/subscribers","subscription_url":"https://api.github.com/repos/doomspork/elixir-school/subscription","commits_url":"https://api.github.com/repos/doomspork/elixir-school/commits{/sha}","git_commits_url":"https://api.github.com/repos/doomspork/elixir-school/git/commits{/sha}","comments_url":"https://api.github.com/repos/doomspork/elixir-school/comments{/number}","issue_comment_url":"https://api.github.com/repos/doomspork/elixir-school/issues/comments{/number}","contents_url":"https://api.github.com/repos/doomspork/elixir-school/contents/{+path}","compare_url":"https://api.github.com/repos/doomspork/elixir-school/compare/{base}...{head}","merges_url":"https://api.github.com/repos/doomspork/elixir-school/merges","archive_url":"https://api.github.com/repos/doomspork/elixir-school/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/doomspork/elixir-school/downloads","issues_url":"https://api.github.com/repos/doomspork/elixir-school/issues{/number}","pulls_url":"https://api.github.com/repos/doomspork/elixir-school/pulls{/number}","milestones_url":"https://api.github.com/repos/doomspork/elixir-school/milestones{/number}","notifications_url":"https://api.github.com/repos/doomspork/elixir-school/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/doomspork/elixir-school/labels{/name}","releases_url":"https://api.github.com/repos/doomspork/elixir-school/releases{/id}","deployments_url":"https://api.github.com/repos/doomspork/elixir-school/deployments","created_at":"2015-05-31T18:27:42Z","updated_at":"2016-06-01T22:58:43Z","pushed_at":"2016-06-02T04:59:00Z","git_url":"git://github.com/doomspork/elixir-school.git","ssh_url":"git@github.com:doomspork/elixir-school.git","clone_url":"https://github.com/doomspork/elixir-school.git","svn_url":"https://github.com/doomspork/elixir-school","homepage":"https://elixirschool.com","size":2212,"stargazers_count":471,"watchers_count":471,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":157,"mirror_url":null,"open_issues_count":66,"forks":157,"open_issues":66,"watchers":471,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/doomspork/elixir-school/pulls/426"},"html":{"href":"https://github.com/doomspork/elixir-school/pull/426"},"issue":{"href":"https://api.github.com/repos/doomspork/elixir-school/issues/426"},"comments":{"href":"https://api.github.com/repos/doomspork/elixir-school/issues/426/comments"},"review_comments":{"href":"https://api.github.com/repos/doomspork/elixir-school/pulls/426/comments"},"review_comment":{"href":"https://api.github.com/repos/doomspork/elixir-school/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/doomspork/elixir-school/pulls/426/commits"},"statuses":{"href":"https://api.github.com/repos/doomspork/elixir-school/statuses/86a852cb5a5722cb3c1db68c84d4e4edc863bae8"}}}}
{"actor":{"display_login":"rijgndqw012"}}