프로그래밍 언어를 가르치는 데 있어서 순서가 꼭 정해져 있는 걸까? (루비 글 정리하면서)

원래라면 지금 한참 잠을 자야 할 시간인데….

잠이 안오고 해서 대학원 석사논문 좀 빨리 쓰려고 이용했던 루비 언어 자료를 정리해서 블로그에 올려보려고 했는데…

일전에 C 언어 공부하던 자료는 내가 지금 올릴 수 없는 것이 그 자료가 한국에 있단 말이지…;ㅅ;

뭐 일단, 그렇게 자료 정리 좀 하고 있는데… 왠지 형식적인 글만 쓰게 될 거 같아서 좀 여러모로 맘이 복잡하다.

언어 배울 때 우리는 간단한 문법부터 해서 하나 하나 글 써나가는 법부터 배우고 그러고 나서 클래스니 뭐니 하면서 여러모로 해당 언어의 특징이니 그런 것들을 쭉 정리하고 더 나아가서 고급으로 가르치고 하는 것이 좀 많았는데…

 나름대로 여러 언어들을 쓰면서 느낀 것이지만, 한 언어를 제대로 할 줄 알면 나머지 다른 언어들 배울 때 여러모로 자기만의 노하우나 이해법에 맞춰서 금방 배울 수 있는 것이 있다는 걸 알고있다. 문법이라고 해서 뭔가 막 특이한 문법을 이용한다거나 하는 그런 것은 아니다. ㅎ마수형 프로그래밍이 어렵다고 한다면 그건 특정한 형태의 언어론이나 방법론에 의해서 만들어진 언어적 개념이다 보니 그 개념과 방법론만 알면 일단 구현 자체는 할 수 있으니깐 어렵다고도 느껴지질 않는다.

그러다 시간 좀 지나가다 보면 기존 언어에서도 새로운 언어나 패러다임에서 좋은 거 있으면 자꾸 흡수해 나가기도 한다. 그렇다고 해서 본질적인 부분이 막 바뀌고 그런 것이냐고 물으면 그건 절대 아니라는 것도 컴퓨터 공학의 이론적인 내용을 공부하게 되면 알 수 있는 내용들인 것이고…

그래서 여기저기서 막 걍 찍어내기식으로 정리하는 것보단 좀 더 확 와닿는 형태로 설명하는 것이 좋을 거 같은데…

어려울 지 아닌지는 모르겠지만 그렇게 하다보면 언어뿐만 아니라 언어 안에 들어있는 언어만의 특징이나 그런 쪽에 대한 설명이나 정리도 될 수 있을 거 같아서 좋은 거 같다만…

음…. 일단 정리 좀 해보자. ;ㅅ;

윈도우 10 + 윈도우 스토어 우분투 + 루비 온 레일즈…

필자는 여러모로 리눅스를 많이 쓴다. 특히 우분투..

그렇지만 윈도우를 안쓰는 것도 아니고, 많은 개발자들이 여전히 윈도우 환경을 선호하기도 한다. (시계 옆에 스팀이 없으면 안되는 자들이 있다.)

뭐, 게다가 윈도우 10 환경에서는 대놓고 bash가 지원되고 리눅스들이 깔리고….

그러니 이젠 그냥 리눅스에서 이용하는 방법을 보여주려 한다.

설치법은 이전 블로그 글에 적었다. (괜히 적은 거 아니다. 다 이유가 있다.)

그럼 이제 설치 다 했으니 프로젝트를 만들거나 윈도우에서 만든 프로젝트나 받아온 프로젝트 폴더를 끌고 와야 하는데…

경로를 알아야 할 꺼 아냐! 근데 경로 쉽다.

  • 우분투에서 윈도우 경로로 가는 방법

/mnt/c <- 윈도우의 C 드라이브 경로다.

20180517_155117.png

그럼 이제 거기서부터 내 프로젝트가 있는 폴더까지 들어가서 실행을 하면 된다.

  • 윈도우 탐색기에서 우분투의 홈 폴더를 찾아가는 방법

될 수 있으면 하지 마라. 근데 어디 있는지는 알려주겠다.

C:\Users\[사용자 계정 폴더]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

들어가 보면 우분투의 / 가 보일 것이다. 거기서 home/[사용자 이름 폴더] 가 작업을 했던 경로다.

이렇게 하면 진행하는 데 무리 없이 할 수 있다. 단, 윈도우 환경에서 이용하던 것과는 다르므로 반드시 bundle install 작업과 rails db:migrate를 통해서 기존에 작업했던 gem들과 데이터 모델은 만들어 줘야 한다.

그 덕에 아까 작성했던 bcrypt 문제는 해결되었다.

 

cannot load such file — bcrypt_ext

레일즈에서 bcrypt를 이용하려고 하는데 터진 문제다.

지금 개발중인 레일즈 환경이 ruby 2.4.2, rails 5.1.6, windows OS 환경이다. 근데 사용자 관련 기능을 넣고 암호 저장으로 저걸 쓰려고 하는데 오류가 난다.

아마 검색해보면 죄다 윈도우 환경에서 안된다고 나온다. (ㅅㅂ…)

게다가 버전도 아예 정해져 있다. 3.1.11…. 아오 썅..!

이거 해결책이 골때린다. 그래서 내가 이건 아예 블로그로 남기려고 한다.

  • gem을 다시 설치한다.

신기하게도 이게 스택 오버플로우랑 레일즈 포럼에서 제일 인기 많은 방법이다.

윈도우의 루비와 레일즈 환경에서 동작시키면 이게 x64_mingw 환경에 맞춰서 바이너리가 생성된다. 루비와 레일즈의 devkit 설치가 msys, mingw 기반으로 되어 있기 때문에 몇몇 바이너리가 대놓고 이렇게 되어 있다. 이런 경우에는 루비 플랫폼 환경에서 쉽게 끌어다가 쓸 수 있도록 해주면 된다.

gem uninstall bcrypt 명령어로 지우는데, 여러 버전이 설치되어 있으면 그대로 전부 다 지워준다.

그 다음에 설치를 다시 하는데 다음과 같은 명령어로 설치를 한다.

gem install bcrypt –platform=ruby

이렇게 설치하면 설치된 gem 번들 뒤에 x64_mingw 가 붙어있지 않는 버전이 설치된다.

그 다음에 레일즈에서도 Gemfile에 추가한 번들이 있을 것이다. 그것 뒤에 플랫폼 지정을 적어준다.

gem ‘bcrypt’, ‘~> 3.1.7’, platforms: [:ruby]

혹시 모르니 x64_mingw를 그대로 쓰고 싶은 분들은 플랫폼을 이렇게 바꿔준다.

platforms: [:ruby, x64_mingw]

앞에 루비를 지워도 되는데 어차피 어느 환경이던 다 쓸 수 있도록 복수 환경을 지원한다고 해도 별 지장은 없다.

  • 환경을 옮긴다.

이래도 오류가 나는 사람들 많다. 진짜로… 다른 해결법이 있으면 좋겠는데, 정 방법이 없다면 아예 개발 환경을 옮겨봐라. 일단 규링이 해본 봐로는 리눅스 환경에서는 100% 문제 없이 된다.

윈도우 10을 이용하는 사용자라면 마이크로소프트 스토어에 있는 우분투를 설치 후 그곳에다가 환경을 만들어서 이용하는 것도 좋은 방법이다. 그 내부의 경로로 들어가는 방법은 별도의 블로그 글을 작성하도록 하겠다.

리눅스 서버를 자체 운영하거나 도커 환경에서 만들어서 이용하고자 한다면 그 방법도 좋은 방법일 수 있겠다. 단, 개발이 좀 번거롭긴 하겠다만… 일단 오류는 없다.

……

어이가 없다. 진짜….

또 다른 해결 방법이 있다면 꼭 블로그로 내용 남기도록 하겠다.

레일즈구성 요소, 그리고 MVC

내가 레일즈로 논문 프로젝트를 할 때, 레일즈 구성 요소가 진짜 MVC 디자인에 정말 잘 부합하는 녀석 중 하나라고 확신이 들 정도로 레일즈는 MVC가 철저하게 이루어져 있다. 게다가 모델, 뷰, 컨트롤러의 이름 생성에도 규칙이 존재하고, 이 규칙만 일치하면 레일즈 프로젝트에서 알아서 변수나 파일, 내용 끌어다 쓰는 건 진짜 쉬운 일이다.

레일즈 프로젝트의 구성 요소를 간단한 예시를 들어서 그림으로 그려보면 이렇게 구성될 수 있다.

이 예시는 다음과 같이 동작을 한다.

  1. 브라우저에서 특정 사용자를 확인하기 위해 주소 창에 http://XXXXXXXX.XX/users 이라고 입력했다고 하자.
  2. 해당 주소를 읽어서 어떠한 컨트롤이 필요한 지를 rails의 router에 지정된 형식에 따라 주소 변환과 그에 따른 컨트롤러 프로젝트로 연결한다. 이 경우에는 index 에서 사용자를 보여주도록 되어 있어서 index 처리로 넘어간다.
  3. index에 연결되어 있는 user_controller.rb 컨트롤러에서는 해당 유저가 있는지 User 모델을 검색한다. 모든 사용자를 검색하는 것이기 때문에 검색으로 User.all로 하였다.
  4. 모델 컨트롤러에 있는 액티브 레코드에 연결된 데이터베이스에서 알아서 검색한다.
  5. 검색 결과를 컨트롤러에 반환한다.
  6. 검색 결과를 View에 넘겨서 보여주는 형태로 전환한다.
  7. 전황된 HTML 코드를 컨트롤러가 받아 완전한 형태의 HTML 페이지로 구성한다.
  8. 브라우저로 HTML을 전달하여 화면에 표시한다.

모델 에서는 진짜로 데이터 모델에 관련된 작업만 하도록 구성되어 있고, 뷰는 진짜로 말 그대로 화면 뷰이다. 특정 템플릿에 맞춰서 화면을 보여주는 html 및 레일즈 코드를 이용하여 화면을 구성한다. 마지막으로 컨트롤러는 해당 주소의 이벤트 혹은 API에 데이터를 받으면 어떠한 작업을 해야하는지를 구성하는 코드로 이루어져 있다.

그리고 이걸 확인할 수 있는 것이 바로 레일즈의 폴더이다. 예제로 만들었던 hello 폴더를 비주얼 스튜디오 코드로 열어보았다. 레일즈 어플리케이션 코드가 들어있는 app에 보면 controllers, views, models라고 별도의 폴더가 있는 것을 볼 수 있다. 레일즈에서는 이 각각의 폴더 안에 해당되는 코드를 만들어서 이용하면 알아서 MVC 모델의 디자인화 된 코드를 볼 수있다.

레일즈 관련된 책에도 보면 이런 내용에 대해서 칭찬을 많이 하는데, 내가 봐도 이 부분이 되게 깔끔학데 되어 있다. 사용자가 특정 URL에 접근하여 요청을 하면 컨트롤러가 이 요청을 받아 모델을 조회해서 데이터를 불러오고, 이 데이터를 바탕으로 뷰를 통해 시각적으로 표현한다. 그리고 시각적인 표현에 클릭을 하였을 때의 동작 또한 컨트롤러를 통한 후에 필요하면 데이터를 모델을 통해 호출하고 그걸 뷰가 표현하고…

그럼 이젠 이걸 어떻게 만드는 지 보여줄 수 있어야 하는데, 일단 그것은 다음 포스팅에서..!

윈도우에서 루비와 레일즈 한방에 설치하기

이전에 리눅스에서 루비와 레일즈 설치하는 방법에 대한 글을 적었습니다. 맥에서도 동일하게 설치해도 되고, homebrew를 이용하여 설치하는 방법이 있긴 한데 그건 또 다음 기회에… (맥에서 루비를 기본 설정으로 쓰고 있는 게 있어서 그거랑 꼬이지 않아야 함.)

근데 아직 많은 사람들이 이용하는 윈도우에서 설치해서 이용하는 방법에 대해서 적지 않았더군요. 저도 요즘 윈도우 환경에서 머물고 있는지라…ㅇㅂㅇ;;; 게다가 윈도우를 홈 서버로 하나 두고 있어서 그 환경에서 여러모로 돌리는 것도 있으니… 이 홈 서버에 설치하면서 보여드리겠습니다!

윈도우에서 루비와 레일즈 설치할 때에는 ruby installer라고 해서 별도로 제공되는 인스톨러를 이용하면 설치를 쉽게 할 수 있습니다.

 

루비 공식 홈페이지에 있는 다운로드 경로를 타면 나오는 공식 사이트입니다. 윈도우 인스톨러로 exe 형태로 제공해 줍니다.

근데 왜 이런 걸 글로 쓰냐고요?

그냥 아무생각 없이 설치하면 100% 실패하거든요!

ㅡㅅㅡ

오른쪽에 친절하게 어떤 버전을 이용하라고 나와있고, 하이라이트 처리도 되어 있습니다. 윈도우에서 루비를 설치할 때 devkit이 없는 상태로 설치를 하면 루비 스크립트만 실행하는 상황이 발생합니다. 별도의 gem 빌드가 필요한 경우에는 devkit이 있는 버전이 필요합니다. devkit에는 MSYS64가 딸려 들어옵니다. 몇몇 잼의 경우에는 받아서 빌드해 줘야 하는 경우도 있기 때문에 개발을 위해서 여러 환경을 구성하려면 with devkit 버전으로 받아줍니다.

그리고 설치 버전은 일단 2.4.4로 하겠습니다. 이전 글에서 우분투에는 2.5를 받아서 레일즈 설치까지 보여줬습니다만 여기서는 왜 제가 2.4 버전대를 이용하냐고요? 저기 아카이브 가서 받기 귀찮아서…ㅡㅅㅡ

현재 2.5.1 최신 버전으로 받아서 제가 글 쓰는 자료를 만들었을 때에는 레일즈 프로젝트 생성 후 실행 시 오류가 발생했습니다. 몇 가지 gem들이 호환이 덜 되는 거 같더군요. 그래서 일단 버전 좀 낮은 안정버전을 가지고 하겠습니다. 인스톨러를 실행하면 아래 화면과 같이 실행됩니다.

사용자 PATH 등에 추가하느냐고 물어보는데 그냥 놔두면 됩니다. 확장자 연결 또한 그냥 놔두고… UTF-8 인코딩은 체크해주고 싶은 분들은 해주시면 됩니다.

루비 말고도 MSYS를 설치할 것인지 선택하는데, 설치해 줍니다.

그리고는 진짜 기~나긴 인스톨 시간….;ㅅ;

설치가 끝났습니다. 1/3 정도요…;ㅅ;

MSYS 쉘을 실행해서 필요한 작업을 진행할 겁니다. 체크 되어 있는 거 풀지 말고 그대로 완료합니다.

이 작업을 꼭 해줘야 합니다. MSYS에서 동작하는 추가적인 루비 인스톨러인데.. MSYS 환경 설치, 루비 및 gem 파일 빌드를 위한 별도의 툴체인들 설치 작업을 하는 곳이기 때문에 이곳에서의 설치가 깔끔하게 진행되어야 합니다. 뭐, 실제로는 1,2,3 순서대로 하나씩 진행해 주면 되는 겁니다만… 이 작업 대충 했다가 꼬이면 망합니다. 재설치 해야합니다. (경험담)

그래서 우선 1번 작업을 진행해 줍니다.

패키지 관리자와 거기에 필요한 공개키 생성 등의 작업을 진행합니다.

완료되면 위와 같이 진행됩니다만 일단 신경쓰지 말고 2번 작업을 진행합니다.

2번 작업은 현재 있는 MSYS의 패키지들을 업데이트 합니다.

완료된 후에는 3번 작업을 진행하여 필요한 패키지를 설치합니다. 2번이 제대로 되면 3번은 사실상 할 일 없이 그냥 작업 빨리 완료될 겁니다.

3번까지 진행 완료되면 루비는 설치 완료가 된 동시에 전체 작업의 2/3의 설치가 완료된 것입니다. 혹시 모르겠다면 다시 1,2,3을 하나 하나 입력하면서 순서대로 진행해 주세요. 완료되면 엔터로 화면을 닫습니다.

위의 화면을 보면 알겠지만 인스톨러는 사용자 PATH에 루비를 설정했습니다. 이는 그냥 명령 프롬프트를 이용하면 바로 루비를 이용할 수 있다는 것입니다.

그 외에 프롬프트 실행의 경우에는 시작 메뉴에 보면 아이콘화 되어 있어서 이걸 실행해도 문제는 없습니다.

그러나 규링은 명령 프롬프트 그대로 이용하는 걸 좋아하는 녀석! 명령 프롬프트 실행해서 바로 확인해 보겠습니다. 루비의 버전을 확인하기 위해 ruby -v 명령을 입력합니다.

이제 레일즈를 설치합니다. 간단하게 gem install rails를 입력하여 설치를 진행합니다. 처음 실행이라 방화벽 화면이 나오겠지만 당연히 허용해주시고 실행하시면 필요한 gem 패키지들 받아서 알아서 설치할 것입니다.

이것도 이제 긴~~~ 시간을 기다려 줍니다. ;ㅅ; 루비 설치는 긴 시간을 요구합니다. 그리고 리소스도요…;ㅅ;

설치 중에 시퓨 사용량 미친듯이 올라가면… 정상입니다. ;ㅅ;

이제 설치가 완료되었습니다.

설치 확인을 위해 프로젝트를 하나 만들어서 돌려보겠습니다. 매번 보던 work 폴더를 하나 만들어서 이동 후, hello라는 레일즈 프로젝트를 생성합니다.

생성 명렁어는 rails new hello 입니다.

프로젝트도 처음 생성하는 것이라 필요한 gem 파일을 알아서 설치중입니다. 기다립니다. ;ㅅ; (맨 처음 설치에서는 기다리다가 지친다는…;ㅅ;)

프로젝트 생성 끝났습니다. ;ㅅ;

생성된 프로젝트를 실행해 보겠습니다. 프로젝트 폴더에 들어가서 rails s 로 프로젝트를 실행합니다. 그러면 내장된 기본 서버로 동작이 되며, 3000번 포트를 이용하여 동작할 것입니다. 아래가 실행 화면입니다.

그리고 이걸 브라우저로 접속하면…

되었습니다. ;ㅅ;

루비와 레일즈를 윈도우 환경에서 구성하는 법에 대해서 작성하였습니다. 은근슬쩍 긴 글 읽어주셔서 감사합니다.

이제 진짜로 간단 무식하게 루비 배우고 레일즈 좀 배우면 원하는 대로 진행할 수 있습니다. ;ㅅ;

irb(Interactive Ruby)

루비 프로그래밍을 배우고 써볼 땐 대화형 쉘인 irb를 이용하면 된다. 파이썬에도 비슷한 녀석이 있다. 아니, 요즘 나오는 상호 대화형 언어들은 전부 이런 형태의 쉘을 가지고 바로 이용해 볼 수 있는 환경을 제공해준다.

리눅스, 맥에서는 간단하게 irb를 입력하면 된다. 윈도우는 전용 쉘을 실행하거나 환경변수화 했다면 똑같이 irb 명령어가 이용될 수 있다. 규링은 윈도우 환경에서도 시스템 환경변수를 설정하였기 때문에 irb가 명령 프롬프트에서 먹힌다.

여기서 원하는 만큼 입력하면서 기본기를 다지고 나면 루비는 뭐… 충분히 쉽게 배워서 써먹을 수 있다.

리눅스에서 루비와 레일즈 한방에 설치하기

루비를 이용하면 주로 레일즈를 같이 이용하게 되는 경우가 많다. 그래서 이번에 루비와 레일즈 설치하는 방법에 대해서 한방에 정리해 보려고 한다.

루비를 윈도우에서 이용하기 위해서는 윈도우 전용 인스톨러를 이용하면 된다. 이 방법은 다음 번에 소개하도록 하겠다. (은근 미친듯이 짜증난다. 잘못하면 여러모로 날려먹는다.) 맥에서는 간단하게 홈브류를 이용하면 쉽게 해결된다.

리눅스는 더 쉽다. 필요한 패키지만 설치하고 그 담에는 루비의 패키지 관리자를 이용하여 설치하면 되기 때문이다. 단, 설치하는 데 필요한 시간과 그에 따른 인내가 좀 필요하다만 애니 좀 보고 있으면 금방 갈 것이다.

레일즈를 설치하기 위해서는 Nodejs와 Yarn이 필요하다. 레일즈 자체의 웹 패커를 이용하여 기능 확장을 할 수 있는데, 그들이 저 둘을 필요로 하기 때문이다. 따라서 먼저 저 둘을 설치할 수 있는 repo를 추가하고 설정하겠다.

아, 참고로 리눅스는 규링이 맨날 이용하는 우분투 기준으로 설명한다.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev nodejs yarn

명령어는 위에 명령어대로 입력하면 설치가 진행된다.

패키지의 repo를 추가하고 나서 업데이트와 설치를 하는 화면이다. 필요한 패키지가 설치된다면 이제는 루비 패키지 관리 환경을 설치한다.

RVM, rbenv 이 둘이 주로 이용되는데, 필자는 rbenv를 이용할 것이다. git을 쓸 줄 안다면 나중에 새로운 버전을 업데이트 받고 하는 데 있어서 쉽게 이용할 수 있기 때문이다. 아래에서 보는 것처럼 rbenv를 클론 후에 환경변수를 설정해주는 것만으로도 간단하게 끝난다. 또한 루비를 빌드하는 플러그인인 ruby-build도 쉽게 클론해서 이용할 수 있다. 새로운 버전이 나올 때마다 기존에 받아둔 내용에 새로 pull을 해서 업데이트 하면 되기 때문에 관리 또한 쉽다.

이 다음에 원하는 루비 버전을 설치하면 된다. 설치하고자 하는 루비의 버전을 입력하면 된다. 우리는 최신 버전인 2.5.0 버전을 설치할 것이기 때문에 2.5.0을 입력한다.

진짜 느긋하게 기다려 줍니다…..(ㅡㅅㅡ);;;

설치가 완료된 후에는 global이라는 명령을 통해서 글로벌 버전으로 설정해 줍니다. 이래야 여러 곳에서 해당 버전을 잘 이용할 수 있습니다. 로컬 버전으로 이용해야 하는 경우는 특정 루비 버전을 이용할 경우에 특정 경로에 한해서 특정 버전을 이용할 수 있게 합니다만, 일단은 글로벌 버전으로 이용하겠습니다.

그리고 마지막으로 rehash를 해주면 버전 설정이 전체적으로 완료됩니다. 마지막으로 버전 확인을 위해 -v를 입력하면 버전 확인이 됩니다.

이 내용을 코드로 보면 아래처럼 됩니다.

cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

rbenv install 2.5.0
rbenv global 2.5.0
rbenv rehash
ruby -v

참고로 설치 중에 CPU 사용률 엄청 올라가는데… 정상입니다.

파이썬에 별도의 패키지를 이용하기 위해서 pip, wheel, setuptools 같은 것을 이용하듯, 루비에는 gem이라는 패키지 설치자가 있습니다. 레일즈는 이 gem을 이용하여 설치합니다.

우선 번들 설치를 하는 번들러를 설치하겠습니다. 아마 업데이트가 되는 경우가 더 많을 겁니다.

이제 레일즈를 설치합니다. 지금 글을 쓰는 데 있어서 제일 안정적이면서 최신 버전은 5.1.4 버전입니다.

gem install rails -v 5.1.4



없는 gem 파일들은 자기가 알아서 받아서 설치하니 그냥 느긋하게 기다리면 됩니다.

기다리는 동안 CPU 참 여러모로 쳐묵합니다. ㅇㅅㅇ;;;

설치가 완료되었습니다. 이제 프로젝트 하나 만들어서 동작하는 지 확인하겠습니다. 설치 중에도 필요한 걸 알아서 설치하듯, 레일즈 프로젝트에서도 사용할 때 필요한 건 알아서 만듭니다. 그래서 맨 첨에만 시간 꾀 걸리는 편입니다.

또 기다림…. 을 하게 되면 프로젝트 폴더가 만들어집니다. 들어가서 rails s 명령어로 서버 실행을 하면 제일 먼저 만들어지는 예시 페이지가 동작할 것입니다.

은근 길었습니다. ;ㅅ;

루비만 제대로 설치하면 레일즈는 루비 안에 있는 gem으로 얼마든지 설치할 수 있으니 별 문제될 것은 없습니다.

ruby의 참고 문서들은 대체 어떻게 정리되고 있는 것일까….

쓰다쓰다 짜증이 나서 좀 여러모로 함숨이 나온다. ㅠㅠ

한국에서는 진짜 루비 쓰는 케이스 별로 없는 듯 하다. 레일즈를 장고 만큼 쓴다고 듣기는 했는데 그냥 주먹구구식으로 대충 찾아서 내놓은 것 외에는 아무리 봐도 사람들끼리 모여서 자료를 정리하고 하는 모습은 별로 안보이는 듯 하다.

뭐, 근데 이건 어디나 마찬가지겠지만… 몇몇 커뮤니티들이 활성화 되어있는 곳 아니면 아무래도 그럴 확률이 확실히 늘 것이다.

그나마 여러모로 커뮤니티 형식으로 활성화 잘 되어서 여러모로 자료 정리가 잘 되어있는 곳이라고는 오픈스텍이랑 파이썬 정도일듯.

MS 제품군은 MS가 알아서 잘 해주는 형식이 좀 강하니 제대로 좀 잘하는 분들이 노하우 정도 하나 둘 공유하고 하는 편이니 패스하고, 자바쪽은 이미 답이 없고….(알아서 잘 쓰는 게 자바 아닌가? C 처럼 짜서 써도 오~ 하고 박수치는 동네가 뭘… 요즘은 그런 거 없긴 하겠지만…ㅡㅅㅡ (그만큼 자바 실력자가 하늘과 땅을 미친듯이 갈라댄다. 그리고 대부분은 그런 거 필요없는 사람들이 많고..))

레일즈 쓰시는 분들이 여러모로 정보 공유는 하는 거 같지만, 실제로 루비의 경우에는 책마다 써놓은 내용도 다르고, 튜토리얼 관련 자료들도 이런 것 정도는 다뤄도 될거같은데? 싶은 것들도 안다루고 그냥 넘어가는 곳도 많다. 단순한 수준의 소캣 프로그래밍도 안다루는 튜토리얼과 책도 넘칠 정도니… 뭐, 다 다루면 옛날에 파이썬2.x 초반때 책들 기본 막 500쪽 600쪽 단위로 무지하게 두껍게 나오고 했던 것처럼 되겠지만… (아는 동생이 그걸 참 잘도 들고다녔다..)

레일즈랑은 별개로 자료 좀 정리해야 할 것들이 보이긴 한다만…..

혼자서 정리하긴 힘들겠지. ㅠㅠ

p.s. 일 안하고도 월급 나오면서 내 멋대로 해도 되는 생활이라면 금방 정리할 수 있겠지만 말이다…ㅠㅠ (그런 건 불가능하잖아?)

ruby…

내가 이걸 다룰까란 생각을 해본 적이 없었다. 이미 한국에서는 스크립트 언어와 웹 하는 사람들은 거의 자바 & 파이썬의 조합으로 통일되었다. 실제로 대학에서도 애들이 동아리나 어디 딴 곳 가서 배워와도 이 조합으로만 배워온다.

근데 쓸 일이 없다고 생각하는 것이 사실 여기저기에서 많이 쓰이고 있다는 걸 알게 되었을 때의 놀라움은 참…ㅇㅅㅇ;;;

루비는 진짜 간단한 언어다. 파이썬만큼 간단하다. 일본에서 만들어진 언어라서 일본 안에서는 엄청 쓰이지만 그 외의 국가에서는 “Programming Ruby”라는 책이랑 “실용주의 프로그래머”의 저자가 쓴 일명 곡갱이책(표지에 곡갱이 그려졌다.) 덕분에 전세계로 퍼지기 시작한 언어다. (루비가 뭔지 제대로 알려주는 명서다.) 그러다가 루비 온 레일즈가 등장하여 서구권에서는 빠른 웹 개발에서 미친듯이 쓰였다. 초기 프로젝트 스타트할 때 구현을 빨리 하기 위해서 레일즈를 이용하는 케이스가 많다. 그러다가 서비스가 커지면 이제 좀 제대로 구축할 수 있는 환경으로 옮겨가는 그런 식이다. (트위터가 대표적이다. 근데 아직 트위터 API 서버 중에는 레일즈 API가 남아있는 흔적이 있다. 아직 몇 곳에서는 쓰이는듯.)

뭐, 나도 졸업논문용 웹 서비스 빨리 개발하려고 딱 하루 루비랑 레일즈 공부하고 쓰고 있다. (그정도로 쉽다.)

의외로 사람들이 모르는 것이… 맥에서 쓰는 homebrew도 루비로 만들어졌다. 게다가 뭐 좀 해보겠다고 만져본 사람들은 RPG 쯔끄루로 뭐 이것저것 건드려본 사람도 있겠지만, 그거 언어가 루비다. 게다가 Github도….!

뭐, 이렇게 알게 모르게 쓰이고 있는 것이 현실이다. 게다가 몸에 좀 익은 언어라…

글을 남기고 싶다. (이녀석은 뭐 이리 남기고 싶어하는 게 많아..)