Skip to content

Commit ee712ec

Browse files
committed
Add Korean translation of Packages and Imports in tour
1 parent f902983 commit ee712ec

File tree

1 file changed

+89
-7
lines changed

1 file changed

+89
-7
lines changed

_ko/tour/packages-and-imports.md

Lines changed: 89 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,100 @@
11
---
22
layout: tour
3-
title: Packages and Imports
4-
language: ko
3+
title: 패키지와 임포트
54

6-
discourse: true
5+
discourse: false
76

87
partof: scala-tour
98

109
num: 35
10+
language: ko
11+
1112
previous-page: named-arguments
12-
next-page: type-inference
1313
---
1414

15-
# Packages and Imports
15+
# 패키지와 임포트
16+
17+
스칼라는 패키지를 사용하여 프로그램을 모듈화할 수 있는 네임스페이스를 만든다.
18+
19+
## 패키지 만들기
20+
21+
패키지는 스칼라 파일 맨 위에 하나 이상의 패키지 이름을 선언하여 만들어진다.
22+
23+
```
24+
package users
25+
26+
class User
27+
```
28+
29+
패키지의 이름을 스칼라 파일을 담고 있는 디렉토리와 같게 하는 규칙이 있다. 하지만, 스칼라는 파일 레이아웃에 한정되지 않는다. `package users`를 위한 sbt 프로젝트의 디렉토리 구조의 한 예이다.
30+
31+
```
32+
- ExampleProject
33+
- build.sbt
34+
- project
35+
- src
36+
- main
37+
- scala
38+
- users
39+
User.scala
40+
UserProfile.scala
41+
UserPreferences.scala
42+
- test
43+
```
44+
45+
`users` 디렉토리가 `scala` 디렉토리 안에 위치하고 여러 스칼라 파일이 패키지 안에 위치하는지에 대해 주목해야 한다. 패키지 안 각 스칼라 파일은 같은 패키지 선언을 가질 수 있다. 패키지를 선언하는 다른 방법은 중괄호를 사용하는 것이다.
46+
47+
```
48+
package users {
49+
package administrators {
50+
class NormalUser
51+
}
52+
package normalusers {
53+
class NormalUser
54+
}
55+
}
56+
```
57+
58+
보다시피 패키지 중첩을 허용하고 스코프와 캡슐화를 더 잘 제어한다.
59+
60+
패키지 이름은 모두 소문자여야 하고 웹사이트를 가진 조직에서 개발된 코드라면 `<상위 도메인>.<도메인 이름>.<프로젝트 이름>` 과 같은 형식을 따라야 한다. 예를 들어, 구글에게 `SelfDrigingCar`라는 프로젝트가 있다면 패키지 이름은 아래와 같을 것이다.
61+
62+
```
63+
package com.google.selfdrivingcar.camera
64+
65+
class Lens
66+
```
67+
68+
디렉토리 구조는 `SelfDrivingCar/src/main/scala/com/google/selfdrivingcar/camera/Lens.scala`와 같을 것이다.
69+
70+
## 임포트
71+
72+
`import` 절은 다른 패키지의 멤버(클래스, 트레이트, 함수 등)에 접근하기 위해서고 같은 패키지의 멤버에 접근할 때는 필요하지 않다. 한마디로 임포트 절은 선택적이다.
73+
74+
```
75+
import users._ // users 패키지 전부를 임포트한다
76+
import users.User // User 클래스를 임포트한다
77+
import users.{User, UserPreferences} // 선택된 멤버만 임포트한다
78+
import users.{UserPreferences => UPrefs} // 편의를 위해 이름을 바꾸고 임포트한다
79+
```
80+
81+
스칼라가 자바와 한가지 다른 점은 어디서든 임포트를 할 수 있다는 것이다.
82+
83+
```tut
84+
def sqrtplus1(x: Int) = {
85+
import scala.math.sqrt
86+
sqrt(x) + 1.0
87+
}
88+
```
89+
90+
네이밍이 중복되거나 프로젝트의 루트에서 무언가 임포트해야 할 때, 패키지 이름 앞에 `_root_`를 붙이면 된다.
91+
92+
```
93+
package accounts
94+
95+
import _root_.users._
96+
```
97+
98+
`scala``java.lang` 패키지와 `object Predef` 는 기본적으로 임포트된다.
1699

17-
(this section of the tour has not been translated yet. pull request
18-
with translation welcome!)
100+
공병국 옮김

0 commit comments

Comments
 (0)