1 / 25

Megazone Corp. R&D Dept.

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

Download Presentation

Megazone Corp. R&D Dept.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. About Ruby Megazone Corp. R&D Dept.

  2. 목 차 • 루비가 뭐지? • 아하~! 이런 특징이!! • 뭐가 좋은 거야? • 다 좋을 수는 없다. • 이걸로 뭘 할 수 있을까? • 기찻길 위의 루비(Ruby on Rails)..

  3. 루비가 뭐지?

  4. 루비가 뭐지(기본)? 샬라 샬라 루비~!! O X 7월의 탄생석, 결혼 15주년 기념석, 순정 만화의 주인공 이름 태양, 정렬, 열정 스크립트 프로그램 언어

  5. 루비가 뭐지(창시자)? 마츠모토 유키히로 별칭 : Matz(마츠) • 1993년2월24일 루비를 처음 선 보임 • “제 삶의 목적은 즐거움입니다. 프로그래머 들은 창조적인 면에 집중할 수 있을 때 즐거워 합니다. 루비는 프로그래머들을 행복하게 하기 위해 설계되었습니다.” - (2005년 루비 2.0 컨퍼런스 에서)

  6. 루비가 뭐지(정의)? • Smalltalk + Lisp+ Perl의 교착점 • Smalltalk의 객체 지향성 프로그래밍 • Lisp의 Closure(블록)과 메타 프로그래밍 • Perl의 강력한 정규식 기능 Smalltalk Ruby Lisp Perl

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

  8. 아하~! 이런 특징이!(객체 지향) • Smalltalk의 객체 지향 프로그래밍. • 모든 데이터는 객체 ※123이란 객체에 +라는 메소드(연산에 ‘.’을 주의깊게) • >> 123+5 • 128 >> 123.+(5) • 128 >>-123.abs • 123

  9. 아하~! 이런 특징이!(블록) • 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”]

  10. 아하~! 이런 특징이!(메타 프로그래밍) • 프로그램 코드를 생성하는 프로그램(반복 코드 생성) • 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”

  11. 아하~! 이런 특징이!(기타) 열린구조(클래스의 재정의) 객체의 재정의 리플렉션(형태, 메소드 등) 직관적이고 심플한 형태의 코드

  12. 뭐가 좋은거야?

  13. 뭐가 좋은 거야? • 레일스를 통한 빠른 웹 개발 속도(자바의 5배 이상) • 웹 2.0에 적합한 환경(Active Record, Action Mailer, Active Web Server) • 다양한 환경에서의 스크립팅(유닉스, 맥OS, 윈도우)

  14. 웹 2.0과 루비(레일스) • MVC 모델의 지원(Active Record, Action Controller, Action View) • Ajax 지원하는 충분한 프레임웍

  15. 다 좋을 수는 없다.

  16. 다 좋을 수는 없다. • 느린 실행 속도 -> 최적화 필요 모듈은 C언어로 개발 필요 • 다소 제한적인 유니코드 지원 -> 필수 메소드 중 일부 바이트 단위에서만 동작

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

  18. 이 것으로 만들 수 있다. • 윈도우 기반의 개발: SciTE, UltraEdit, TextPad • 레일스 개발: RadRails(Eclipse 기반) • 맥 OS 기반의 개발: TextMate, TextWrangler) • 유닉스 기반의 개발: Emacs, Vim • 라이브러리 관리 툴: 루비잼

  19. 이렇게 만들어 진 것 • 스프링 노트(개인화/공유 웹 노트) • ThoughtWorks(컨설팅) • Amazon(인터넷 쇼핑몰) • EarthLink(인터넷, 네트워크 서비스)

  20. 루비? 갑자기 왜이리 시끄러워. • 일본, 영어와의 장벽 • 루비는 일본인 들 만의 것? • 꿈틀 꿈틀 루비, 그리고 레일스. • 웹의 새로운 세상 웹 2.0과의 만남

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

  22. 기찻길?(레일스?, Rails?) • 루비 언어를 기반으로 한 웹 애플리케이션 프레임워크 • 개발환경, 테스트 환경, 운영환경이 모두 포함 되어 있으며 또한 각각 구분되어 있는 테스트 주도적인 프레임워크 • 루비의 특성을 잘 살려 복잡한 웹 개발 환경에서 유연하게 대처할 수 있는 환경을 제공

  23. 레일스가 주목 받는 이유 • 빠른 개발 생산성 • 레일스 프레임워크를 사용함으로써 자바보다 5배, 다른 프레임워크 대비 10배 빠른 생산성 • DRY (Don’t Repeat Yourself) 원칙으로 코드의 중복을 줄임 • 메타 프로그래밍을 이용한 직관적인 코드 • 엔터프라이즈 환경에서 사용 • 웹서비스, SOA, 웹애플리케이션 등에 활용 중인 외국의 IT 회사가 많음 • C, .NET, 자바 등에 API가 지원 됨으로써 폭넓은 확장성을 가짐

  24. 간단한 블로그 제작 데모 • 시스템 환경 • 루비 1.8.6-25 win32 • 루비에서 설치한 레일스 1.2.3 • MySQL 5.0.41 win32 • 데모 내용 • Scaffold를 이용하여 CRUD 게시판 생성 • RSS, 트랙백, 태그, 오픈 API 기능 구현

  25. 참고자료 • 마이크로 소프트웨어 2006년 10월호 기사: 웹2.0과 루비 온 레일스 (Ruby on Rails) • Ruby on Rails 웹 애플리케이션 구축: http://blog.naver.com/paradozz.do?Redirect=Log&logNo=31710818 • 한국 루비 사용자 포럼: http://forum.rubykr.org/

More Related