SqueakByExample:5.2: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(스타일 수정)
(번역수정)
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
==모든 것은 오브젝트이다.==
==모든 것은 오브젝트다==
 
문구 "모든 것은 오브젝트 이다" 는 매우 전파력이 강합니다. 여러분이 스몰토크로 잠시 동안이라도 작업을 하신다면, 이 규칙이 얼마나 여러분이 하시는 모든 작업을 단순화하는가에 관해 놀라실 것입니다. 예를 들면, 정수는(integers) 실제로 오브젝트이므로, 여러분은 다른 객체에 메시지를 보냈던 것처럼, 정수에도 역시 메시지를 보낼 수 있습니다.


"모든 것은 오브젝트다" 라는 문구는 상당한 중독성이 있습니다. 스몰토크로 조금이라도 작업을 해본다면, 이 규칙이 당신이 하려는 모든 작업을 얼마나 단순하게 만드는지에 대해 놀랄겁니다. 예를 들면, 정수는 실제로 오브젝트이므로, 여러분은 다른 객체에 메시지를 보냈던 것처럼, 정수에도 역시 메시지를 보낼 수 있습니다.


{| style="border: 1px solid black;"
{| style="border: 1px solid black;"
|-  
|-  
|3+4||⇒ 7 "send '+ 4' to 3, yielding 7"
|3+4||⇒ 7 ""7을 얻기 위해 '+ 4'를 3으로 보냅니다"
|-
|-
|20 factorial||⇒ 2432902008176640000 "send factorial, yielding a big number"
|20 factorial||⇒ 2432902008176640000 "큰 수를 위해 팩토리얼을 보냅니다"
|}
|}




20의 계승 표시는 분명히 7의 계승과는 다른 표시를 보여줍니다. 그 이유는 둘 다 오브젝트이지만, 어떤 코드도, 심지어 계승의 실행까지도, 이 표시에 관해 현재 값이 될 필요가 있습니다.
아마도 이 규칙의 가장 근본적인 결과는 다음 내용입니다.


20의 계승 표시는 분명히 7의 계승과는 다른 표시를 보여줍니다. 그 이유는 둘 다 오브젝트이지만, 어떤 코드도, 심지어 계승의 실행까지도, 이 표시에 관해 현재 값이 될 필요가 있습니다. 아마도 이 규칙의 가장 근본적인 결과는 다음 내용입니다.
20 factorial 이라는 표현과 7 은 분명 다르지만, 둘 다 일반 문법이 아닌 오브젝트이기 때문에 어떤 코드도 -하다못해 factorial 의 구현조차도- 알아야할 필요는 없습니다. 이러한 규칙으로 알 수 있는 결과는 다음과 같습니다.


<center>{{HighlightDoubleBox|클래스 또한 오브젝트 입니다.}}</center>
<center>{{HighlightDoubleBox|클래스 또한 오브젝트 입니다.}}</center>




더 나아가, 클래스는 2등급 오브젝트가 아닙니다: 클래스는 여러분이 메시지를 보내고 정밀검사하고 다른 작업들을 할 수 있는 1등급 오브젝트입니다. 이 의미는 스퀵은 개발자들에게 다량의 표현 능력을 제공하는 진정한 반영(reflective) 시스템 임을 보여줍니다.
더 나아가, 클래스는 2등급 오브젝트가 아닙니다: 클래스는 여러분이 메시지를 보내고 점검하고 다른 작업들을 할 수 있는 1등급 오브젝트입니다. 이런 특성은 스퀵이 개발자들이 많은것을 할 수 있게 해주는 진정한 표현적 시스템이라는 것을 의미합니다.
 
스퀵의 구현내용을 깊이 들어가보면, 세 가지 다른 종류의 오브젝트가 있다는것을 알 수 있습니다. (1) 참조로 전달하는 인스턴스 변수들을 가진 보통 오브젝트, (2) 값에 의해 전달하는 작은 정수인 보통 오브젝트, (3) 메모리의 인접한 부분을 차지하는 배열처럼, 색인화 가능한 오브젝트가 있습니다. 스몰토크의 아름다움은, 여러분이 이 세 종류의 오브젝트들 사이의 차이점에 관해 일반적으로 관심을 가질 필요가 없다는것에 있습니다.


스퀵의 실행을 깊이 들여다 보면, 3 가지 다른 종류의 오브젝트가 있습니다. 참조(reference)에 의해 패스되는 인스턴스 변수들(instance variables)을 가진 보통 오브젝트(1)가 있으며, 값에 의해 패스되는 작은 정수(small integers)가 있으며, 메모리의 인접한 부분을 차지하는 배열(arrays)와 같이, 색인을 달 수 있는 오브젝트가 있습니다. 스몰토크의 아름다움은, 여러분이 이 3 종류의 오브젝트들 사이의 차이점에 관해 평상시에 신경을 쓸 필요가 없다는 점에 있습니다.


==Notes==
==Notes==
<references />
<references />


[[Category:SqueakByExample]]
[[Category:SqueakByExample]]

Revision as of 14:08, 4 March 2013

모든 것은 오브젝트다

"모든 것은 오브젝트다" 라는 문구는 상당한 중독성이 있습니다. 스몰토크로 조금이라도 작업을 해본다면, 이 규칙이 당신이 하려는 모든 작업을 얼마나 단순하게 만드는지에 대해 놀랄겁니다. 예를 들면, 정수는 실제로 오브젝트이므로, 여러분은 다른 객체에 메시지를 보냈던 것처럼, 정수에도 역시 메시지를 보낼 수 있습니다.

3+4 ⇒ 7 ""7을 얻기 위해 '+ 4'를 3으로 보냅니다"
20 factorial ⇒ 2432902008176640000 "큰 수를 위해 팩토리얼을 보냅니다"


20의 계승 표시는 분명히 7의 계승과는 다른 표시를 보여줍니다. 그 이유는 둘 다 오브젝트이지만, 어떤 코드도, 심지어 계승의 실행까지도, 이 표시에 관해 현재 값이 될 필요가 있습니다. 아마도 이 규칙의 가장 근본적인 결과는 다음 내용입니다.


20 factorial 이라는 표현과 7 은 분명 다르지만, 둘 다 일반 문법이 아닌 오브젝트이기 때문에 어떤 코드도 -하다못해 factorial 의 구현조차도- 알아야할 필요는 없습니다. 이러한 규칙으로 알 수 있는 결과는 다음과 같습니다.

클래스 또한 오브젝트 입니다.


더 나아가, 클래스는 2등급 오브젝트가 아닙니다: 클래스는 여러분이 메시지를 보내고 점검하고 다른 작업들을 할 수 있는 1등급 오브젝트입니다. 이런 특성은 스퀵이 개발자들이 많은것을 할 수 있게 해주는 진정한 표현적 시스템이라는 것을 의미합니다.

스퀵의 구현내용을 깊이 들어가보면, 세 가지 다른 종류의 오브젝트가 있다는것을 알 수 있습니다. (1) 참조로 전달하는 인스턴스 변수들을 가진 보통 오브젝트, (2) 값에 의해 전달하는 작은 정수인 보통 오브젝트, (3) 메모리의 인접한 부분을 차지하는 배열처럼, 색인화 가능한 오브젝트가 있습니다. 스몰토크의 아름다움은, 여러분이 이 세 종류의 오브젝트들 사이의 차이점에 관해 일반적으로 관심을 가질 필요가 없다는것에 있습니다.


Notes