티스토리 뷰

객체 지향 스크립트 언어 Ruby

1. Ruby의 개념을 알아보자

Ruby는 동적이고 객체 지향 스크립트 프로그래밍 언어입니다. Python과 매우 유사하게 사람이 쉽게 이해할 수 있는 친화적인 문법과 간결한 코드를 작성할 수 있어 생산성이 매우 높은 프로그래밍 언어입니다. 1995년 마츠모토 유키히로에 의하여 개발된 프로그래밍 언어이며 Perl, Smalltalk, Eiffel, Ada, Lisp 언어들을 조합하여 명령형 프로그래밍 언어이자 함수형 언어를 만든 것이라고 합니다. Ruby라고 이름을 지은 이유는 마츠모토의 지인이 가지고 있던 탄생석에서 따온 이름이라고 합니다. Ruby는 웹 사이트를 쉽고 빠르게 만들 수 있어서 간단한 사이트를 만들고자 할 때 매우 유용한 언어입니다. 만약 개발자가 웹 사이트를 이용하는 사용자에게 제공하는 서비스를 빨리 제공하기 위해 개발하려는 목적이 있을 때 매우 적합한 언어입니다. Ruby는 다양한 기능을 제공하면서 코드를 읽기 쉽게 하려는 목적을 두고 있기 때문에 웹 개발, 소프트웨어 프로토 타이핑 등 다양한 분야에서 사용되고 있습니다. 그래서 1995년에 처음 출시되고 전 세계적으로 수많은 Ruby 개발자들이 많이 생겨났으며 2006년에는 더욱더 많은 개발자들이 Ruby를 배웠다고 합니다. 2006년에는 하루에 평균 200개의 글이 Ruby 커뮤니티에 올라왔을 정도로 크게 성장하였지만 최근에는 커뮤니티 활동이 줄어들고 있다고 합니다.

2. Ruby의 장단점은?

Ruby는 전체적으로 Python과 유사한 특징을 가지고 있습니다. 코드가 매우 간단하며 배우기 쉽기 때문에 누구나 빨리 배울 수 있는 언어입니다. 그리고 동적 타이핑 언어로써 변수의 타입을 사전에 선언할 필요가 없습니다. 또한 Ruby는 메타 프로그래밍 기능을 지원하여 프로그램 내의 코드를 작성하고 수정할 수 있는 유연성을 제공합니다. 현재 Ruby는 오픈 소스로 무료로 사용되고 있습니다. 기본 자료형이 존재하지 않고 모든 것이 객체로 이루어져 있는 순수 객체 지향 언어입니다. 예를 들어 대부분의 많은 프로그래밍 언어에서는 숫자가 기본 타입일 뿐 객체는 아니게 됩니다. 하지만 Ruby에서는 Smalltak의 영향을 받아서 모든 요소들에 메서드와 인스턴스 변수를 부여합니다. 또한 Ruby는 확장성과 이식성이 높습니다. 시스템을 변경하여도 또 다른 운영체제에서 사용되어도 기능이 잘 동작할 수 있게 할 수 있습니다. 그렇기 때문에 유지보수 비용과 시간을 크게 절약해 줄 수 있는 장점들이 있습니다. 다음은 단점을 알아보도록 하겠습니다. Ruby는 뛰어난 성능을 보여주는 대신 속도가 느립니다. 그렇기 때문에 대규모 서비스에서 이용하기가 어렵다고 합니다. 마지막으로 국내에서 사용률이 많이 낮다는 것입니다. 그래서 대부분의 프로그래밍 언어에 비해 관련 서적이나 자료를 찾기 어려워서 당장 개발자로 현업을 하고 있는 저도 Ruby에 관해서 잘 들어보지 못한 편입니다. 마지막으로 성능 문제가 계속해서 이슈가 되고 있으며 일본을 제외하면 많지 않다는 것이 큰 단점입니다.

3. Ruby의 앞으로의 전망에 대해서

프로그래밍 언어의 인기를 나타내는 지표를 말해주는 사이트인 TIOBE에서는 Ruby가 19위를 차지했습니다. 그리고 2023년 프로그래밍 언어 기술 시장 점유율을 발표하는 Wappalyzer에서는 Python 다음으로 6위를 차지하였습니다. 하지만 Ruby의 창시자가 일본인이기 때문인지 일본에서만큼은 Python보다 인기가 많다고 합니다. 그래서 모든 API가 일본어로 되어있습니다. Ruby는 끊어낼 수 없는 관계인 Ruby on Rails라는 프레임워크를 통해 웹 개발에서 강력한 포지션을 보여서 많은 개발자들에게 선호되고 있습니다. Ruby의 장점인 생산성과 간결한 코드를 작성하는 특징이 앞으로도 많은 개발자들에게 전망 있는 이유가 될 수 있습니다. 웹 개발 분야에서도 사용되고 있지만 데이터 분석 및 인공지능 분야에서도 사용되고 있습니다. 그리고 Ruby만의 개발자 커뮤니티를 가지고 있기 때문에 개발자들도 지속적으로 지원이 가능하며 문제 해결에도 서로 협력하며 해결 방안을 제시해주고 있습니다. 또한 최신 버전의 Ruby는 성능 개선과 메모리 관리 등에 대해 개선이 되고 있어서 개발자들의 관심과 선호도를 유지하는 데 크게 도움이 될 것입니다. 하지만 Python, R, JavaScript 등 경쟁 구도에 있는 언어가 있는 상황이기 때문에 새로운 기술에 대해 적극적인 발전이 필요하다고 생각됩니다.

반응형