현재까지 개발툴로 C#과 C++에서는 이견이 없이 visual studio 2015를 사용해왔습니다.

ruby (& rails) 의 경우 visual studio에서 지원하지 않아, windows환경에선 aptana studio 3 (http://www.aptana.com/)를 사용했고요.


그러던차 node.js를 쓸 일이 좀 있어, visual studio에 node.js 플러그인을 설치해 사용하려 했습니다만… 버그인지 CPU 점유율이 25%이상을 점유하고, 메모리가 계속 증가해 visual studio가 크래시 되더군요. 같은 설치 상태에서, C#, C++은 문제가 없는데 node.js 프로젝트에서만 발생했습니다.

-> VS2015 Update 2 이후 발생하지 않네요.


그리하여 다른 솔루션을 찾던 중, vs code를 사용해보았습니다.

node.js 기반에서 며칠 사용해보니, 여러모로 편리했습니다 . atom기반 이라지만, atom의 학습비용이 드는 환경 설정 문제가 해결되어있어, 더더욱 편리하게 사용 가능했습니다.


node.js 개발 환경으로 아주 만족스러웠습니다. (visual studio 사용자 기준, atom보다 친숙하고, 편하다고 생각합니다) 자연스레 ruby (& rails) 개발 환경으로도 써볼까 하는 욕심이 들었는데요,


그리하여, vs code의 ruby plugin을 찾기 시작했습니다.

https://marketplace.visualstudio.com/vscode/Languages?sortBy=Downloads


몇개 없더군요. 실제로 ruby의 debug plugin은 아래 하나라고 보시면됩니다.

https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby

[github: https://github.com/rebornix/vscode-ruby]


설치 방법은 Ctrl + P를 누르시고, ext install Ruby를 입력하시면 됩니다.

그리고 F5를 누르시면, 어떠한 언어로 해당 환경에서 구동 할 건지를 결정하는 창이 뜹니다.


Ruby를 선택하시면 기본 환경 설정 파일 (launch.json)이 생성됩니다.


저는 기본 생성된 json에서, program에서의 디버깅할 rb파일 명 (main.rb -> xlsx_magician.rb)과 args (없으면 ARGV[0]에 string undefined가 환경 변수 ARGV에 담겨 스크립트에 전달 됩니다.)를 추가했습니다.


여기서 주의하실 점은 "args": [""] 로만 비울 경우는 undefined가 아니라, ARGV자체가 not available 상태라는 점입니다. "args" 항목을 아예 사용하지 않았을 때와 달라요.


launch.json에 "args" 항목 미사용시

- ARGV = not available


"args": [""]로 넘길 경우

- ARGV = undefined


"args": ["Character.xlsx"]


- ARGV = ["Character.xlsx"]




자 이제 rails 디버깅 환경에 대해 살펴볼까요?


rails의 경우에는 launch.json을 보강해주셔야 합니다.

https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby을 참고하세요.


그리고 좌측에 DEBUG 구동 설정에서 Debug Local Files로 선택되어 있는 것을, Rails Server로 바꿔주셔야 합니다.


rails가 4.2.x로 넘어오면서, 기본 binding 주소가 local에서만 접근가능하게 바뀌었습니다.

그렇다 보니 환경 변수를 넘기고 싶었는데요, 위 설정에서 args에 아무리 파라미터를 확장해봐도, rdebug-ide.bat 파일에 넘어가는 인자가 확장되더군요. 오픈 소스인지라 github의 해당 소스 코드를 직접 찾아보니 더 명확해지더군요. rdebug-ide.bat에 넘기는 인자만 확장 될 뿐입니다.


그리하여, 기본적으로 -b 0.0.0.0으로 bind 하는 것과 같은 결과를 내기 위한 방법을 찾아봤습니다.


아래 링크에서 보이듯 boot.rb를 고쳐주시면, 기본적인 서버 구동시에도 0.0.0.0으로 bind 됩니다.

https://fullstacknotes.com/make-rails-4-2-listen-to-all-interface/


물론 여전히 아쉬운 점은, 다른 인자를 못 넘긴다는 점인데요, 이 부분은 환경 설정 rb 파일을 변경해서 테스트하는 방법 정도로 절충해야 할 거 같네요.


vscode-ruby를 변경하는 방법도 있긴 하지만, 저는 우선 여기까지로 환경 설정을 마무리했습니다.


실제 개발 환경으로 사용하는 데에 크게 무리가 없었습니다. eclipse 기반의 aptana studio 3가 큰 만족도가 아니었다는 점도 한 몫 한다고 보고요.


vscode도 아직은 ruby 개발 환경으로 아쉬운 점이 있지만, 그래도 현재 까지의 윈도우에서의 개발 환경도 그다지 만족스럽지 못한, 번거로운 점이 많았다는 것을 감안했을 때, 대안이 될 수 있지 않을까 합니다.

'Web > Ruby on Rails' 카테고리의 다른 글

Rails 5.0 Release  (0) 2016.07.02
vscode with rails  (0) 2016.04.14
rails aptana studio에서 디버깅 안될 때  (0) 2015.04.14
Rails를 이용한 웹 로그 서버 구축기 ver2  (0) 2014.12.16
Ruby on Rails 소개  (1) 2014.12.02
windows 환경에서의 mysql2 gem 문제  (0) 2014.11.12
Posted by 엘키 엘키

댓글을 달아 주세요

2014. 11. 4. 23:19 Scripts/Ruby

Welcome to ruby!


루비를 시작하시는 모든분들께 짧게 읽고 넘어가실 수 있는 슬라이드를 작성해보았습니다.
동적 타입 기반의 스크립트 언어를 아직 해보지 않으셨다면, 파이썬이나 루비! 기왕이면 루비를 추천해드립니다.
짧게 5분정도 소요되니 읽고 가셔요~


'Scripts > Ruby' 카테고리의 다른 글

Welcome to ruby!  (0) 2014.11.04
Ruby invalid byte sequence in UTF-8 (Argument Error)  (0) 2014.10.30
루비에서 쉘 명령을 내리는 방법  (0) 2014.06.03
루비 주석  (0) 2014.02.07
루비 변수 관련 정리  (0) 2013.05.14
Ruby가 모듈을 찾는 장소.  (0) 2013.05.09
Posted by 엘키 엘키
 TAG ruby, 루비

댓글을 달아 주세요

루비로 쉘 명령 내리는 방법 6가지
http://eriteia.blogspot.kr/2008/01/6.html


원문

http://blog.bigbinary.com/2012/10/18/backtick-system-exec-in-ruby.html


루비로 쉘 명령을 내리는 6가지 방법에 대해 나와있습니다.


가장 선호되는 방식은 open4지만...

현재 win32로는 open3까지만 지원하니 참고하세요.


win32에서 현재로써는 stdio를 사용하기 위해선 open3를 쓰시는 것이 좋습니다.


간단하게 실행 성공 여부까지만 필요하다면, system 함수를 통하시는 것이 가장 좋고, 이 경우 주의사항은 exit code가 TrueClass로 반환된다는 점 입니다.


TrueClass가 to_i를 지원하지 않는 만큼 확장해주시거나 랩핑해주셔야하며, 또 다른 단점은 정확한 exit code를 알 수 없다는 점 참고하세요.

'Scripts > Ruby' 카테고리의 다른 글

Welcome to ruby!  (0) 2014.11.04
Ruby invalid byte sequence in UTF-8 (Argument Error)  (0) 2014.10.30
루비에서 쉘 명령을 내리는 방법  (0) 2014.06.03
루비 주석  (0) 2014.02.07
루비 변수 관련 정리  (0) 2013.05.14
Ruby가 모듈을 찾는 장소.  (0) 2013.05.09
Posted by 엘키 엘키

댓글을 달아 주세요

2014. 2. 7. 17:34 Scripts/Ruby

루비 주석

.rb

기본

# blah blah


블럭 (여러 줄)
=begin
    blah blah        
=end


 *.html.erb

html 형식이므로,<!--  -->를 사용해야 합니다

'Scripts > Ruby' 카테고리의 다른 글

Ruby invalid byte sequence in UTF-8 (Argument Error)  (0) 2014.10.30
루비에서 쉘 명령을 내리는 방법  (0) 2014.06.03
루비 주석  (0) 2014.02.07
루비 변수 관련 정리  (0) 2013.05.14
Ruby가 모듈을 찾는 장소.  (0) 2013.05.09
루비 작업을 몇일 해본 감흥  (0) 2013.03.01
Posted by 엘키 엘키

댓글을 달아 주세요


변수 접두어.

루비는 C언어등과 다르게, 접두어가 변수의 종류를 구분 짓는다.

아래는 변수를 구분 짓는 접두어를 의미한다.


내 네이밍 규칙에 따르면 모든 변수를 상수로 만드는데, 루비의 접두어 룰로 인해 나도 네이밍 습관을 루비에선 따로 쓸 수 밖에 없었다.


기호 의미

$ 전역 변수

@ 인스턴스 변수 

@@  클래스 멤버 변수

a-z_ 지역 변수

A-Z 상수



전역 변수

루비에서 미리 정의해두고, 스크립트 작성에 도움이 되게 지원하는 변수들입니다.

적절히 사용하시면 아주 유용합니다!


기호 의미

$! 마지막 에러 메시지

$@ 에러 위치

$_ 가장 최근에 gets로 읽은 문자열

$. 코드의 줄 번호

$& regexp로 마지막에 매칭된 문자열

$~ the last regexp match, as an array of subexpressions

$n n번째로 매칭된 문자열

$= case-insensitivity flag

$/ input record separator

$\ output record separator

$0 실행 프로그램 이름

$* 명령 행 인자들

$$ 프로세스 아이디

$? 최근 실행한 자식 프로세스의 종료 번호

ARGV[n] n 번째 명령 행 인자

$DEBUG 디버깅 메시지 -d를 키면 활성화

$stderr 표준에러

$stdin 표준입력

$stdout 표준출력

$: 스크립트가 로드한 모듈 이름들

ENV    스템 환경 변수를 저장하고 있는 해쉬. 환경 변수 값을 변경할 수 있으며, 변경사항은 해당 프로세스 와 자식 프로세스에만 반영된다.

'Scripts > Ruby' 카테고리의 다른 글

루비에서 쉘 명령을 내리는 방법  (0) 2014.06.03
루비 주석  (0) 2014.02.07
루비 변수 관련 정리  (0) 2013.05.14
Ruby가 모듈을 찾는 장소.  (0) 2013.05.09
루비 작업을 몇일 해본 감흥  (0) 2013.03.01
Ruby  (0) 2009.01.20
Posted by 엘키 엘키

댓글을 달아 주세요

Ruby에서 load나 require시에 참조하는 폴더는 다음과 같습니다.


쉘 현재 경로

RUBYLIB 환경 변수 경로


이 경로를 알고 싶을땐 아래와 같은 구문으로도 가능합니다.

% ruby -e 'puts $:'


이 경로가 아닌 다른 경로를 지정하기 위해서는, -I 경로 (대문자 I입니다)를 지정하거나, RUBYLIB 환경 변수에 추가해주시면됩니다.


예를 들어,


ruby Util/StartServers.rb filename


라는 구문이 있을때, -I 구문이 없다면 rb파일이 참조하고 있는 다른 파일들은 제대로 로드 되지 못합니다.


load 'XML_Util.rb'

load 'ShellExecute_Util.rb'

load 'ServerConstants.rb'


이 load 구문들에서 XML_Util.rb을 찾지 못해, 오류를 발생하는 것이죠.


그래서, 


ruby -I Util Util/StartServers.rb filename

이렇게 모듈 검색 경로를 설정해, 해당 모듈들의 위치를 지정함으로써, 해결 가능합니다.


단순한 문제지만, 구글링으로 원하는 답변을 찾다가, 프로그래밍 루비 (곡괭이책)에서 원하는 답변을 찾게되 올립니다. 저처럼 헷갈리신분 참고하세요~.

'Scripts > Ruby' 카테고리의 다른 글

루비 주석  (0) 2014.02.07
루비 변수 관련 정리  (0) 2013.05.14
Ruby가 모듈을 찾는 장소.  (0) 2013.05.09
루비 작업을 몇일 해본 감흥  (0) 2013.03.01
Ruby  (0) 2009.01.20
IronRuby  (0) 2009.01.15
Posted by 엘키 엘키

댓글을 달아 주세요

현재 웹 로그 서버로 루비 온 레일즈를 사용해 개발중에 있습니다.


그 과정에서 간략한 기록 겸 정리로 포스팅해봅니다.



윈도우용 루비 개발에 이용한 Quick Installer 입니다.


RailsInstaller

http://railsinstaller.org/



루비 적응에 참고한 튜토리얼입니다.


Ruby on rails - getting started Tutorial

http://rubykr.github.com/rails_guides/getting_started.html


Ruby on Rails - Active Records Query Interface

http://rubykr.github.io/rails_guides/active_record_querying.html



scaffold를 이용해 쉽게 기본 기능을 만들어내는 구문입니다.

rails generate scaffold Post name:string title:string content:text



각종 책과 튜토리얼 등을 보면서, 튜토리얼을 보면서도 이해가 잘 안가서 가장 많이 시간을 소요한 부분...

method 등록하는 법에 대한 포스트입니다.


routing error -> No route matches

https://groups.google.com/forum/#!msg/rubykr/nfryLxkh9oI/bQ4w9lRjafgJ


요악하자면, 

routes.rb

resources :컨트롤러명 do 
  collection do 
   get :액션 이름
  end
end

이렇게 추가해준 뒤,

rake routes를 해주면 등록됩니다.


루비 온 레일즈 사용해본 결과 MVC 모델로 설계 되어있어 역할 분담이 잘 되어있더군요.

model : 사용될 데이터 구조 (모델)
view : controller에서 제어한 동작을 보여주는 코드 정의 
controller : action 별로 controller에 동작을 정의

아직 많이 사용해보지 못했지만, 개발 속도는 압권입니다.
routing error에서 헤멘 것 제외하면, 실제 개발 시간은 2시간 남짓에 웹 로그 서버를 구축했습니다. (운용 가능할 정도의 다량의 로그를 쌓는 작업에 대한 측정이나, 테스트는 제외하고 단순 기능 구현)

루비를 서버 제어 스크립트로 작업하고, 이번에 웹 로그 서버 작업을 하면서도 느끼는데, 루비에 대한 호감도가 계속 올라가네요.

자세한 내용은 공개하기 어렵지만, 간략하게라도 삽질기나 팁같은거 공유해보도록 하겠습니다. 



'Web > Ruby on Rails' 카테고리의 다른 글

Ruby on Rails 소개  (1) 2014.12.02
windows 환경에서의 mysql2 gem 문제  (0) 2014.11.12
ruby on rails 세팅 for windows  (0) 2014.10.29
액티브 쿼리 인터페이스  (0) 2013.05.28
Database Migration 하기  (0) 2013.04.15
웹 로그 서버 구축기  (0) 2013.04.12
Posted by 엘키 엘키

댓글을 달아 주세요

최근 업무 관련해서 루비를 쓰게 됐다.
2007년에 루비를 잠깐 했었으나 숫자 야구 만들었던 게 다였고, 거의 6년만에 다시 해본 루비에 대한 감상을 정리한다.

우선 과거에 사용했던 시기를 떠올려본 루비에 대한 감상을 먼저 나열해보겠다.
- 스크립트 디버깅이 힘들다. IronRuby로 쓰면 좀 낫다.
- C와의 연동은 준수한편.
- 문자열 다루기 쉽다. 아주!
- 그렇지만 역시나 trim, chop 같은 메소드를 통해 문자열을 섬세하게 다뤄줘야 함은 여전함.



이번에 새로 루비를 쓰기 전까지 주로 써온 스크립트로는 batch script, jscript (java script의 윈도우 내장 스크립트), 펄, 루아 였다.


이번에 루비를 써보고 느낀 건 역시 쉬운 편이라는 점이었다.

파일 오픈
file = File.open(ARGV[0], "r+")

파일 라인 단위 파싱
file.each_line do | line |
blah blah
end

라인 공백 단위 파싱
ip, port, servername, gsid = line.split(/ /)

이렇게나 파일과 문자열을 파싱 할 수 있다.

JScript가 C++이나 Java와 유사한 문법과 심지어 API 사용 마저 얼추 C++과 비슷하다는 장점(?)이 있다보니, 루비를 접하면서 C계열 보다는 펄 쪽에 좀 더 가깝지 않나 싶은 생각이 들었다. (파이썬은 안써봄.)

펄이 문자열 다루기에 강자인 반면, 코드 가독성을 있는 대로 떨굴 수 있다는 단점이 있었던 데에 비해, 루비는 간결함을 모토로 가독성 좋은 코드를 짧게 짜는 데에 장점이 있었다.

물론 복잡하게 짤라면 짤 수 있음은 여타 언어와 흡사하나, 의지(!)를 가졌을 때 간결하게 짜기에 적절하게 라이브러리도 필요한 기능 대다수가 기본 지원이었고, 준수했다.

위에 예제들 중에서 가장 맘에 들었던 것이 라인 공백 단위 파싱해서 적절한 변수에 담는 코드였다.

메타 데이터를 쉽게 읽고 처리할 수 있다는 점은 JScript, Batch Script 등처럼 쉽게 프로그램 사이의 연동 스크립트로써 사용할 수 있다는 의미이고, 루비 자체의 기능도 함께 사용하면 어지간한 기능은 구현 가능하다는 의미다.

이외에 든 생각은 아래와 같다.
- 루비가 쉽긴 하지만, 그렇다고 학습비용이 안들진 않는다.
- 느리다. 확실히 느림.

- 코딩이 유연하다지만, 실수는 여지없이 스크립트 오류를 발생 시키기에 논리적인 빈틈을 줄이는 노력은 다른언어와 다를 바 없다.

얼마나 많은 일을 할 수 있냐보다, 얼마나 짧은 시간에 직관적인 코드로 결과물을 만들어 낼 수 있느냐의 관점에서 봤을 때 분명히 루비는 좋은 언어라는 생각이 든다.


루비 온 레일즈도 어느정도 공부 해볼 생각이다. 루비에 좀 더 익숙해졌을 때의 감상이 지금과 같을지 궁금하니... 좀 더 써보고 다시 포스팅하겠음.

'Scripts > Ruby' 카테고리의 다른 글

루비 주석  (0) 2014.02.07
루비 변수 관련 정리  (0) 2013.05.14
Ruby가 모듈을 찾는 장소.  (0) 2013.05.09
루비 작업을 몇일 해본 감흥  (0) 2013.03.01
Ruby  (0) 2009.01.20
IronRuby  (0) 2009.01.15
Posted by 엘키 엘키

댓글을 달아 주세요

이전버튼 1 2 이전버튼

블로그 이미지
Software Engineer
엘키

공지사항

Yesterday31
Today29
Total1,605,483

달력

 « |  » 2020.8
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

글 보관함