본문 바로가기

일상

Ruby : 시작하기

반응형

Ruby

루비의 개발자 마츠모토 유키히로는 루비가 스트레스가 없는 쉬운 프로그래밍이고, 루비는 우리의 삶을 반영해야 하며, 프로그래밍 언어는 (컴퓨터가 아닌) 인간 중심으로 설계되어야 한다고 했다.


루비가 왜 인기 있을까요? 루비의 팬들은 아름답고 기교가 뛰어난 언어이기 때문이라고 말합니다. 하지만 이 말로는 부족하지요. 어떤 점이 루비를 이처럼 매력적인 언어로 만드는 것일까요?

정의

루비(영어: Ruby)는 마츠모토 유키히로가 개발한 동적 객체 지향 스크립트 프로그래밍 언어이다. 루비는 순수 객체 지향 언어라, 정수나 문자열 등을 포함한 데이터 형식 등 모든 것이 객체이다.

기능에는 클래스 정의, 가비지 컬렉션, 강력한 정규 표현식 처리, 다중 스레드, 예외 처리, 반복, 클로저, Mixin, 연산자 오버로드 등이 있다. 구문은 ALGOL계를 계승하면서 가독성을 중시하고 있다.

오랫동안 언어 사양이 명문화되지 않고 마츠모토의 구현 언어 사양에 준하는 것으로 간주되어 왔지만, 2010년 6월 RubySpec으로 언어 사양을 책정 중이다.

출처 : 위키백과, 우리 모두의 백과사전.

루비의 유연함

개발자가 루비의 어떤 부분이든 자유롭게 바꿀 수 있기 때문에 매우 유연한 언어라고 할 수 있습니다. 원한다면 루비 코어 부분도 제거하고 재정의할 수 있습니다. 이미 존재하는 코드에 무엇인가를 덧붙일 수도 있습니다. 루비는 기본적으로 개발자의 사고를 제한하지 않습니다.

예를 들어 아래는 + 연산자 대신 plus 라고 쓰는 것이 더 읽기 편하다고 결정했다면 루비의 빌트인 클래스인 Numeric에 메서드를 추가하면 됩니다.

class Numeric
  def plus(x)
    self.+(x)
  end
end

y = 5.plus 6
# 이제 y는 11이 되었다

블록

루비의 블록 기능 또한 뛰어난 유연성의 원천입니다. 개발자는 어떤 메서드에든 클로저를 추가함으로써 메서드의 동작을 기술할 수 있습니다. 루비에서 이 클로저를 블록이라고 부릅니다. 이는 PHP, 비주얼베이직 등 다른 명령형 언어에서 루비로 이주한 개발자에게 가장 매력적인 기능으로 꼽힙니다.

블록은 함수형 언어에서 아이디어를 따왔습니다. 마츠는 “루비 클로저를 만들면서 나는 리스프의 클로저 기능을 존중하고 싶었다3.”고 말했습니다.

search_engines =
  %w[Google Yahoo MSN].map do |engine|
    "http://www." + engine.downcase + ".com"
  end

출처 : https://www.ruby-lang.org/ko/about/

기본 문법

반응형