본문 바로가기

Ruby on Rails11

dynamoid gem으로 LSI 사용하기 dynamoid는 dynamodb의 table을 ruby on rails의 active record와 비슷한 문법으로 쿼리할 수 있게 해주는 gem입니다. 그런데 rails 프로젝트에서 dynamoid gem을 사용하려고 보니 아무리 찾아도 LSI로 쿼리를 하는법을 찾을 수가 없었습니다. 공식문서에도 정확한 방법이 나와있지 않았는데요, 수일간의 삽질을 통해 발견한 LSI의 사용법을 남기려고 합니다. initializers/dynamoid.rb Dynamoid.configure do |config| config.access_key = Rails.application.credentials.dig(:aws_account, :access_key_id) config.secret_key = Rails.applica.. 2021. 6. 20.
ruby의 반복문은 왜 이렇게 생겼을까 1. 서론 저는 rails 개발을 할때 이런식의 반복문을 주로 사용합니다. [1,2,3].each do |v] puts v end 사실 지금까지는 이 문법이 왜 이런모양새일까 아무런 의심 없이 뇌를 안거치고 사용하고있었는데요 이번에 ruby의 기본 문법을 공부하면서 이 신비로운 모양새의 비밀을 알게되었습니다. 오늘 이 문법이 왜 이렇게 생겼는지 포스팅 해보려고합니다. 2. ruby의 반복문 먼저 ruby의 일반적인 반복문 문법부터 살펴보겠습니다,. ruby에서도 다른 언어들과 마찬가지로 while과 for문의 사용이 가능합니다. while true puts 'using while statement' end 개인적으로 for문의 사용법은 python과 비슷하게 느껴지네요. for i in 0..4 puts.. 2021. 4. 11.
[Ruby on rails] anycable로 채팅 개발하기 1. 개념 정리 1. Anycable rails5부터 web socket 통신을 위해 action cable이라는 feature가 새로 도입되었습니다. action cable은 사용하기에 아주 편리하고 개발이 빠르다는 장점이 있는반면에 다른 websocket 서버들에 비해 속도가 느리다는 단점이 있었습니다.ruby 언어 자체가 여타 언어들에 비해서 느린축에 속한다는 것이 속도 저하의 이유중에 하나인데요, 아래 그림은 golang, erlang, ruby(action cable) 웹소켓 서버의 메모리 사용량과 broadcasting 속도를 비교한 것입니다. 다른 부연설명 없이 한눈에 보기에도 actionCable이 너무 극명하게 느리네요.하핫 뭐 이런 이유로 anycable이 탄생하게 됐습니다. anycable을 이용하면.. 2020. 11. 22.
aws cloud 9으로 rails 개발하기 1. 서론 최근에 회사 동료님과 토이프로젝트 협업을 위해 cloud9 위에서 개발를 해보았습니다. 웹앱 개발 프로젝트라 또 rails를 사용했는데요, cloud9으로 rails 환경 구축하는 법을 포스팅 하려고합니다. 2. environment 생성 환경 생성은 아주 쉽습니다. aws cloud9 콘솔에서 create environment 버튼을 눌러주시고요 환경의 타입, 인스턴스 타입, os 등등을 설정해주면 끝입니다. 저는 따로 프로젝트의 개발 서버가 없었기때문에 첫번째 환경타입, 가장 작은 instance, amazon linux 플랫폼을 선택했습니다.(디폴트 설정값입니다.) 그리고 기타 설정들을 완료해주면 환경 생성 끝입니다. 몇분간의 기다림 후에 환경 생성이 완료됩니다. 3. 공유하기 제 생각에.. 2020. 11. 8.
Ruby Symbol에 대해서 1. 서론 처음 루비를 시작할 때 새로 접했던 개념중에 하나가 symbol입니다. 본격적으로 rails 개발을 하면서 hash를 생성할때나, parameter를 받을 때 등등 여러 가지 상황에 symbol을 자주 사용했는데요. 사실 symbol이 immutable 하다는 것 외에는 string과의 차이점을 잘 알지 못하고 그냥 쓰고 있었습니다. 그냥 상수 느낌으로? 사용했던 것 같아요. 이제라도 제대로 알고 쓰기 위해 symbol에 대해 이것저것 찾아보았습니다. 2. symbol이란 symbol이란 간단히 말하면 콜론(:)으로 시작하는 문자열입니다. string은 따옴표(",')로 감싸진 문자열이고요. symbol 객체가 string와 다른점은 크게 두가지가 있습니다. 1) symbol은 immutabl.. 2020. 10. 11.
windows에서 Ruby on Rails 개발환경 구축하기 (wsl + rubymine) 1. 서론 처음 레일즈를 시작할 때 윈도우 위에 레일즈 개발 환경을 구축하다가 실패한 적이 있었습니다. 그때 그냥 속 편하게 회사맥북으로 개발하자고 다짐했었는데요, 지난 금요일에 맥북을 집으로 가져오는 걸 깜빡하는 바람에 자의반 타의반 재도전 했습니다. 2. windows와 rails 보통 Rails 개발은 윈도우 위에서 하면 안된다고들 얘기 합니다. 그런데 Ruby는 java 기반 언어라서 사실 이론적으로는 어떤 환경에서든 개발이 가능합니다. 그럼 왜 하지말라고 하는 걸까요? 가장 큰 이유는 gem 때문입니다. 윈도우에 아예 설치가 불가능한 gem들도 많고 Nokogiri 같은 gem은 윈도우의 파일 시스템을 지원하지 않습니다. 또 레일즈 커뮤니티 자체가 리눅스나 mac os 중심이기때문에 윈도우 위에.. 2020. 1. 8.