{"action":"created","comment":{"url":"https://api.github.com/repos/databricks/scala-style-guide/pulls/comments/47332125","id":47332125,"diff_hunk":"@@ -0,0 +1,1013 @@\n+# Databricks Scala Guide\n+\n+800명이 넘는 contributor를 가진 Spark는 빅데이터 분야에서 가장 큰 오픈소스 프로젝트이며, Scala를 사용하는 프로젝트 중 가장 활동적인 프로젝트입니다. 이 가이드라인은 [Databricks](http://databricks.com/) 엔지니어 팀 뿐 아니라, Spark에 기여하는 엔지니어들과 일하고, 가르치며 나온 경험으로부터 만들어 졌습니다.\n+\n+코드는 저자에 의해 __한 번 쓰여지지만__, 많은 다른 엔지니어들에게 __반복적으로 수정되고 읽힙니다__. 대부분의 버그들은 보통 코드의 변경으로부터 나옵니다. 그래서 우리는 코드의 가독성과 유지 보수성을 향상시키기 위해 우리의 코드를 최적화 해야합니다. 이를 위한 최고의 방법은 간단한 코드를 작성하는 것입니다.\n+\n+Scala는 믿을 수 없을 만큼 강력하고 여러가지 페러다임을 적용 가능한 언어입니다. 우리는 아래의 가이드라인을 지키며 여러가지 프로젝트를 빠른 속도로 진행하고 있습니다. 이 가이드라인이 모든 경우에 맞지는 않을 수 있습니다. 팀이나 회사의 요구사항등에 따라서 일부 다르게 적용 해야 할 수도 있습니다.\n+\n+\n+## <a name='TOC'>색인</a>\n+\n+  0. [문서 역사](#history)\n+  1. [구문 스타일](#syntactic)\n+    - [명명 규칙](#naming)\n+    - [라인 길이](#linelength)\n+    - [30 규칙](#rule_of_30)\n+    - [공백 및 들여쓰기](#indent)\n+    - [빈 줄](#blanklines)\n+    - [괄호](#parentheses)\n+    - [중괄호](#curly)\n+    - [Long 정수](#long_literal)\n+    - [문서 스타일](#doc)\n+    - [클래스 내의 순서](#ordering_class)\n+    - [Imports](#imports)\n+    - [패턴 매칭](#pattern-matching)\n+    - [중위 표기](#infix)\n+  2. [Scala 언어의 기능](#lang)\n+    - [apply 함수](#apply_method)\n+    - [override 수정자](#override_modifier)\n+    - [튜플 추출](#destruct_bind)\n+    - [Call by Name](#call_by_name)\n+    - [다중 매개 변수 표기](#multi-param-list)\n+    - [특수 문자 함수 (오퍼레이터 오버라이딩)](#symbolic_methods)\n+    - [타입 추론](#type_inference)\n+    - [Return 예약어](#return)\n+    - [재귀 용법 과 꼬리 재귀 용법](#recursion)\n+    - [Implicits](#implicits)\n+    - [예외 처리, i.e. )Try vs try](#exception)\n+    - [Options](#option)\n+    - [모나드 채이닝](#chaining)\n+  3. [동시성 제어](#concurrency)\n+    - [Scala concurrent.Map](#concurrency-scala-collection)\n+    - [동기화(synchronized) 명시 vs Java 제공 동시성 라이브러리](#concurrency-sync-vs-map)\n+    - [동기화(synchronized) 명시 vs Atomic 변수 vs @volatile](#concurrency-sync-vs-atomic)\n+    - [Private 변수](#concurrency-private-this)\n+    - [동시성 로직 분리](#concurrency-isolation)\n+  4. [성능](#perf)\n+    - [Microbenchmarks](#perf-microbenchmarks)\n+    - [순회와 zipWithIndex](#perf-whileloops)\n+    - [Option 과 null](#perf-option)\n+    - [Scala Collection 라이브러리](#perf-collection)\n+    - [private[this]](#perf-private)\n+  5. [Java 호환성](#java)\n+    - [Scala에서 사용 할 수 없는 Java 기능](#java-missing-features)\n+    - [Traits 와 Abstract 클래스](#java-traits)\n+    - [Type 별칭](#java-type-alias)\n+    - [기본 매개변수 값](#java-default-param-values)\n+    - [다중 매개변수 표기](#java-multi-param-list)\n+    - [가변인자](#java-varargs)\n+    - [Implicits](#java-implicits)\n+    - [관련 객체, 정적 함수 및 변수](#java-companion-object)\n+  6. [기타](#misc)\n+    - [currentTimeMillis 보다는 nanoTime](#misc_currentTimeMillis_vs_nanoTime)\n+    - [URL 보다는 URI](#misc_uri_url)\n+\n+\n+\n+## <a name='history'>문서 역사</a>\n+- 2015-03-16: 초기 버전.\n+- 2015-05-25: [override 수정자](#override_modifier) 추가.\n+- 2015-08-23: \"하지않습니다.\" 에서 \"피합니다.\" 로 심각도 다운그레이드.\n+- 2015-11-17: [apply 함수](#apply_method) 추가: apply 함수는 같은 이름을 가진 객체는 같은 이름을 가진 클레스를 반환해야 합니다.","path":"README-KO.md","position":72,"original_position":72,"commit_id":"6fa9dc3533820f7cda10e40628912feb35d548db","original_commit_id":"6fa9dc3533820f7cda10e40628912feb35d548db","user":{"login":"yunpark93","id":1789613,"avatar_url":"https://avatars.githubusercontent.com/u/1789613?v=3","gravatar_id":"","url":"https://api.github.com/users/yunpark93","html_url":"https://github.com/yunpark93","followers_url":"https://api.github.com/users/yunpark93/followers","following_url":"https://api.github.com/users/yunpark93/following{/other_user}","gists_url":"https://api.github.com/users/yunpark93/gists{/gist_id}","starred_url":"https://api.github.com/users/yunpark93/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yunpark93/subscriptions","organizations_url":"https://api.github.com/users/yunpark93/orgs","repos_url":"https://api.github.com/users/yunpark93/repos","events_url":"https://api.github.com/users/yunpark93/events{/privacy}","received_events_url":"https://api.github.com/users/yunpark93/received_events","type":"User","site_admin":false},"body":"- [apply 함수](#apply_method) 섹션 추가: 한 객체의 apply 함수는 그 객체와 같은 이름을 가진 클래스를 반환해야 합니다.","created_at":"2015-12-11T08:44:52Z","updated_at":"2015-12-11T08:44:52Z","html_url":"https://github.com/databricks/scala-style-guide/pull/23#discussion_r47332125","pull_request_url":"https://api.github.com/repos/databricks/scala-style-guide/pulls/23","_links":{"self":{"href":"https://api.github.com/repos/databricks/scala-style-guide/pulls/comments/47332125"},"html":{"href":"https://github.com/databricks/scala-style-guide/pull/23#discussion_r47332125"},"pull_request":{"href":"https://api.github.com/repos/databricks/scala-style-guide/pulls/23"}}},"pull_request":{"url":"https://api.github.com/repos/databricks/scala-style-guide/pulls/23","id":53059756,"html_url":"https://github.com/databricks/scala-style-guide/pull/23","diff_url":"https://github.com/databricks/scala-style-guide/pull/23.diff","patch_url":"https://github.com/databricks/scala-style-guide/pull/23.patch","issue_url":"https://api.github.com/repos/databricks/scala-style-guide/issues/23","number":23,"state":"open","locked":false,"title":"Adding Korean version of guide line.","user":{"login":"HyukjinKwon","id":6477701,"avatar_url":"https://avatars.githubusercontent.com/u/6477701?v=3","gravatar_id":"","url":"https://api.github.com/users/HyukjinKwon","html_url":"https://github.com/HyukjinKwon","followers_url":"https://api.github.com/users/HyukjinKwon/followers","following_url":"https://api.github.com/users/HyukjinKwon/following{/other_user}","gists_url":"https://api.github.com/users/HyukjinKwon/gists{/gist_id}","starred_url":"https://api.github.com/users/HyukjinKwon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HyukjinKwon/subscriptions","organizations_url":"https://api.github.com/users/HyukjinKwon/orgs","repos_url":"https://api.github.com/users/HyukjinKwon/repos","events_url":"https://api.github.com/users/HyukjinKwon/events{/privacy}","received_events_url":"https://api.github.com/users/HyukjinKwon/received_events","type":"User","site_admin":false},"body":"https://github.com/databricks/scala-style-guide/issues/22\r\nIn this PR, I translated the `README.md` in Korean.\r\n","created_at":"2015-12-09T00:20:18Z","updated_at":"2015-12-11T08:44:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4681e04550d8c9085562aec9b051d1a6bd587cdd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/databricks/scala-style-guide/pulls/23/commits","review_comments_url":"https://api.github.com/repos/databricks/scala-style-guide/pulls/23/comments","review_comment_url":"https://api.github.com/repos/databricks/scala-style-guide/pulls/comments{/number}","comments_url":"https://api.github.com/repos/databricks/scala-style-guide/issues/23/comments","statuses_url":"https://api.github.com/repos/databricks/scala-style-guide/statuses/6fa9dc3533820f7cda10e40628912feb35d548db","head":{"label":"HyukjinKwon:master","ref":"master","sha":"6fa9dc3533820f7cda10e40628912feb35d548db","user":{"login":"HyukjinKwon","id":6477701,"avatar_url":"https://avatars.githubusercontent.com/u/6477701?v=3","gravatar_id":"","url":"https://api.github.com/users/HyukjinKwon","html_url":"https://github.com/HyukjinKwon","followers_url":"https://api.github.com/users/HyukjinKwon/followers","following_url":"https://api.github.com/users/HyukjinKwon/following{/other_user}","gists_url":"https://api.github.com/users/HyukjinKwon/gists{/gist_id}","starred_url":"https://api.github.com/users/HyukjinKwon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HyukjinKwon/subscriptions","organizations_url":"https://api.github.com/users/HyukjinKwon/orgs","repos_url":"https://api.github.com/users/HyukjinKwon/repos","events_url":"https://api.github.com/users/HyukjinKwon/events{/privacy}","received_events_url":"https://api.github.com/users/HyukjinKwon/received_events","type":"User","site_admin":false},"repo":{"id":47019255,"name":"scala-style-guide","full_name":"HyukjinKwon/scala-style-guide","owner":{"login":"HyukjinKwon","id":6477701,"avatar_url":"https://avatars.githubusercontent.com/u/6477701?v=3","gravatar_id":"","url":"https://api.github.com/users/HyukjinKwon","html_url":"https://github.com/HyukjinKwon","followers_url":"https://api.github.com/users/HyukjinKwon/followers","following_url":"https://api.github.com/users/HyukjinKwon/following{/other_user}","gists_url":"https://api.github.com/users/HyukjinKwon/gists{/gist_id}","starred_url":"https://api.github.com/users/HyukjinKwon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HyukjinKwon/subscriptions","organizations_url":"https://api.github.com/users/HyukjinKwon/orgs","repos_url":"https://api.github.com/users/HyukjinKwon/repos","events_url":"https://api.github.com/users/HyukjinKwon/events{/privacy}","received_events_url":"https://api.github.com/users/HyukjinKwon/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/HyukjinKwon/scala-style-guide","description":"Databricks Scala Coding Style Guide","fork":true,"url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide","forks_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/forks","keys_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/keys{/key_id}","collaborators_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/teams","hooks_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/hooks","issue_events_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/issues/events{/number}","events_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/events","assignees_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/assignees{/user}","branches_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/branches{/branch}","tags_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/tags","blobs_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/git/refs{/sha}","trees_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/git/trees{/sha}","statuses_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/statuses/{sha}","languages_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/languages","stargazers_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/stargazers","contributors_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/contributors","subscribers_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/subscribers","subscription_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/subscription","commits_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/commits{/sha}","git_commits_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/git/commits{/sha}","comments_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/comments{/number}","issue_comment_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/issues/comments{/number}","contents_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/contents/{+path}","compare_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/compare/{base}...{head}","merges_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/merges","archive_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/downloads","issues_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/issues{/number}","pulls_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/pulls{/number}","milestones_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/milestones{/number}","notifications_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/labels{/name}","releases_url":"https://api.github.com/repos/HyukjinKwon/scala-style-guide/releases{/id}","created_at":"2015-11-28T10:28:09Z","updated_at":"2015-12-08T08:18:52Z","pushed_at":"2015-12-11T06:03:15Z","git_url":"git://github.com/HyukjinKwon/scala-style-guide.git","ssh_url":"git@github.com:HyukjinKwon/scala-style-guide.git","clone_url":"https://github.com/HyukjinKwon/scala-style-guide.git","svn_url":"https://github.com/HyukjinKwon/scala-style-guide","homepage":null,"size":97,"stargazers_count":4,"watchers_count":4,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":0,"forks":5,"open_issues":0,"watchers":4,"default_branch":"master"}},"base":{"label":"databricks:master","ref":"master","sha":"3a8172098892fef5861097248f37d923d0e8647a","user":{"login":"databricks","id":4998052,"avatar_url":"https://avatars.githubusercontent.com/u/4998052?v=3","gravatar_id":"","url":"https://api.github.com/users/databricks","html_url":"https://github.com/databricks","followers_url":"https://api.github.com/users/databricks/followers","following_url":"https://api.github.com/users/databricks/following{/other_user}","gists_url":"https://api.github.com/users/databricks/gists{/gist_id}","starred_url":"https://api.github.com/users/databricks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/databricks/subscriptions","organizations_url":"https://api.github.com/users/databricks/orgs","repos_url":"https://api.github.com/users/databricks/repos","events_url":"https://api.github.com/users/databricks/events{/privacy}","received_events_url":"https://api.github.com/users/databricks/received_events","type":"Organization","site_admin":false},"repo":{"id":31933589,"name":"scala-style-guide","full_name":"databricks/scala-style-guide","owner":{"login":"databricks","id":4998052,"avatar_url":"https://avatars.githubusercontent.com/u/4998052?v=3","gravatar_id":"","url":"https://api.github.com/users/databricks","html_url":"https://github.com/databricks","followers_url":"https://api.github.com/users/databricks/followers","following_url":"https://api.github.com/users/databricks/following{/other_user}","gists_url":"https://api.github.com/users/databricks/gists{/gist_id}","starred_url":"https://api.github.com/users/databricks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/databricks/subscriptions","organizations_url":"https://api.github.com/users/databricks/orgs","repos_url":"https://api.github.com/users/databricks/repos","events_url":"https://api.github.com/users/databricks/events{/privacy}","received_events_url":"https://api.github.com/users/databricks/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/databricks/scala-style-guide","description":"Databricks Scala Coding Style Guide","fork":false,"url":"https://api.github.com/repos/databricks/scala-style-guide","forks_url":"https://api.github.com/repos/databricks/scala-style-guide/forks","keys_url":"https://api.github.com/repos/databricks/scala-style-guide/keys{/key_id}","collaborators_url":"https://api.github.com/repos/databricks/scala-style-guide/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/databricks/scala-style-guide/teams","hooks_url":"https://api.github.com/repos/databricks/scala-style-guide/hooks","issue_events_url":"https://api.github.com/repos/databricks/scala-style-guide/issues/events{/number}","events_url":"https://api.github.com/repos/databricks/scala-style-guide/events","assignees_url":"https://api.github.com/repos/databricks/scala-style-guide/assignees{/user}","branches_url":"https://api.github.com/repos/databricks/scala-style-guide/branches{/branch}","tags_url":"https://api.github.com/repos/databricks/scala-style-guide/tags","blobs_url":"https://api.github.com/repos/databricks/scala-style-guide/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/databricks/scala-style-guide/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/databricks/scala-style-guide/git/refs{/sha}","trees_url":"https://api.github.com/repos/databricks/scala-style-guide/git/trees{/sha}","statuses_url":"https://api.github.com/repos/databricks/scala-style-guide/statuses/{sha}","languages_url":"https://api.github.com/repos/databricks/scala-style-guide/languages","stargazers_url":"https://api.github.com/repos/databricks/scala-style-guide/stargazers","contributors_url":"https://api.github.com/repos/databricks/scala-style-guide/contributors","subscribers_url":"https://api.github.com/repos/databricks/scala-style-guide/subscribers","subscription_url":"https://api.github.com/repos/databricks/scala-style-guide/subscription","commits_url":"https://api.github.com/repos/databricks/scala-style-guide/commits{/sha}","git_commits_url":"https://api.github.com/repos/databricks/scala-style-guide/git/commits{/sha}","comments_url":"https://api.github.com/repos/databricks/scala-style-guide/comments{/number}","issue_comment_url":"https://api.github.com/repos/databricks/scala-style-guide/issues/comments{/number}","contents_url":"https://api.github.com/repos/databricks/scala-style-guide/contents/{+path}","compare_url":"https://api.github.com/repos/databricks/scala-style-guide/compare/{base}...{head}","merges_url":"https://api.github.com/repos/databricks/scala-style-guide/merges","archive_url":"https://api.github.com/repos/databricks/scala-style-guide/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/databricks/scala-style-guide/downloads","issues_url":"https://api.github.com/repos/databricks/scala-style-guide/issues{/number}","pulls_url":"https://api.github.com/repos/databricks/scala-style-guide/pulls{/number}","milestones_url":"https://api.github.com/repos/databricks/scala-style-guide/milestones{/number}","notifications_url":"https://api.github.com/repos/databricks/scala-style-guide/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/databricks/scala-style-guide/labels{/name}","releases_url":"https://api.github.com/repos/databricks/scala-style-guide/releases{/id}","created_at":"2015-03-10T02:14:03Z","updated_at":"2015-12-10T05:40:05Z","pushed_at":"2015-12-11T06:03:15Z","git_url":"git://github.com/databricks/scala-style-guide.git","ssh_url":"git@github.com:databricks/scala-style-guide.git","clone_url":"https://github.com/databricks/scala-style-guide.git","svn_url":"https://github.com/databricks/scala-style-guide","homepage":null,"size":133,"stargazers_count":581,"watchers_count":581,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":95,"mirror_url":null,"open_issues_count":5,"forks":95,"open_issues":5,"watchers":581,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/databricks/scala-style-guide/pulls/23"},"html":{"href":"https://github.com/databricks/scala-style-guide/pull/23"},"issue":{"href":"https://api.github.com/repos/databricks/scala-style-guide/issues/23"},"comments":{"href":"https://api.github.com/repos/databricks/scala-style-guide/issues/23/comments"},"review_comments":{"href":"https://api.github.com/repos/databricks/scala-style-guide/pulls/23/comments"},"review_comment":{"href":"https://api.github.com/repos/databricks/scala-style-guide/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/databricks/scala-style-guide/pulls/23/commits"},"statuses":{"href":"https://api.github.com/repos/databricks/scala-style-guide/statuses/6fa9dc3533820f7cda10e40628912feb35d548db"}}}}