본문 바로가기

rails

(Phusion Passenger) 웹서버 - 패신저를 구성하는 방식 ( Mode ) 패신저에서 지원하는 3가지 패신저 & 웹서버 조합패신저에서 지원하는 패신저 & 웹서버 조합은 위처럼 세가지가 있다. StrandardAlone 모드 패신저안에 Nginx 엔진이 내장되어 있는 구조이다.그래서 따로 이것저것 Nginx나 Apache를 설치하지 않아도 된다.그래서 패신저 문서에서는 개발 환경 때 StrandAlone을 쓰는게 편하니, 이걸 사용하라고 권장한다.그리고 만약 한 서버에서 하나의 애플리케이션만 띄우는 방식으로 서버를 운영한다면, 프로덕션 모드에서도 StandardAlone 모드를 사용해도 괜찮다. Apache / Nginx Integration 모드 Apache나 Nginx 모듈을 사용해서, 패신저를 운영하는 방식을 의미한다. 이 모드는 개발 환경에서는 사용되지 않고, 프로덕션 환..
[passenger] 서버에 올라간 Rails Application 재시작하기 개발 환경 서버에 레일즈 애플리케이션을 올리고, 테스트를 할 때 중간중간에 로그를 추가해서, 로그를 보고 싶을 때가 있다. 이 때 git에 디버깅용 로그를 추가했다가, 지우는건 번거롭다.그래서 서버에 올라가있는 레일즈 코드를 직접 수정해서, 중간중간에 필요한 로그를 보고 싶을 때가 있다. passenger을 통해 레일즈와 웹서버를 연결시킨 경우, 중간에 내가 코드를 직접 수정한건 어플리케이션을 재시작할 때까지는 반영되지 않는다. 포스팅 관련 참고 자료 : restart_app restart를 해줘야하는 이유 restart를 해줘야하는 이유는 영알못이지만 대충 읽어보면..패신저가 여러 프로세스를 갖고 있어서, 애플리케이션을 재시작할 때까지 레일즈 코드를 수정한게 영향을 주지 않는다고 한다. 1. resta..
레일즈 엔진 (Rails Engine) 레일즈 애플리케이션 프로젝트가 여러개 있을 때, 공통으로 사용하는 함수나 상수가 있으면 ruby gem을 사용하면 된다. 그런데 공통으로 사용하는 view가 여러개 있으면 어떻게 할까?공통으로 사용하는 함수가 Model이라면?공통으로 사용하는 함수가 레일즈를 기반으로한다면? 이럴 때는 Gem으로 공통 라이브러리를 관리하기에는 한계가 있다. 이런 상황에 필요한 레일즈 기능은 Engine이다. 처음에 레일즈 Engine을 알게된 배경은, 리멤버의 블로그를 통해서였다.리멤버 개발 블로그 - Rails Engine을 이용한 Zeus 프로젝트 레일즈 엔진은 레일즈를 모듈처럼 쪼개놓은 것 같은 느낌이다.내가 만들고 있는 레일즈 애플리케이션에 엔진을 끼워넣는 느낌으로 사용하는거다.- 공통적으로 사용하는 컨트롤러를 만..
[RAILS]before_filter에 넘어오는 파라미터에 따라 필터 적용 여부 결정하기 만약 HelloWorld라는 컨트롤러에 before filter를 달고 싶은데, 넘어오는 파라미터에 따라 필터 적용 여부를 결정하고 싶을 때가 있다.이 경우에는 before_filter에 block을 넣고, if 분기를 추가하면된다. class HelloWorldController < ApplicationController before_filter(only: [:create]) do admin_log if (params[:admin_grade] == 'staff') end 예를 들면, admin_grade 파라미터에 넘어오는 값이 staff일 경우에만 어드민 접근 로그를 남기는 admin_log라는 함수를 사용하고 싶을 수 있다. 이 경우, 위에 처럼 before_filter block을 생성해서, if..
[rubyonrails]active record의 timezone 설정하기 루비온 레일즈에서 데이터 베이스에 현재 시각이 다르게 나오는 이슈 해결하기루비온레일즈 콘솔로 DateTime.now를 하면 현재 시각이 잘 나오는데, DB에 저장할 경우 created_at의 시각이 다르게 나오는 현상이 발생했다. 이유를 찾아보다가... 액티브 레코드 설정값을 local로 바꾸어주면 된다는 것을 발견했다.application.rb에 default timezone을 로컬로 설정해주면 된다.config/application.rbconfig.active_record.default_timezone = :local 후훗!
[RAILS][CHARTKICK]루비로 이쁜 그래프 만들기! Chartkick진짜..편하당 !파이썬, 자바스크립트로도 지원해준다고 한다. D3보다도 편하고, 이쁜 그래프를 레일즈로 바로 생성할 ㅅ ㅜ있다. 젬파일에 gem chartkick을 선언하고, bundle install하고,이제 view에다가 그래프를 넣고싶은 곳에 저 함수를 넣어주면!복잡하고 지저분한 TAG/CSS/JS 없이 이쁜 그래프가 뚝딱 만들어진다.JSON 규격을 맞추려고 소스코드를 여기저기 FOR문 돌면서 안뜯어고쳐도 된당루비 객체랑 바로 매핑된다! 쪼으당!여기서 TIP은 line_chart의 data 구조는 [['2015-09-10',3]['2015-09-10',4]] or {'2015-09-10'=>3,'2015-09-10',4} 형태이다.찾느라 시간을 좀 들였다 쩝 https://githu..
[ruby] ruby / rails로 자동 로그인 봇만들기 나는 미생이다그래서 이번 추석은 미생을 위하여 달려야했지만, 항상 시험전날에는 딴짓을 하게 되듯딴짓을 하였다.ㅎ_ㅎ 인생이 걸렸는뎀 ㅎ_ㅎ딴짓잼..ㅎ_ㅎ크롤링 잼.. 크롤링덕후되버려쓰 ㅎ_ㅎ거의 살면서 첨으로 내 플밍 능력으로 나한테 편한 기능을 만들었다 ㅎ_ㅎ 긱스러운거 만든적이 첨이라 뿌듯 ㅎ_ㅎ 오늘 만든건 '자동 로그인 봇'이다. 어느 카페에서 등업을 하려면 로그인 기록이 몇십회 되어야하는데 매일 깜빡해서 로그인을 못했다.그래서 나는 등업을 하려면.. 정말 몇년 후가 될 필이였다. 그래서 RUBY로 매일 새벽에 자동 로그인하는 봇을 만들었다. 웹서버 OR AWS를 사용하는 건 아니지만, GEM을 편하게 사용하려고 RAILS를 사용했다.MECHANIZE랑 WHENEVER GEM을 사용하니까 금방 뚝..