Whiteship's Note

Ruby Is an Object-Oriented Language

RUBY/Manual : 2006.09.17 12:13


Ruby.new


이 책을 Top-down방식으로 구성하기 위해서 class와 object가 먼저 나오고 그 다음에 세부적인 문법들을 다루려고했지만 string이나 if문 연산자와 같이 기본적인 것을 모르면 class의 예를 들기가 어렵기 때문에 전체적으로는Top-down 방식으로 기술하지만 거기에 사용된 예를 이해하기 위한 세부적인 것 까지 추가하여 다르게 됩니다.

그럼 이제 부터 Ruby를 시작하기에 앞서 Ruby의 중요한 특징과 Ruby에서 사용되는 특별한 단어들에 대한 짧은 tutorial을 보겠습니다.

Ruby Is an Object-Oriented Language

Ruby는 진짜 객체지향 언어 입니다. 당신이 만들어 내는 모든 것이 객체 이고 그것들의 연산의 결과 역시 객체입니다. 하지만, 많은다른 언어들도 똑같이 객체 지향이라고 주장하며, 종종 객체 지향에 대한 다른 해석과 그들만이 사용하는 개념에 대한 다른 용어들을가지고 말을 합니다.

따라서 보다 세부적인 내용을 살표보기 전에, 먼저 우리가 사용할 용어들을 간략히 살펴봅시다.

Class는 state와 state를 사용하는 method들의 combination입니다.
(아래는 원문입니다.)
A class is a combination of state (forexample, the name of the song)and methods that use that state (perhapsa method to play the song).
Object는 class instance와 같은 말입니다.
(아래는 원문입니다.)
The word objectis usedinterchangeably with class instance (and being lazy typists,we'llprobably be using the word ``object'' more frequently).
Ruby는 이런 객체들은 생성자를 호출해서 만들 수 있습니다. 생성자는 class와 관련된 특별한 메소드 입니다. 기본 생성자는 new 를 통해서 불려집니다.

[CODE]song1 = Song.new("Ruby Tuesday")
song2 = Song.new("Enveloped in Python")
# and so on[/CODE]

이런 객체들은 같은 class로 부터 생성되었지만 그들은 각각 유일한 특성들을 가지고 있습니다.
먼저, 모든 객체들은 유일(무이)한 object identifier(짧게 object id라고도 합니다)를 가지고 있습니다.둘째,  당신은 instance variables을 정의할 수 있습니다. instance variable이란 각각의 객체에유일한 값을 가지고 있는 변수들을 말합니다. 이러한 변수들은 객체의 상태를 나타냅니다.

각각의 class들은 또한instance method들을 정의할 수 있습니다. 각각의 method는 자기 자신에 의해 호출되거나 class 밖에서호출되는 기능의 덩어리 입니다. 이러한 instance method들은 객체의 instance 변수와 객체의 상태에 접근할 수있고 습니다.

Method들은 객체에 메시지를 보내어 호출 됩니다(are invoked). message는method의 이름과 method가 필요로 하는 parameter들이 딸려 있습니다. 객체가 message를 받으면 해당하는method를 자신의 class에서 찾습니다. 만약에 발견하면 그 method는 수행되며 만약에 찾지 못하면...이 부분은나중에 다루겠습니다.

복잡하게 들릴지 모르겠지만 실제로는 매우 자연스럽습니다. 몇몇 method 호출을 살펴보겠습니다.(기억하세요 code 예제에 있는 화살표는 리턴되는 값을 보여줍니다.)

"gin joint".length » 9
"Rick".index("c") » 2
-1942.abs » 1942
sam.play(aSong) » "duh dum, da dum de dum ..."

Here, the thing before the period is called the receiver, andthe name after the period is the method to be invoked.  <- 무슨말인지 모르겠네요;
첫번째 것은 string의 길이를 요청했고, 두번쨰는 c가 몇번째에 있는지 알려달라고 했습니다. 세번째는 절대값을 마지막은 sam에게 노래를 불러 달라고 요청했습니다.

이쯤에서 다른 언어들과 Ruby의 차이를 말해야겠네요. Java에서는 어느 수의 절대값을 알고싶을 때 그 수를 따로 분리 되어 있는 함수를 호출하면서 인자로 넘깁니다. 아마도 다음과 같이 사용할 것입니다.
[CODE]number = Math.abs(number)     // Java code[/CODE]
Ruby에서는 절대값을 구하는 기능은 숫자들에 내장되어 있습니다. 세부사항은 숫자들이 내부적으로 알아서 관리합니다. 당신은 간단하게 abs message를 보내면 되는 것입니다.
[CODE]number = number.abs[/CODE]
이러한 것은 모든 Ruby객체에 적용됩니다: 이밖에도 C언어 에서는 strlen(name)이런 방법을 사용할 것을 Ruby에서는name.length를 사용합니다. 바로 이 부분이 우리가 Ruby가 진짜 객체 지향이라고 말하는 이유입니다.
신고

'RUBY > Manual' 카테고리의 다른 글

Reading and 'Riting  (0) 2006.11.04
Blocks and Iterators  (0) 2006.11.03
Regular Expressions  (0) 2006.10.05
Control Structures  (0) 2006.10.04
Arrays and Hashes  (0) 2006.10.02
Some Basic Ruby  (0) 2006.09.26
Ruby Is an Object-Oriented Language  (0) 2006.09.17
Roadmap  (0) 2006.09.16
top


Ruby 설치하기

RUBY/Getting Started : 2006.09.16 11:24


http://www.ruby-lang.org/en/downloads/
위 링크에서 글을 보고 있습니다.

저는 windows에서 해볼 것이기 때문에 아랫 부분만을 봤습니다.

Ruby on Windows

TheWindows platform has several options for installing Ruby. The firstoption is simply installing the compiled binaries. The second option isto use the one-click installer. If you’re unsure about how to installRuby, the one-click installer may be the best option for you. (Inaddition to Ruby, the one-click installer also comes with a bunch ofadditional libraries built in.)


두 가지 방법이 있는 하나는 컴파일 된 바이너리 파일들을 설치하는 것이고 다른 방법은 훨씬 간펴한 원클릭 인스톨러로 설치하는 것이군요.

당연히;; 간편하게 원클릭 인스톨러를 다운 받습니다.

윽.. 인터넷이 느린건지 시간이 좀 걸리네요..

다운받는 동안
http://tryruby.hobix.com/
이 곳에서 Ruby를 체험해 볼 수 있습니다.

와.. 엄청나네요.. 이걸 어떻게 만들었을지.. 정말 아이디어 부터 디자인, 개발 한 것 까지 정말 대단하네요.. 시간가는 줄 모르고 빠져들었습니다. ㅋ 다운로드가 다 됐슴에도 불구하고 끝까지 따라 해보고 있습니다.

역시 설치는 클릭 몇번이면 끝나는 군요.

freeRIDE라는 IDE를 실행하고 다운받는 동안 놀아봤던 간단한 문장 몇개를 적은 뒤 run을 실행해 봤습니다.
그러나.. window에서 사용할 때는 debug 옵션에서 무언가 체크해줘야 한다는 에러메시지가 출력되더군요.
그래서 옵션이 어디있는가 찾아 보다가.. debug를 클릭했더니 ㅜㅜ 얼었네요.. 아 갈길이 머네요. 오늘은 한탬포 쉬겠습니다.




신고

'RUBY > Getting Started' 카테고리의 다른 글

RoR vs Java  (2) 2007.06.09
Eclipse에서 Ruby사용하기.  (0) 2006.09.22
Ruby in Twenty Minutes 4  (0) 2006.09.21
Ruby in Twenty Minutes 3  (0) 2006.09.20
Ruby in Twenty Minutes 2  (2) 2006.09.19
Ruby in Twenty Minutes 1  (0) 2006.09.18
Ruby 설치하기  (0) 2006.09.16
top

TAG install, ruby

Roadmap

RUBY/Manual : 2006.09.16 10:13


http://www.rubycentral.com/book/roadmap.html
위에 링크된 페이지를 보며 글을 작성합니다.

이 책은 총 네 파트로 나뉘어 지는데 다음과 같습니다.

In Part I, Ruby의 다양한 측면, Ruby tutorial을 보시게 됩니다. Ruby를 특별하게 하는 용어들과 개념에 대한 짧은 챕터들로 시작합니다. 물론 이 챕터들은 다른 챕터를 이해하기 위한 충분한 기본 문법도 제공합니다. tutorial은 top-down 방식으로  이 언어를 살펴볼 것입니다. 따라서 classes, objects, types , expressions 과 언어를 구성하는 모든 것을 살펴 볼 것입니다. 우리는 또한 문제가 발생했을 때 당신을 도울 수 있는 간략한 챕터로 마무리를 할 것입니다.

Ruby의 가장 멋진 점 중에 하나가 바로 주변 환경과 얼마나 잘 통합되느냐 입니다.
Part II, Ruby in Its Setting, 이부분을 공부하세요. 이 부분에서 당신은 Ruby를 실행하고, web에서 Ruby를 사용하기 위한 실용적인 정보를 찾을 수 있습니다. 당신은 Tk를 사용해서 어떻게 GUI를 생성하는지, 그리고 MS Windows 환경에서 Ruby를 어떻게 사용할지(native API calls, COM integration, Windows Automation) 배우게 될 것입니다. 결국에 Ruby를 확장하거나 당신의 code에 Ruby를 심는(embed) 것이  얼마나 쉬운지 알게 될 것입니다.

Part III, Ruby Crystallized, 이 부분은 매우 구체적인 내용을 포함하고 있습니다. 이 부분에서 당신은 언어의 매우 섬세한 모든 부분(the metaclassmodel, tainting, reflection, and marshaling)에 대해 볼 수 있습니다. You could probablyspeed-read this the first time through, but we found ourselves usingthe tables in this section even as we were writing the rest of thebook.


The Ruby Library Reference is Part IV. 매우 큽니다. 우리의 40개 이상의 기존에 만들어진 class와 mudule들에 있는 800개가 넘는 method들을 문서화 했습니다. It's big. We documentover 800 methods in more than 40 built-in classes and modules. 그중에서도, 우리는 Ruby에 있어 좀더 유용한 library module들 중 일부를 70페이지에 걸쳐 기술했습니다.


자 그럼 이책을 어떻게 읽어야 할까요?

그문제는 당신에게 달려있습니다. 당신의 일반적인 programming에 대한 level과 일부는 OO에 따라 당신은 이 책의 아주 적은 부분만을 읽기를 원할 것입니다. 그래서 우리가 다음과 같이 추천해 드립니다.

만약에 당신이 초보자라면, Part 1부터 읽기 바랍니다. 프로그램들을 작성할 때 library reference를 가까이 두기바랍니다. Array, Hash와 String같은 기본 class에 친숙해 지기 바랍니다. 환경에 점차 익숙해 짐에 따라, 당신은 Part 3에 있는 좀더 세밀한 부분을 알고 싶어질 것입니다.

만약에 자신이 Perl, Python, Java, or Smalltalk들에 익숙하다면,Chapter 2 부터 읽기를 제안합니다. 여기서 당신은 책을 따라 천천히 꾸준하게 책을 읽을 수도 있으며, 모든 부분을 skip하고 Part 3의 세밀한 부분으로 갈 수있습니다.

전문가들과 ``I-don't-need-no-stinking-tutorial'' 타입의 사람들은 199page부터 시작하는 Chapter 18에 있는 reference로 바로 뛰어 들 수 있습니다. library reference를 대강 살펴보더나 coffee coaster로 책을 사용할 수 있습니다.

물론, 책을 처음부터 읽거나 자신이 원하는 대로 읽어도 괜찮습니다.

아 그리고 잊지마세요. 만약에 자신이 알아 낼 수 없는 문제가 발생했을 때 도움을 드립니다. page 525쪽 부터 시작하는 Appendix C에 많은 정보가 있습니다.

신고

'RUBY > Manual' 카테고리의 다른 글

Reading and 'Riting  (0) 2006.11.04
Blocks and Iterators  (0) 2006.11.03
Regular Expressions  (0) 2006.10.05
Control Structures  (0) 2006.10.04
Arrays and Hashes  (0) 2006.10.02
Some Basic Ruby  (0) 2006.09.26
Ruby Is an Object-Oriented Language  (0) 2006.09.17
Roadmap  (0) 2006.09.16
top







티스토리 툴바