첫번째 Ruby에 대한 번역서로 Ruby기본서가 아닌 rails가 먼저 나온것 만으로 Ruby와 Rails는 밀접한 관계가 있다.

많은 관심을 못 가졌던 ruby자체도 Rails를 통해서 많은 흥행을 이루어낸 것도 사실이다.

주무기 자바를 가지고, 스크립트 주무기가 필요한 시점에 Ruby는 나에게 신선한 충격이었고, Rails는 새로운 방식(?)의 개발방법으로 웹개발을 빠르게 할수 있다.


Daum DNA를 통해서 이벤트를 하고 있다.
http://dna.daum.net/archives/86

한빛출판사와 다음커뮤니케이션 공동 협찬으로 이곳 DNA를 통해 무료 배포 이벤트를 진행합니다. 12월 29일까지 루비온레일즈 도서 소개글을 작성하시어 트랙백을 보내주세요. 이 중 15분을 추첨하여 무료로 책을 보내드립니다

1권 보내주세요!!! 네!!!


[예약판매]Ruby on Rails - 초고속 웹 개발의 시작

Bruce A. Tate (브루스 테이트),커트 힙스(Curt Hibbs) / 한빛미디어

Ruby Basic Syntax

2006/12/14 09:43

Ruby의 기본적인 syntax를 알아보자

기본적인 Rule

  • Ruby는 문장 끝에 세미콜론(;)을 붙이지 않는다.
  • 한줄 주석은 #
  • 전역변수 앞에는 $
  • 인스턴스 변수앞에는 @
  • 클래스 변수앞에는 @@

Arrays and Hashes

  a = [1, 2, 3]
  puts a[1] # array

  struct = Hash.new(1) # default value
  puts struct['key']
  struct['key'] = struct['key'] + 1
  puts struct['key']

별설명이 필요가 없다. 예제만 보면 대략감으로 알수 있다.
특징적인 것은 Hash.new(defaultValue)라는 것이다.


Control Structures

가장 중요한 것중의 하나인 분기하는 것이다.

if( struct['key'] == 2)
  puts "succees : #{struct['key']}"
  else
  puts "error"
  end

스크립트 언어의 특징중 간단함을 느낄수 있다. 쉘스크립트랑 거의 유사하다.

i = 0
  while i< 10
  i=i+1
  end
  puts i    # 10

loop문이다. 이것 역시 단순하다. 1을 10번 더하면 10이다.






일반적으로 abs를 하는 예제이다.

number = Math.abs(number) // Java code

number = number.abs // Ruby code


strlen(name) // C

name.length // Java, Ruby code


"이런 부분이 Ruby가 진정한 OOP언어라고 말할수 있다."
- Programming Ruby,Dave Thomas

랭귀지를 떠나서, OO적인 프로그래밍을 하려면 기본적으로 어떻게 코딩해야 하는가를 보여주는 예제로 볼수도 있다.

OO랭귀지를 아직도 procedural스타일로 코드를 짜는 사람이 많은데, 좀더 생각을 해보자. 복잡한 문제 해결을 위해서 어떤 방법이 정말 유지보수를 편하게 할수 있는지.

기본적으로 중복코드가 적고, 데이터가 적게 움직이면, 그 만큼 유지보수 비용이 절감할 수밖에 없다. 약간의 학습곡선이 필요한 부분(디자인 설계와 같은 부분)도 존재하겠지만, 학습곡선을 통해서 좀더 편해질수 있는 것은 불변의 진리다.

학습곡선이 싫다고, 구구단을 외우지 않고, 계속 더하기만 할것인가? 게으름때문에 학습을 피하는 것은 잘못된 생각이다. 학습을 통해서 게을러지자.

왜 객체지향인가?에 대한 질문과 대답들은 너무도 많은 책들과 페이퍼에 나와서 여기서는 생략한다. 그마져도 중복일수 있으므로....

원칙이라는 것은 대부분 많은 경험에서 나오는 관습과 같은 것이므로 스페셜한 케이스가 아니라면, 가능한 지켜주자.

난 요즘 SRP(Single Responsiblity Principle), LSP(Liskov Substitution Principle) 등등의 객체지향원칙을 당연한 이야기지만, 더 지키려고 노력한다.

그리고, 우리가 정말 테스트하기 쉬운 코드를 작성하고 있는지 다시 한번 생각을 해보자. 대부분의 경우 테스트가 어려우면 디자인이나 dependency관계에 문제가 있고 객체지향원칙들이 깨지고 있는 것이다.

OOP만큼 중요한 것은 OO-System이다. 가령, 단순하게 procedural한 수정(인터페이스 변경이 아닌 내부 로직이나 알고리즘 변경같은것)을 했는데, 부적절한 관계로 다른 시스템에서 영향을 받는다면, 진정한 OO-System이 아닐것이다.
 

Hello, world @Ruby

2006/12/14 08:41
Hello, world는 개발자가 처음 랭귀지를 접할때 많은 자신감(?)을 가지게 해준다.

일단, 설치에 관련된 것은 모든 것이 끝났다는 것이고, 컴파일도 잘 된다는 의미이고, print 할수 있는 기술을 익혔다는 의미에서 이다.

그 다음 단계는 분기, 루프....이정도만 익히면, 간단한 프로그램을 짤수 있는 정도가 된다.

Ruby GEMS를 설치하고, RadRails IDE를 설치한 다음 IDE에서 Ruby가 설치된 경로에 실행파일만 설정해주면  끝~. 사실 이 마져도 내가 한게 아니라 스터디하는 중 순식간에 이루어졌지만...^^

스터디를 한지는 꽤 됐지만, 너무 미루었다. 오늘 스샷 올라간다.

예전에(자바를 처음 공부할때) 비해서 너무도 쉽게 찍은거 같아서 Ruby에게 미안(?)하다.

C를 하다가 자바로 넘어갈때는 이해가 안되는 부분이 엄청 많았는데, JAVA에서 Ruby는 좀더 쉽게 이해가 간다...헤헤~


User inserted image


Ruby is a genuine object-oriented language.

랭귀지 자체가 fluent API형태를 하고 있어서 더 OO스러운 듯하다. OO를 좋아하는 사람들은 Ruby의 매력에 빠질수 밖에 없을 듯하다.

내 주위에 자바개발자 몇명이 벌써 Ruby스러움에 반한 사람이 좀 있다.
이클립스에서 Ruby를 사용하기 위한 방법을 다각도 찾아보는 중 아래와 같은 링크를 찾을 수가 있었다.

whiteship의 블로그에서 링크를 가지고 왔고, 지금 바로 설치를 시도했으나, 열악한 인터넷 환경 덕택인지 직접 이클립스 업데이트 기능을 이용해서는 집에서 설치가 안되서, 회사에 가서 해봐야 겠다.


Eclipse에서 Ruby사용하기
http://whiteship.tistory.com/9

Ruby프로젝트 생성, test, debug.
http://www-128.ibm.com/developerworks/opensource/library/os-rubyeclipse/

Ruby 플러그인 설치 방법.
http://rubyeclipse.sourceforge.net/download.rdt.html

Radrails
http://www.radrails.org/

Programming Ruby

2006/11/19 09:12
전산을 하는 개발자는 항상 어느한쪽에 치우지지 않게 중심으로 잡는 노력이 필요하다. 경우에 따라서 달라지는 도메인 영역의 문제를 풀기위해서는 여러가지 방향으로 연구를 할 필요성이 있기때문이다,

랭귀지라는 관점에서 생각을 하면, 많은 랭귀지를 두루 알수록 더 좋은 사고를 할수 있게 될것이다. 대학때 자료구조 교수님의 말씀은 최대한 많은 랭귀지를 익혀라하고 말씀을 하셨는데, 전문가는 한쪽 분야만 깊게 들어가야 한다는 생각과 괴리감이 있었다.

하지만, Ruby와 Smalltak는 내가 가장 자신있는 랭귀지인 Java와 같은 OOP랭귀지이다. 난 OOP에 좀더 깊게 관심을 갖기로 마음을 먹었다.

Ruby공부를 시작했다.

Ruby는 진정한 객체지향 언어라고 소개를 하고 있는데, 일단 객체를 생성하는 부분은 맘에 든다.
song1 = Song.new("Ruby Tuesday")

앞으로 많은 부분을 올리도록 관심을 갖도록 해야지


Programming Ruby

David Thomas,Dave Thomas,Chad Fowler / Oreilly & Associates Inc

Ruby & Smalltalk Study 시작
http://blog.naver.com/django44/40030952835



BLOG main image
OOP and Java by ologist

공지사항

카테고리

All (649)
private!! (106)
WEB & IT (140)
Developer (400)