본문 바로가기

분류 전체보기

[RUBY]루비로 AWS Athena 사용하기 Gemaws-sdk gem 안에 athena 서비스를 사용할 수 있는 함수도 포함되어 있다. 함수 사용하는 방법 처음에 aws-sdk를 사용할 때는, 아테나에 쿼리를 보내면 바로 결과값을 리턴해주는 기능이 있을거라고 기대했다.마치 jdbc를 사용하듯이 사용할 수 있을줄 알았다. 그런데 약간 개념이 달랐다.참고링크 : ATHENA RUBY SDK 사용법이렇게 클라이언트를 만들고client = Aws::Athena::Client.new(region: 'us-east-1') 이렇게 쿼리를 날리면, 이 때 날린 쿼리의 아이디가 담긴 객체가 리턴된다resp = client.start_query_execution({ query_string: "SELECT * FROM impressions WHERE year='20..
[리서치]통계 처리 시스템 기업 사례 네이버 콘텐츠 통계 서비스 [215]네이버콘텐츠통계서비스소개 김기영 from NAVER D2 카카오 통계 서비스 [235]루빅스개발이야기 황지수 from NAVER D2 루빅스 기술 블로그 포스팅 : http://tech.kakao.com/2016/04/27/rubics/
[AWS]beanstalk ssh 접속 에러 - NotAuthorizedError 상황예전에 EB CLI 명령문으로 빈스톡 서버에 접속하려고 하는데 에러가 난 적이 있었다. 당시의 에러 로그는 아래와 같았다. ebcli.objects.exceptions.NotAuthorizedError: Operation Denied. Signature expired: 20170626T164026Z is now earlier than 20170627T023518Z (20170627T024018Z - 5 min.)원인로컬 컴퓨터의 시간이 실제 시간과 다르게 설정되어있으면 접속이 안된다. 기능 테스트 때문에 잠시 컴퓨터의 시간을 바꿔놨었는데, 이거 때문에 접속이 막혔던거다.
[AWS]beanstalk에서 로그 확인하기 빈스톡 서버에서 애플리케이션, 웹 서버의 로그를 확인하려면 아래의 폴더 경로에 들어가서 확인하면 된다. 그리고 예전에 만들어졌던 로그 파일을 확인해보고 싶을 때는, s3에 들어가서 확인하면 된다 내가 찾고자 하는 서버의 로그가 있는 폴더 경로를 찾기가 좀 어려우니, 잘 추적해서 들어가야한다. beanstalk를 사용하면, 앱 / 웹 서버 로그 로테이션도 알아서 관리해준다. (굿뜨~)참고 문서 경로 : using-features.logging.html
제럴드 와인버그 <프로그래밍 심리학> 1-2장 요약 1장. 프로그램 읽기p. 43명세는 프로그램, 프로그래머와 함께 진화한다. 프로그램을 작성한다는 것은 일종의 학습 ( 프로그래머와 프로그램 사용자 모두에 대한)이다. 게다가 이 학습 과정은 특정 기계와 특정 프로그래밍 언어, 특정 작업 환경에서 일하는 특정 프로그래머 또는 팀 그리고 코드의 모양새 뿐만 아니라 코드가 하는 일까지도 좌지우지하는 일련의 역사적인 사건들로 이뤄진 문맥내에서 일어난다. ..우리가 프로그램 작성 과정을 연구하는 가장 중요한 목적은 좀 더 효율적이고 치밀하고 저렴하고 이해하기 쉬운 프로글매을 만들기 위함이 아니다. 그보다는 프로그램이 하는 일이 우리가 프로글매에게 원했던 바로 그것이길 바란다. 이러고 저러다 보니 그렇게 된 프로그램 말고 말이다. ..어떤 프로그램이 현재의 모습을 ..
[DB] 갈레라 클러스터의 특이한 점들 갈레라 클러스터를 사용하다가, 특이한 점을 발견했다.auto increment로 설정된 레코드의 ID값이 1씩 순차적으로 증가하는게 아니라,1, 3, 4, 6 이런식으로 불규칙하게 ID값이 증분하고 있었다.왜냐하면 갈레라 클러스터에 묶여있는 데이터베이스 서버들이 각각 다른 ID값을 생성하게 하기 위하여AUTO INCREMENT의 증분값이 클러스터의 노드마다 각각 다르다고 한다.이렇게 하는 이유는 모든 노드의 ID가 1씩 값이 증가한다면, ID가 컨플릭이 날 수 있기 때문이다.참고 문서 멀티 데이터베이스 환경에서 AUTO INCREMENT 관리하는 방법 - http://codership.blogspot.kr/2009/02/managing-auto-increments-with-multi.html갈레라 클러스..
[DB] 갈레라 클러스터 주의사항 - 테이블 변경하기 갈레라 클러스터를 쓰고 있으면, 테이블 변경할때 마음의 준비를 좀 하고 DDL 명령문을 날려야한다. 경건하게 ALTER QUERY를 날려야한다 내가 지금 사용하고 있는 DDL 방식이 뭔지 확인해보고, 어떤 테이블들을 변경할건지, 서비스의 특성이 뭔지 등을 고려하여 테이블 변경 플랜을 짜야한다.갈레라 클러스터에서 DDL 을 처리하는 방법은 두가지가 있다. TOI 와 RSU 방식이다.Default 방식은 TOI 이다.TOITOI 방식은 클러스터에 묶여있는 DB SERVER들의 테이블들을 한방에 변경해주는 방식이다. 그런데 모든 DB SERVER에서 테이블 변경이 끝날 때까지, 클러스터에 들어오는 트랜잭션들을 처리하지 않고 쌓아둔다.만약에 세 대의 데이터베이스 서버로 클러스터를 구성했다면, 세 대의 서버에서 ..
[Ruby]루비의 메모리 이슈 루비 메모리 이슈 관련 포스팅 해석 및 따라해보기 블로그 : https://www.toptal.com/ruby/hunting-ruby-memory-issues예제 코드 : https://github.com/lingceng/momery_demo준비물1. 예제 코드를 다운 받는다 2. Gemfile을 만들어서, 테스트용 스크립트를 돌릴 때 필요한 gem들을 설치한다 예제 코드에서는 Gemfile이 따로 없어서, 나는 아래의 Gemfile을 따로 만들어서 예제 코드를 돌려봤다.이 예제 코드 안에 아래의 Gemfile을 만들고, bundle install을 해주면, Gem들이 설치된다.source 'http://rubygems.org'gem "activerecord"gem "activesupport"gem "g..