본문 바로가기

ruby8

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 Symbol에 대해서 1. 서론 처음 루비를 시작할 때 새로 접했던 개념중에 하나가 symbol입니다. 본격적으로 rails 개발을 하면서 hash를 생성할때나, parameter를 받을 때 등등 여러 가지 상황에 symbol을 자주 사용했는데요. 사실 symbol이 immutable 하다는 것 외에는 string과의 차이점을 잘 알지 못하고 그냥 쓰고 있었습니다. 그냥 상수 느낌으로? 사용했던 것 같아요. 이제라도 제대로 알고 쓰기 위해 symbol에 대해 이것저것 찾아보았습니다. 2. symbol이란 symbol이란 간단히 말하면 콜론(:)으로 시작하는 문자열입니다. string은 따옴표(",')로 감싸진 문자열이고요. symbol 객체가 string와 다른점은 크게 두가지가 있습니다. 1) symbol은 immutabl.. 2020. 10. 11.
aws cognito 사용해보기 2. jets로 pre-signup lambda trigger 걸기 제 서비스로직에는 회원가입시에(oauth기 때문에 첫 로그인) 몇가지 처리해줄 일들이 있습니다. 이를 위해서 cognito에는 로그인시, 인증시, 회원가입시 등등의 상황에서 쓸 수 있는 lambda trigger를 지원하는데요, 오늘은 ruby on jets 프레임워크를 이용해서 cognito api에 lambda 트리거를 걸어보겠습니다. 먼저 lambda function을 작성해줍시다. jets 에서 function은 controller나 job 등과 같은 다른 서비스들보다 제약이 덜한 대신 jets의 기능을 사용할 수 없습니다. 저는 미리 작성해 놓은 model을 사용하고싶기 때문에 먼저 jets 관련 모듈을 import 해주었습니다. 저처럼 jets의 기능을 사용하시지 않는 분들은 생략하셔도 좋습니.. 2020. 3. 18.
bundler 오류 해결하기 feat. 디펜던시 지옥 1.서론 저는 오늘도 평화롭게 jets 프로젝트에 gem을 추가하고 있었습니다. google oauth2를 이용한 로그인 기능을 구현하기 위해 omniauth-google-oauth2라는 gem을 사용하고 싶었기 때문이죠. 그래서 아래처럼 gemfile에 gem 'omniauth-google-oauth2' 라는 문장을 추가하고 bundle install 커맨드를 이용해서 gem을 설치했습니다. 그랬더니 아래처럼 뭔가 굉장한 실패 메시지가 쭉쭉 나옵니다. ❯ bundle install Fetching gem metadata from https://rubygems.org/........ Resolving dependencies... Bundler could not find compatible versions.. 2020. 2. 19.
ruby로 서버리스 개발하기 aws lambda - ruby on jets 2. dotenv로 환경변수 설정하기 1.서론 서버개발을 할때 보통 db config나 외부 서비스의 credential등의 정보는 코드에 노출시키지 않고 환경변수에 저장합니다. 보안상의 이유도 있고 개발 환경에서에서 사용하는 config와 실제 prod환경에서 사용하는 config가 다를때가 많기때문인데요. 직접 각각의 서버에 환경변수를 넣어주는 방법도 있지만 한대의 서버에서 여러개의 프로젝트가 돌아가는 경우에는 각각 설정을 따로 해줘야하기 때문에 좀 귀찮습니다. jets에서는 이런 귀찮음을 해결해주는 dotenv라는 gem을 기본적으로 사용합니다. 오늘은 dotenv를 이용해서 jets 프로젝트의 prod, dev, test 환경들의 환경변수를 설정해보도록 하겠습니다. 2.dotenv 기본 사용방법 사용 방법은 아주 간단합니다. 프로젝트.. 2020. 2. 6.
rails CORS 이슈 처리하기 1. 서론 최근 회사 동료분과 사내 행사 관련한 웹사이트를 만드는 토이프로젝트를 했습니다. 백엔드파트인 저는 api개발을, 웹파트인 동료분은 프론트를 맡아서 각각 개발한 후 웹에 api를 붙이려는 계획이었는데요, 간단한 사이트니까 주말동안 뚝딱 만들어오죠?ㅋㅋ 라며 경거망동하게 입을 놀렸던 스스로를 반성하게 되는 보람된 시간이었습니다. 사실 개발보다는 배포과정에서 이슈가 많았는데요, 그 얘기는 나중에 또 적도록 하겠습니다. 아무튼 우여곡절 끝에 잘 배포를 했고 http test에서 response가 잘 나오는 걸 확인하고 동료분께 api를 드렸습니당. "혜리님 오류나는데요 ㅠ" "네..?ㅠ 왜요..?ㅠ" 그냥 브라우저 상에서 api를 직접 호출할 때는 잘 작동을 하지만 local web 개발 환경에서는 .. 2019. 12. 26.