1 / 47

Ruby on Rails – 1. Ruby

Ruby on Rails – 1. Ruby. Aon 의 공부하면서 만드는 세미나 1 탄. Ruby 는 어떤 언어 인가요 ?. 왼쪽의 사진에 있는 분이 만든 언어입니다 ( 그래서 가장 최신자료는 일본어 ㅡㅡ ) Perl + Smalltalk + Ada + Eiffel + Lisp => Ruby Imperative, Functional, following OOP. Yukihiro Matsumoto. Ruby 는 어떤 언어 인가요 ?.

Download Presentation

Ruby on Rails – 1. Ruby

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. Ruby on Rails – 1. Ruby Aon의 공부하면서 만드는 세미나 1탄

  2. Ruby는 어떤 언어 인가요? • 왼쪽의 사진에 있는 분이 만든 언어입니다 • (그래서 가장 최신자료는 일본어 ㅡㅡ) • Perl + Smalltalk + Ada + Eiffel + Lisp => Ruby • Imperative, Functional, following OOP Yukihiro Matsumoto

  3. Ruby는 어떤 언어 인가요? • Ruby = an interpreted scripting language for quick and easy object-oriented programming!

  4. Ruby는 어떤 언어 인가요? • Ruby = an interpreted scripting language for quick and easy object-oriented programming! • - OS call을 직접적으로 할 수 있다 • - 문자열 연산이나 정규표현식에 큰 장점 • - 개발하는 동안 즉각적인 피드백을 받을 수 있다

  5. Ruby는 어떤 언어 인가요? • Ruby = an interpreted scripting language for quick and easy object-oriented programming! • - 변수 선언이 필요 없고 타입 정할 필요도 ㄴㄴ • - 문법이 단순단순 • - 메모리 관리가 자동

  6. Ruby는 어떤 언어 인가요? • Ruby = an interpreted scripting language for quick and easy object-oriented programming! • - 모든 것이 객체객체해(class, method, inheritance) • - module 사용 • - singleton method

  7. Ruby는 어떤 언어 인가요? • Ruby = an interpreted scripting language for quick and easy object-oriented programming! • - 기타… • - 예외처리가 편리함 • - 숫자 담을 수 있는 범위가 존나 큼!(40!도 담을 수 있을 정도?) • - 쓰레드처리가 편리함

  8. 이제부터 본격적으로 시작!

  9. Ruby를 사용하는 방법 대화형 interpreter를 이용하면 코드에 대한 결과를 바로 볼 수 있다 아래와 같이 shell에irb를 입력하면 실행된다.(irb = interactive ruby)

  10. Ruby를 사용하는 방법 파일명.rb에 스크립트를 작성해서 사용할 수도 있다. • 스크립트를 작성한 후에 $ ruby 파일명.rb로 스크립트를 실행할 수 있다. • 파일 가장 윗줄에 #! /usr/bin/env ruby를 추가하면 ./파일명.rb로 스크립트를 실행할 수 있다. • (물론 그 전에 chmod +x 파일명.rb해야 되는건 알고 계시죠? ㅎㅎㅎ)

  11. Ruby를 사용하는 방법

  12. Ruby를 사용하는 방법

  13. 자 이제 진짜 시작!! • 참고로 puts는 java에서의 println과 동일합니다 • print는 java에서의 print와 동일합니다 • #는 주석입니다

  14. Ruby의 숫자

  15. Ruby의 숫자 • 다른 언어에서의 Integer 범위 내 숫자 : Fixnum • 다른 언어에서의 Integer 범위 외 숫자 : Bignum • 1234 => Fixnum • 123412341234123412341234123412341234 => Bignum • 23.5432 => Float • 12_23 => Fixnum (숫자 사이의 underscore는 무시)

  16. Ruby의 숫자 • Math module의 대표적인 method들 • - cos(x), sin(x) : 삼각함수 • - log(x), exp(x) : 로그함수, 지수함수 • - sqrt(x) : 제곱근 함수 • - 참고로 abs는 없어요

  17. Ruby의String 큰 따옴표와 작은 따옴표의 차이 => Escape 문자를 인식하냐 못하냐 문자열을 +로 합치고 *로 늘린다! Ruby는 문자를 숫자로 인식하여 ASCII 코드값을 내놓는다

  18. Ruby의String Substring을 얻는 방식 [시작점, 길이], ..: 끝을 포함, … : 끝을 포함하지 않음 String의 equality 참고) “”안에 #{코드}를 넣으면 코드의 결과가 String에 삽입된다.

  19. Ruby의String • String 관련된 method들 • - to_c, to_i, to_f, to_r : string에서 각각 복소수, 정수, 소수, 분수로 형변환 • => string.to_c와 같이 씀 • - length : string의 길이 • - split(pattern) : parameter로 들어온 문자 혹은 패턴을 기준으로 string을 나눔 • - strip : 문자열 앞뒤로 whitespace를 제거함 • - reverse : string을 뒤집음 • - replace : 문자열을 다른 문자열로 대체함 • - 여타 다른 method들은 http://ruby-doc.org/core-2.0/String.html에서 직접 찾아보는 걸로

  20. Array, Hash

  21. Control Structure • - if • if bool_expression1 • #your code here • elsif bool_expression2 or your code if bool_expression • #your code here • else • #your code here • end

  22. Control Structure • - case • case x • when case1 • #your code here • when case2 • #your code here • … • end

  23. Control Structure • - while • while bool_expression • expression • end • your code while bool_expression

  24. Control Structure • - for • for element in collection • #your code here • end

  25. Iteration • string을 위한 iterator • => each_byte : string의 각 문자에 대한 iterator • => each_line: strin의 각 줄에 대한 iterator • Array, Hash 등은 each, each_key, each_value등을 활용하면 된다 • yield와 retry를 이용하여 특정 code를 반복실행할 수 있다.

  26. Block, Procs, Lambda • Block • {} 내에 있는 코드 • Procs • Function object • lambda {block} == Proc.new {block}

  27. Function Definition def foo(param) • # your code here • end

  28. Class Definition • class class_name • function1 • function2 • function3 • end

  29. Class Definition • class Person • end

  30. Class Definition • class Person • def initialize(name) • @name = name • end • end • => arteta = Person.new(“Mikel Arteta”)

  31. Class Definition • class Person • @@count = 0 # class variable(다른 언어에서의 static과 같음) • def initialize(name) • @name = name • @@count += 1 • end • def count • @@count • end • end

  32. Class Definition • class Car • $my =“a” • end • puts $my • => global variable을 위와 같이 class 내부에서 정의할 수 있음

  33. Reader and writer • class person • def initialize(name) • @name = name • end • defread_name • @name • end • defwrite_name(name) • @name = name • end • end

  34. Reader and writer • class person • def initialize(name) • @name = name • end • attr_reader :name • attr_writer :name • end

  35. public private protected

  36. Inheritance • class subclass_name< class_name • function1 • function2 • function3 • end

  37. Module (= constant + functions) • module Circle • PI = 3.14 • defCircle.area(radius) • PI* radius ** 2 • end • defCircle.circumference(radius) • 2* PI * radius • end • end

  38. Module • Using constant • => Circle::PI • Using function • => Circle.area(4) • Using module not present in interpreter • => require ‘date’ • puts Date.today

  39. Module in Class • class Angle • include Math => instance level • attr_accessor :radians • def initialize(radians) • @radians = radians • end • def cosine • cos(@radians) • end • end

  40. Module in Class • module Simple • def say • puts “I’m simple” • end • end • Class SimpleMan • extend Simple => class level • end • SimpleMan.say

  41. Exception Handling • raise “message” • => raise method의 default exception인 RunTimeError exception을 message와 함께 띄움 • raise exception, “message” • => 주어진 exception과 message를 함께 띄움

  42. Exception Handling • 다른 언어에서의 try catch가 ruby에서는 begin rescue이다. • def foo • begin • raise “something” • rescue • #begin 내에서 raise가 실행되면 여기로 이동한다. • end • end

  43. 세미나는 여기까지입니다 • 앞으로 이 세미나 내용을 숙지하고도 모르는 내용이 생긴다면 • 날카로운 통찰력과 매서운 구글링으로위기를 헤쳐나가시길 바랍니다

  44. 다음 세미나 예고 • 다음주 이 시간! 추석을 끝내고 돌아오면! • 이제 rails를 공부해본다

  45. Ruby 후기 • 여기 세미나 내용을 공부하는데 걸리는 시간 : 최대 3시간 • (왜냐면 발표자가 이거 공부하는데 3시간 걸렸기 때문) • Python이랑 다소 흡사하다는 느낌을 받음 • => Python을 잘 아는 우리 스팍스 회원들은 까다롭지 않게 공부할 수 있을 것이라고 믿음!!

  46. 질문 받겠습니다

  47. 오타나 부족한 부분 있으면 jwchae8@gmail.com으로 알려주세요~

More Related