Megazone Corp. R&D Dept.

25
Megazone Corp. R&D Megazone Corp. R&D Dept. Dept. About About

description

About. Ruby. Megazone Corp. R&D Dept. 목 차. 루비가 뭐지 ? 아하 ~! 이런 특징이 !! 뭐가 좋은 거야 ? 다 좋을 수는 없다 . 이걸로 뭘 할 수 있을까 ? 기찻길 위의 루비 (Ruby on Rails). 루비가 뭐지 ?. 루비가 뭐지 ( 기본 )?. 샬라 샬라. 루비 ~!!. O. X. 7 월의 탄생석 , 결혼 15 주년 기념석 , 순정 만화의 주인공 이름 태양 , 정렬 , 열정. 스크립트 프로그램 언어. 루비가 뭐지 ( 창시자 )?. - PowerPoint PPT Presentation

Transcript of Megazone Corp. R&D Dept.

Page 1: Megazone Corp.  R&D Dept.

Megazone Corp. R&D Dept.Megazone Corp. R&D Dept.

AboutAbout

Page 2: Megazone Corp.  R&D Dept.

목 차목 차

• 루비가 뭐지 ?

• 아하 ~! 이런 특징이 !!

• 뭐가 좋은 거야 ?

• 다 좋을 수는 없다 .

• 이걸로 뭘 할 수 있을까 ?

• 기찻길 위의 루비 (Ruby on Rails)..

Page 3: Megazone Corp.  R&D Dept.

루비가 뭐지루비가 뭐지 ??

Page 4: Megazone Corp.  R&D Dept.

루비가 뭐지루비가 뭐지 (( 기본기본 )?)?

루비루비 ~!!~!!

7 월의 탄생석 , 결혼 15 주년 기념석 ,

순정 만화의 주인공 이름태양 , 정렬 , 열정

스크립트 프로그램 언어

샬라 샬라

Page 5: Megazone Corp.  R&D Dept.

루비가 뭐지루비가 뭐지 (( 창시자창시자 )?)?

마츠모토 유키히로마츠모토 유키히로별칭 별칭 : Matz(: Matz( 마츠마츠 ))

• 1993 년 2 월 24 일 루비를 처음 선 보임

• “ 제 삶의 목적은 즐거움입니다 . 프로그래머 들은 창조적인 면에 집중할 수 있을 때 즐거워 합니다 . 루비루비는 프로그래머들프로그래머들을 행복행복하게 하기 위해 설계되었습니다 .” - (2005 년 루비 2.0 컨퍼런스 에서 )

Page 6: Megazone Corp.  R&D Dept.

루비가 뭐지루비가 뭐지 (( 정의정의 )?)?

• SmalltalkSmalltalk + LispLisp + PerlPerl 의 교착점

• SmalltalkSmalltalk 의 객체 지향성 프로그래밍

• LispLisp 의 Closure(블록 ) 과 메타 프로그래밍

• PerlPerl 의 강력한 정규식 기능

Smalltalk

Lisp Perl

RubyRuby

Page 7: Megazone Corp.  R&D Dept.

아하아하 ~! ~! 이런 특징이이런 특징이 !!

Page 8: Megazone Corp.  R&D Dept.

• SmalltalkSmalltalk 의 객체 지향 프로그래밍 .• 모든 데이터는 객체

>> 123+5128

>> 123.+(5)128

>>-123.abs123

※※123123 이란 객체에 ++ 라는 메소드( 연산에 ‘ .’ 을 주의깊게 )

아하아하 ~! ~! 이런 특징이이런 특징이 !(!( 객체 지객체 지향향 ))

Page 9: Megazone Corp.  R&D Dept.

아하아하 ~! ~! 이런 특징이이런 특징이 !(!( 블록블록 ))

• Closure(=Closure(= 블록블록 )) : 이름이 없는 함수 (=Python 의 lambda)

>> [“apart”, “banana”].map{ | fruit | fruit.upcaseA } [“ApArt”, “bAnAnA”]

>> [“a”, “b”, “c”].collect{ | x | x+”!” } [“a!”, “b!”, “c!”]

>> a = [“a”, “b”, “c”]>> a.delete_if{ | x | x >= “b” } [“a”]

Page 10: Megazone Corp.  R&D Dept.

아하아하 ~! ~! 이런 특징이이런 특징이 !(!( 메타 메타 프로그래밍프로그래밍 ))

• 프로그램 코드를 생성하는 프로그램 ( 반복 코드 생성 )• Getter 와 setter 를 런타임에 자동 생성

>> Class Persion>> def name ⇒ gettter>> return @name>> end>> def name=(name) ⇒ setter>> @name=name>> end>> end

>> attr_accessor “name”

>> class_eval “def #{str}; @#{str}; end”

Page 11: Megazone Corp.  R&D Dept.

아하아하 ~! ~! 이런 특징이이런 특징이 !(!( 기타기타 ))

열린구조 ( 클래스의 재정의 )

객체의 재정의

리플렉션 ( 형태 , 메소드 등 )

직관적이고 심플한 형태의 코드

Page 12: Megazone Corp.  R&D Dept.

뭐가 좋은거야뭐가 좋은거야 ??

Page 13: Megazone Corp.  R&D Dept.

뭐가 좋은 거야뭐가 좋은 거야 ??

• 레일스레일스를 통한 빠른 웹 개발 속도 ( 자바의 5 배

이상 )

• 웹 웹 2.02.0 에 적합한 환경 (Active Record, Action Maile

r, Active Web Server)

• 다양한 환경에서의 스크립팅 ( 유닉스 , 맥 OS,

윈도우 )

Page 14: Megazone Corp.  R&D Dept.

웹 웹 2.02.0 과 루비과 루비 (( 레일스레일스 ))• MVC 모델의 지원 (Active Record, Action Controll

er, Action View)

• Ajax Ajax 지원하는 충분한 프레임웍

Page 15: Megazone Corp.  R&D Dept.

다 좋을 수는 없다다 좋을 수는 없다 ..

Page 16: Megazone Corp.  R&D Dept.

다 좋을 수는 없다다 좋을 수는 없다 ..

• 느린 실행 속도-> 최적화 필요 모듈은 C 언어로 개발 필요

• 다소 제한적인 유니코드 지원-> 필수 메소드 중 일부 바이트 단위에서만 동작

Page 17: Megazone Corp.  R&D Dept.

이걸로 뭘 할 수 있을까이걸로 뭘 할 수 있을까 ??

Page 18: Megazone Corp.  R&D Dept.

이 것으로 만들 수 있다이 것으로 만들 수 있다 ..

• 윈도우 기반의 개발 : SciTE, UltraEdit, TextPad

• 레일스 개발 : RadRails(Eclipse 기반 )

• 맥 OS 기반의 개발 : TextMate, TextWrangler)

• 유닉스 기반의 개발 : Emacs, Vim

• 라이브러리 관리 툴 : 루비잼

Page 19: Megazone Corp.  R&D Dept.

이렇게 만들어 진 것이렇게 만들어 진 것

• 스프링 노트 ( 개인화 /공유 웹 노트 )

• ThoughtWorks( 컨설팅 )

• Amazon( 인터넷 쇼핑몰 )

• EarthLink( 인터넷 , 네트워크 서비스 )

Page 20: Megazone Corp.  R&D Dept.

루비루비 ? ? 갑자기 왜이리 시끄러워갑자기 왜이리 시끄러워 ..

• 일본 , 영어와의 장벽

• 루비는 일본인 들 만의 것 ?

•꿈틀 꿈틀 루비 , 그리고 레일스 .

• 웹의 새로운 세상 웹 2.0 과의

만남

Page 21: Megazone Corp.  R&D Dept.

기찻길 위의 루비기찻길 위의 루비 (Ruby on (Ruby on Rails)…Rails)…

Page 22: Megazone Corp.  R&D Dept.

기찻길기찻길 ?(?( 레일스레일스 ?, Rails?)?, Rails?)

• 루비 언어를 기반으로 한 웹 애플리케이션 프레임워크

• 개발환경 , 테스트 환경 , 운영환경이 모두 포함 되어 있으며 또한 각각 구분되어 있는 테스트 주도적인 프레임워크

• 루비의 특성을 잘 살려 복잡한 웹 개발 환경에서 유연하게 대처할 수 있는 환경을 제공

Page 23: Megazone Corp.  R&D Dept.

레일스가 주목 받는 이유레일스가 주목 받는 이유

• 빠른 개발 생산성– 레일스 프레임워크를 사용함으로써 자바보다 5 배 ,

다른 프레임워크 대비 10 배 빠른 생산성– DRY (Don’t Repeat Yourself) 원칙으로 코드의 중복을 줄임

– 메타 프로그래밍을 이용한 직관적인 코드

• 엔터프라이즈 환경에서 사용– 웹서비스 , SOA, 웹애플리케이션 등에 활용 중인 외국의 IT 회사가 많음

– C, .NET, 자바 등에 API가 지원 됨으로써 폭넓은 확장성을 가짐

Page 24: Megazone Corp.  R&D Dept.

간단한 블로그 제작 데모간단한 블로그 제작 데모

•시스템 환경– 루비 1.8.6-25 win32– 루비에서 설치한 레일스 1.2.3– MySQL 5.0.41 win32

•데모 내용– Scaffold 를 이용하여 CRUD 게시판 생성– RSS, 트랙백 , 태그 , 오픈 API 기능 구현

Page 25: Megazone Corp.  R&D Dept.

참고자료참고자료• 마이크로 소프트웨어 2006년 10 월호

기사 : 웹 2.0 과 루비 온 레일스 (Ruby on Rails)

• Ruby on Rails 웹 애플리케이션 구축 : http://blog.naver.com/paradozz.do?Redirect=Log&logNo=31710818

• 한국 루비 사용자 포럼 : http://forum.rubykr.org/