루비 시작하기
자바스크립트 공부를 하며 Node.js 백엔드 개발을 경험해오며 개발자로 성장하기 위해 달려왔다. 면접을 보며 입사하기로 하게 된 기업에서 자바스크립트 스택을 보고 지원했는데 루비 온 레일스를 사용하는 기업이였고 그에 따라 새로운 언어를 배워야 하는 상황이다. 학교에서 자바를 잠깐 배운것 외에는 자바스크립트 외의 언어를 경험해보지 못했는데 새로운 언어와 프레임워크를 경험하게 되어 좋은 경험이 될것 같다는 생각이 든다.😂
루비는 어떤 언어인가?
루비를 공부 해봐야겠다고 생각한 후 루비는 어떤 언어인가를 가장 먼저 알아 보게 되었다. 루비 홈페이지를 찾아보니 루비에 대해 다음과 같이 설명해 주고 있었다.
- 루비는 순수 객체 지향 언어이다.
- 루비의 모든 것은 객체로 분류된다.
- 루비는 유연한 언어이다.
- 다른 객체 지향 언어와 달리 의도적인 단일 상속만을 제공한다. 대신 모듈 기능을 이용하여 필요한 메서드를 사용할 수 있다.
루비는 모든 것을 객체로 분류한다는 특징이 가장 생소하지만 흥미롭게 다가왔다. 자바스크립트 처럼 원시타입과 참조타입을 분류하지 않고 모든것을 객체로 분류한다는 것이 새로운 언어를 배우기 시작하는 단계에서 흥미를 불러와 주었다.
그렇다면 왜 루비인가
왜 루비를 사용하는지 궁금했다. 웹개발이라 하면 자바스크립트, 파이썬, 자바 3가지를 생각하고 루비라는 언어를 들어만 봤지 실질적으로 접하는 기회가 없었기 때문이다.
루비를 사용하여 웹 개발을 진행 할 때 루비 온 레일스라는 프레임워크를 사용한다고 한다.
루비를 사용하는 가장 보편적인 이유는 쉽고 개발 생산성이 빠르다. 라고 많이 얘기를 하는 것 같다. 아직 루비 기본 문법을 보며 따라하는 단계에서는 느끼지 못했지만
Express를 사용하여 개발을 할때의 장점과 비슷한 느낌이지 않을까 넘겨짚어 생각하게 된다. 왜 루비를 사용하는지 회사에 물어보면 그럴듯한 답변이 올지 궁금한데 사실 못 물어 보겠다….
루비, 루비 온 레일스를 사용하면 다음과 같은 장점이 있다고 한다.
- 배우기 쉽다
순수 객체 지향언어로 객체에 대한 이해를 한다면 코드가 사람의 언어와 가깝게 설계되어 간단하여 배우기 쉽다는 장점이 있다.
- MVC 모델이 거의 대부분 구성되어있다.
레일스는 추가적인 작업 없이도 대부분의 MVC모델 구현이 되어있어 편리하다.
- 확장성, 이식성이 높다.
시스템의 용량을 변경하거나 여러 OS에서 사용하게 되어도 추가 작업없이 사용이 가능하며(물론 Ruby를 지원하는 OS..) 다른언어로 개발된 라이브러리를 루비 위에서 쉽게 구현할 수 있다는 장점이 있다.
그럼 어떤 단점이 있나
가장 많이 보이는 단점은 실행속도가 느리다는 것이였다. 따라서 대규모 협업 프로젝트에서는 사용하기 어려운 점이 있다고 한다.
결론?
빠른 생산성으로 개발이 가능하지만 대규모 프로젝트에서는 사용하기 어려운 부분이 있다는 것이 전체적인 의견인 것 같다. 정확한 이유는 직접 개발하다보면 느낄 수 있지 않을까 생각중이다.
루비를 설치하고 실행해보자.
루비 설치는 루비 홈페이지에서 현재 사용중인 OS에 맞게 설치하면 된다.
이후 터미널을 실행하고 루비가 설치 되었는지 간단한 명령어를 실행해서 테스트해보자.
Ruby 설치 후 버전 확인 => ruby -v
언어 공부 할때 가장 먼저 해야하는 “Hello World”출력해보기👀
irb 명령어를 실행해서 루비 환경 실행 후 문자열을 반환해주는 puts 명령어를 실행해서 “Hello World”를 출력하면 된다.
실행해보면 nil이 나오는데 nil은 puts에서 항상 반환하는 값이라고 한다. 또한 nil은 null을 의미한다. 이런 사소한 차이가 참 헷갈린다..
계속해서 루비에대해 학습하며 기본을 익혀보자.. 물론 나는 자바스크립트 공부도 더 해야하는데 왠지 새로운게 끌리는 것 같기도 하고 자바스크립트가 그립기도하고..