Megazone Corp. R&D Dept.
-
Upload
grizelda-thomas -
Category
Documents
-
view
23 -
download
0
description
Transcript of Megazone Corp. R&D Dept.
Megazone Corp. R&D Dept.Megazone Corp. R&D Dept.
AboutAbout
목 차목 차
• 루비가 뭐지 ?
• 아하 ~! 이런 특징이 !!
• 뭐가 좋은 거야 ?
• 다 좋을 수는 없다 .
• 이걸로 뭘 할 수 있을까 ?
• 기찻길 위의 루비 (Ruby on Rails)..
루비가 뭐지루비가 뭐지 ??
루비가 뭐지루비가 뭐지 (( 기본기본 )?)?
루비루비 ~!!~!!
7 월의 탄생석 , 결혼 15 주년 기념석 ,
순정 만화의 주인공 이름태양 , 정렬 , 열정
스크립트 프로그램 언어
샬라 샬라
루비가 뭐지루비가 뭐지 (( 창시자창시자 )?)?
마츠모토 유키히로마츠모토 유키히로별칭 별칭 : Matz(: Matz( 마츠마츠 ))
• 1993 년 2 월 24 일 루비를 처음 선 보임
• “ 제 삶의 목적은 즐거움입니다 . 프로그래머 들은 창조적인 면에 집중할 수 있을 때 즐거워 합니다 . 루비루비는 프로그래머들프로그래머들을 행복행복하게 하기 위해 설계되었습니다 .” - (2005 년 루비 2.0 컨퍼런스 에서 )
루비가 뭐지루비가 뭐지 (( 정의정의 )?)?
• SmalltalkSmalltalk + LispLisp + PerlPerl 의 교착점
• SmalltalkSmalltalk 의 객체 지향성 프로그래밍
• LispLisp 의 Closure(블록 ) 과 메타 프로그래밍
• PerlPerl 의 강력한 정규식 기능
Smalltalk
Lisp Perl
RubyRuby
아하아하 ~! ~! 이런 특징이이런 특징이 !!
• SmalltalkSmalltalk 의 객체 지향 프로그래밍 .• 모든 데이터는 객체
>> 123+5128
>> 123.+(5)128
>>-123.abs123
※※123123 이란 객체에 ++ 라는 메소드( 연산에 ‘ .’ 을 주의깊게 )
아하아하 ~! ~! 이런 특징이이런 특징이 !(!( 객체 지객체 지향향 ))
아하아하 ~! ~! 이런 특징이이런 특징이 !(!( 블록블록 ))
• 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”]
아하아하 ~! ~! 이런 특징이이런 특징이 !(!( 메타 메타 프로그래밍프로그래밍 ))
• 프로그램 코드를 생성하는 프로그램 ( 반복 코드 생성 )• 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”
아하아하 ~! ~! 이런 특징이이런 특징이 !(!( 기타기타 ))
열린구조 ( 클래스의 재정의 )
객체의 재정의
리플렉션 ( 형태 , 메소드 등 )
직관적이고 심플한 형태의 코드
뭐가 좋은거야뭐가 좋은거야 ??
뭐가 좋은 거야뭐가 좋은 거야 ??
• 레일스레일스를 통한 빠른 웹 개발 속도 ( 자바의 5 배
이상 )
• 웹 웹 2.02.0 에 적합한 환경 (Active Record, Action Maile
r, Active Web Server)
• 다양한 환경에서의 스크립팅 ( 유닉스 , 맥 OS,
윈도우 )
웹 웹 2.02.0 과 루비과 루비 (( 레일스레일스 ))• MVC 모델의 지원 (Active Record, Action Controll
er, Action View)
• Ajax Ajax 지원하는 충분한 프레임웍
다 좋을 수는 없다다 좋을 수는 없다 ..
다 좋을 수는 없다다 좋을 수는 없다 ..
• 느린 실행 속도-> 최적화 필요 모듈은 C 언어로 개발 필요
• 다소 제한적인 유니코드 지원-> 필수 메소드 중 일부 바이트 단위에서만 동작
이걸로 뭘 할 수 있을까이걸로 뭘 할 수 있을까 ??
이 것으로 만들 수 있다이 것으로 만들 수 있다 ..
• 윈도우 기반의 개발 : SciTE, UltraEdit, TextPad
• 레일스 개발 : RadRails(Eclipse 기반 )
• 맥 OS 기반의 개발 : TextMate, TextWrangler)
• 유닉스 기반의 개발 : Emacs, Vim
• 라이브러리 관리 툴 : 루비잼
이렇게 만들어 진 것이렇게 만들어 진 것
• 스프링 노트 ( 개인화 /공유 웹 노트 )
• ThoughtWorks( 컨설팅 )
• Amazon( 인터넷 쇼핑몰 )
• EarthLink( 인터넷 , 네트워크 서비스 )
루비루비 ? ? 갑자기 왜이리 시끄러워갑자기 왜이리 시끄러워 ..
• 일본 , 영어와의 장벽
• 루비는 일본인 들 만의 것 ?
•꿈틀 꿈틀 루비 , 그리고 레일스 .
• 웹의 새로운 세상 웹 2.0 과의
만남
기찻길 위의 루비기찻길 위의 루비 (Ruby on (Ruby on Rails)…Rails)…
기찻길기찻길 ?(?( 레일스레일스 ?, Rails?)?, Rails?)
• 루비 언어를 기반으로 한 웹 애플리케이션 프레임워크
• 개발환경 , 테스트 환경 , 운영환경이 모두 포함 되어 있으며 또한 각각 구분되어 있는 테스트 주도적인 프레임워크
• 루비의 특성을 잘 살려 복잡한 웹 개발 환경에서 유연하게 대처할 수 있는 환경을 제공
레일스가 주목 받는 이유레일스가 주목 받는 이유
• 빠른 개발 생산성– 레일스 프레임워크를 사용함으로써 자바보다 5 배 ,
다른 프레임워크 대비 10 배 빠른 생산성– DRY (Don’t Repeat Yourself) 원칙으로 코드의 중복을 줄임
– 메타 프로그래밍을 이용한 직관적인 코드
• 엔터프라이즈 환경에서 사용– 웹서비스 , SOA, 웹애플리케이션 등에 활용 중인 외국의 IT 회사가 많음
– C, .NET, 자바 등에 API가 지원 됨으로써 폭넓은 확장성을 가짐
간단한 블로그 제작 데모간단한 블로그 제작 데모
•시스템 환경– 루비 1.8.6-25 win32– 루비에서 설치한 레일스 1.2.3– MySQL 5.0.41 win32
•데모 내용– Scaffold 를 이용하여 CRUD 게시판 생성– RSS, 트랙백 , 태그 , 오픈 API 기능 구현
참고자료참고자료• 마이크로 소프트웨어 2006년 10 월호
기사 : 웹 2.0 과 루비 온 레일스 (Ruby on Rails)
• Ruby on Rails 웹 애플리케이션 구축 : http://blog.naver.com/paradozz.do?Redirect=Log&logNo=31710818
• 한국 루비 사용자 포럼 : http://forum.rubykr.org/