본문 바로가기

분류 전체보기

(좋아하는 It 서비스) 왓챠플레이! 난 왓챠플레이 덕후다. 그리고 29CM 서비스도 좋아한다. 그래서 FACEBOOK과 INSTAGRAM은 나에게 맨날 29CM에서 타겟팅한 광고를 보여준다. 그런데 왓챠플레이랑 29CM랑 친한가보다. 그래서 맨날 나한테 29CM에서 하는 왓챠플레이 광고를 보여준다. 난 29CM의 PT라는 브랜딩 광고 서비스를 좋게 생각하고 있다. 브랜드가 간지나보이게 내용을 꾸며줘서, 광고가 마치 콘텐츠 같고, 간지나보여서 나도 하나 사보고싶고 써보고 싶게 한다. 아무튼.. 29CM에서 왓챠플레이 PT를 봤는데, 내가 왓챠플레이를 좋아하는 이유로 와닿는 문구가 있었다. 옛날 비디오 가게 아저씨처럼 개개인을 가장 잘 아는 서비스를 만드는게 왓챠플레이의 시작이였다. 이게 뭔가 엄청 와닿았다. 왜냐면.. 요즘 왓챠가 타율이 좋..
(Phusion Passenger) 패신저는 뭐하는애일까 패신저는 프로세스를 관리하는 역할을 한다. 그리고 HTTP Request를 라우팅처리해준다.패신저에서 프로세스란 개념은 무엇일까?레일즈 애플리케이션 인스턴스를 하나 실행시킨걸, 패신저의 프로세스로 보면 될 것 같다.레일즈 인스턴스를 하나 띄어놓는 것은 패신저가 프로세스를 하나 띄어놓는 것과 같다.그리고 레일즈 인스턴스를 하나 죽이는 것은, 패신저가 프로세스를 하나 죽이는 것과 같다.패신저의 프로세스 개념에서 알아둬야하는건 뭘까?각 프로세스의 메모리는 다른 프로세스들과 분리된 영역이다. 프로세스 A에서 power_blogger='rails_blogger' 라고 변수를 할당해놔도, 프로세스 B에서는 power_blogger라는 변수를 가져다가 사용할 수 없다.프로세스들끼리 데이터를 공유하려면 어떻게 해야할까..
(Phusion Passenger) 코드 reload하기 서버에서 접속해서 디버깅용으로 직접 로그를 남겨서 볼 때, 수정된 코드를 반영하기 위해, 패신저를 보통 재시작해줬었다.그런데 패신저에서 코드를 Reload해주는 명령문이 따로 있었다. 패신저를 재시작해주는건 명령문을 치고, 몇초간 기다려야한다. 그런데 코드를 다시 읽어들이는 Reload는 이보다 더 빠르게 변경된 코드를 패신저에 반영할 수 있다. 단, config/application.rb에 있는 설정정보는 reload되지않는다고 한다.cd /path-to-your-app $ bundle exec passenger-config restart-app /Users/phusion/testapp Restarting /Users/phusion/testapp/public (development)이 명령문을 치면, ..
(Phusion Passenger) 패신저에서 트래픽을 어떻게 분산시켜줄까? 패신저의 Request LoadBalancingPushion Passenger는 프로세스를 관리하고, HTTP Request를 라우팅처리해준다.그리고 패신저는 성능 최적화를 위해 CPU 코어에 대한 처리를 분산시키거나, 응답시간을 최소화하기 위해 제일 놀고있는 프로세스에서 HTTP Request가 처리될 수 있게 해준다.이 포스팅은 루비온레일즈에 셋팅된 패신저에서 로드밸런싱 처리를 해주는 방법에 대한 내용을 담고 있다.루비온레일즈는 기본적으로 한 번에 한 요청을 처리한다.그래서 패신저는 어플리케이션에서 여러 프로세스들이 작동될 수 있게 해주는 역할을 한다. ( 프로세스마다 어플리케이션의 인스턴스를 하나씩 띄우는 개념인 것같다. 개발환경에서 레일즈 앱을 하나 띄우는 것처럼, 패신저가 레일즈 앱을 알아서 여..
(Phusion Passenger) Rails + Nginx 최적화를 위한 설정값 지난주는 인프라에 이리치이고 저리치였던 주였다. ㅠㅠ 서버의 메모리 사용량에 이리치이고 저리치이면서 패신저의 프로세스 상태를 확인하고, 설정값들을 변경해줘야하는 상황들이 발생했다. 패신저란.. 레일즈애플리케이션과 웹서버를 연결해주는 중간다리쯤정도만 생각했었다. 그런데 이번주는 패신저에 대해서 더 잘 알아두면 좋을 것 같단 생각을 한 주였다. 이래저래.. 큰불들은 꺼졌지만, 까먹기전에 패신저에 대한 내용들을 찾아서 정리해보고자 한다.아 ㅎ ㅎ !이 포스팅의 내용은 루비 + 엔진엑스로 패신저 조합의 이야기이다. A. 패신저 프로세스 수 조절하기이번주는 적당한 프로세스 수를 찾기 위해 이렇게 저렇게 설정해보고, 메모리에 치이고, 리퀘스트 큐에 치이는 한주였다.패신저에서는 프로세스 수를 동적으로 생성할 수 있다..
(지하철포스팅) 인스타그램은 어떻게 내가 찜한 상품을 광고로 보여주는 걸까? "인스타그램은 어떻게 내가 소니 이어폰을 갖고싶다는 사실을 알고있었을까? "나는 광고회사에서 광고 플랫폼을 만들고있다. 그러다보니 앱들에서 나오는 광고를 보면 인포메이션버튼을 눌러서 어디에서 내보내는 광고인지 확인하는 습관이 생겼다.최근에 궁금한건 인스타그램이다.콘텐츠 제네레이터를 한건지.. 누끼를 딴 것처럼 쌩뚱맞은 광고 소재도 신기했만,내가 다른 어플에서 찜해놓은 상품을 추천하는 것은 더 신기했다.이어폰 사고 싶어서 29cm 앱에서 찜해놨더니, 인스타그램에서 내눈에 계속 아른거린다..구글링을 해보니, 페이스북에서 Dynamic Ads를 인스타그램이랑 페북에 적용했다고 한다. AdWeek 기사 링크AdWeek라는 기사를 정기적으로 보면, 해외 광고 기술 트렌드를 알기 좋을 것 같단 생각이 번쩍든다 @_..
[HTTP] HTTP 2의 탄생 배경과 특징 팀에서 HTTP 2에 대한 내용을 간단하게 ㅎㅎ 발표하기로 했다. 그래서 준비중이다.그런데 피피티로 쓰는 것 보다 글로 정리하는게 더 나을것 같아서, 에버노트 대신 블로그에 포스팅을 하려고 한다.( 결국 이 포스팅을 읽으면서 발표했다 ㅎㅎ )A.https://www.httpvshttps.com/이 사이트에 들어가면, HTTP 1과 HTTP2의 웹페이지 랜딩 속도를 비교해볼 수 있다.보면, HTTP2가 HTTP1보다 절반은 빠르다. HTTP2는 이전 버전에 비해, 속도 측면에서 큰 변화가 있었다. HTTP2는 보안 강화라는 특징도 갖고 있지만, 이번 시간에는 HTTP2가 웹페이지를 요청하고, 응답받을 때까지 기다려야하는 시간을 어떻게 단축했는지에 대한 내용에 집중에서 이야기하려고 한다. B.HTTP 2는 ..
[RAILS] association_basics counter_cache 레일즈 가이드에 counter_cache라는 개념이 있길래, 뭔지 궁금해서 찾아봤다.class Comment < ApplicationRecord belongs_to :post, counter_cache: trueendclass Post < ApplicationRecord has_many :commentsend예를 들어, 게시물의 리스트를 조회하는 페이지를 만든다고 생각해보자. 이 때, 게시물(Post)에는 댓글(Comment)가 남는 다.이 때, 아래의 예제 코드처럼, 루프를 돌때마다 댓글의 크기를 세면N+1 쿼리 문제가 발생하게 된다.<% @posts.each do |post| %> <%= post.title %> <%= pluralize(post.comments.siz..