본문 바로가기

전체 글28

[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.
Thumbor - open source imaging service Thumbor는 오픈소스 on demand 이미징 서비스입니다. 주 기능은 이미지 크롭, 리사이징, 필터링등인데요, thumbor는 이름에서 유추할 수 있듯 썸네일을 만들어주는 서비스에서 시작했습니다. 그 이후에 여러가지 부가기능들이 추가되어 이미지에 관한 다양한 처리를 할 수 있는 서비스로 발전했습니다. 현재 github에서 스타 8000개가 넘는 꽤 유명한 이미지 관련 오픈소스입니다. thumbor 한번 써봅시다. 1. 설치 pip install thumbor 끝입니다! thumbor는 파이썬으로 내부 코드가 이루어져있어서 pip로 간단하게 서버에 설치가 가능합니다. 저는 서버에 따로 올리지 않고 로컬에서 테스트하고싶었는데요, 로컬에는 간단하게 docker로 설치가 가능합니다. docker run -.. 2020. 10. 22.
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.
aws cognito 사용해보기 1. google oauth2 인증 구현하기 개발자들이 좋아하는 말중에 바퀴를 다시 발명하지 말라는 말이 있습니다... 괜한 삽질 하지말고 잘 만들어져있는 거 가져다 쓰라는 말인데요.. 저도 인증으로 괜한 삽질을 한바탕 마친후 있는 거 가져다 쓰기로 마음 먹고 cognito를 사용해보게 되었습니다. cognito는 aws 에서 제공하는 인증 및 사용자 관리 서비스인데요, 아주 간편하고 좋더구만요. 총 2편으로 1편에서는 간단하게 google oauth2를 구현하고 2편에서는 lambda 트리거를 이용하여 사용자 가입 전후처리를 해보겠습니다. 1. 사용자 풀 생성 먼저 aws cognito 콘솔에서 사용자 풀을 생성해줍니다. 일단은 기본 설정으로 해도 무방합니다. 그리고나서 사용자 풀에서 앱 클라이언트를 생성합니다. 역시 설정은 건들지않겠습니다. 왼.. 2020. 3. 5.