Ruby는 유키모토 마츠히로가 1995년에 만든 명령형 프로그래밍 언어이자 함수형 언어 입니다.
그리고 모든것이 객체인 언어 이기도 합니다. (예시: 숫자,문자열,클래스,모듈)
def greet(name)
"Hello, #{name}!"
end
puts greet("World")
문법도 간단하여 입문자에게 친숙한 언어 이기도 합니다.
또한, Ruby는 개발자가 어떤 부분이든 자유롭게 바꿀 수 있기 때문에 엄청나게 유연한 언어입니다.
class Numeric
def plus(x)
self.+(x)
end
end
y = 5.plus 6
해당 예제는 Ruby의 공식 홈페이지에서 가져온 예제 입니다.
만약 개발자가 "+" 연산자 대신 "plus" 라고 사용하는 것이 더 읽기 편하다고 생각했다면
Ruby의 빌트인 클래스인 Numeric에 메서드를 추가하면 됩니다.
Ruby의 주 사용처
Rudy는 다양한 분야에서 사용되는 언어지만 주로 사용되는 곳은 웹 개발 입니다.
Ruby on Rails는 웹 애플리케이션의 개발을 위한 프레임워크로 Ruby의 가장 유명한 사용처 입니다.
2004년에 David Heinemeier Hansson이 개발하였습니다.
RoR(Ruby on Rails)의 첫번째 특징은 RESTful 디자인 패턴을 채택했습니다. 데이터(자원)를 URL로 식별하며,
HTTP 메서드를 통해 작업을 수행합니다.이러한 방식은 API 설계와 웹 애플리케이션 개발에 일관성을 제공할 수 있습니다.
RoR의 두번째 특징은 개발 속도가 빠르다는 점 입니다. 기본적으로 코드 생성기와 스캐폴딩 기능, CRUD 작업을 위한 코드를 자동으로 생성합니다. 이러한 특징들은 초기 개발 시간을 단축시킬 수 있습니다.
이러한 특징들로 인해 RoR은 스타트업에서 많이 채택하는 언어 입니다.
유명한 기업들도 RoR 기반으로 시작하였습니다. (GitHub,Airbnb)
Ruby 생태계와 커뮤니티
Ruby는 출시 역사가 긴 언어인 만큼 생태계도 그만큼 거대합니다.
RubyGems
RubyGems는 Ruby의 패키지 관리 시스템 입니다
파이썬의 pip 과 비슷합니다.
Ruby on Rails
RoR은 위에서 설명했으니 설명은 생략하겠습니다.
Sinatra
sinatra는 경량 웹 애플리케이션 프레임 워크 입니다. 주로 간단한 웹 서비스를 구축하는데 사용합니다.
커뮤니티
https://www.ruby-lang.org/ko/community/
커뮤니티
Ruby의 장점, 특징에 대한 설명에서 빠지지 않고 등장하는 것이 바로 친절한 커뮤니티입니다. Ruby 커뮤니티는 모든 사람에게 열려있습니다. 관심이 있다면 꼭 참여해보세요. 여기 참여할 수 있는
www.ruby-lang.org
Ruby의 미래
Ruby의 라이벌은 Python 입니다.
두 언어는 모두 인터프리터 언어로 비슷한 성능을 보이지만 Python은 머신러닝과 계산에 최적화된 라이브러리를 가지고
있어 Python이 우위에 있습니다.
Ruby는 동적 타이핑을 사용하는 언어이기 때문에 타입체크와 관련한 오버헤드가 발생할 수 있습니다.
그렇기 때문에 성능에 부정적 영향을 줄 수 있습니다.
최근에는 JavaScript가 Ruby의 입지를 상당히 뺏어왔습니다.
JavaScript는 JIT 컴파일러를 사용하여 높은 성능을 내고 있지만, Ruby는 인터프리터 언어라는 한계로 인하여 실행 속도가 느릴 수 있습니다.
또한 JavaScript는 비동기 프로그래밍을 지원하여, 많은 동시 요청을 처리하는데 유리합니다.
그렇기 때문에 Ruby 언어는 쇠락하고 있지만 Ruby 언어는 사라지지는 않을 것 입니다.
온라인 쇼핑업계의 쇼피파이는 주 개발 플랫폼으로 Ruby를 사용중입니다.
그렇기 때문에 쇼피파이는 루비의 성능 개선을 위해 YJIT를 컴파일러를 개발하였습니다.