표준 입출력 함수 메모

April 23, 2018 Dev

바이트 스트림과 관련된 시스템 콜(open, close, read, write, seek)을 감싸는 표준 입출력 함수에 대해서 정리 open FILE 은 내부에 버퍼를 가지고 있어서 (매우 느린) 시스템 콜 호출 횟수를...

Ruboty 로 공부하는 플러그인 시스템

April 22, 2018 Dev

Ruboty는 루비로 작성된 봇 프레임워크입니다. Hubot의 Ruby 판이라고 생각하면 이해하기 쉽습니다. 다른 점이라면, http endpoint 가 기본으로 제공되지 않는다는 점일까요[이 기능에 대한 제안 PR이 현재 진행형입니다]. Lita도 좋지만...

Jsonnet 소개

April 18, 2018 Dev

Jsonnet은 JSON에 몇 가지 기능을 확장한 템플릿 언어입니다. 설정을 저장하기 위한 파일 형식으로 가장 넓게 사용되는 것은 JSON, YAML이 있습니다. 대부분의 경우 이 두 가지 중 하나로 충분하지만,...

Monad? Monad!

November 29, 2017 Dev

Monad 괴담 자세한 설명은 이 링크로 생략합니다. 전부 동의하는가? 라고 하면 동의하기 어려운 지점은 분명 존재하지만, 일반적으로 하스켈에 느끼는 좌절감을 가장 잘 이야기하고, 오해라는 걸 설명해주는 글이라서입니다. 무엇보다...

Self ISUCON

November 5, 2017 Dev

ISUCON? 좋은 느낌으로 빠르게 만드는 콘테스트. 요는 주어진 어플리케이션 / 서버로 스코어를 최대한 많이 뽑으면 되는 대회입니다. 매번 병목 지점이 다르기 때문에 병목지점을 발견하고 그걸 잘 개선하는게 포인트....

OmniAuth + Rails CheetSheet

October 22, 2017 Dev

Rails에서 Devise에 의존하지 않고 OmniAuth만으로 OAuth2 인증을 처리하는 순서에 대해서 간단하게 정리합니다. 어쩌다 한번씩 하는 작업이라 자꾸 뭔가 하나씩 빼먹게 되서 체크리스트 대용으로 사용할 겸. 설명환경 Ruby 2.4.2...

Digging newtype

August 20, 2017 Code

Easy Explanation 간편하게 isomorphic을 확보하기 위한 수단. 특정 조건(하나의 레코드, 하나의 데이터 생성자를 가짐)하의 데이터 타입일 때 (최적화를 위해서) 쓰세요. Difficult Explanation Isomorphic data Any = Any {...

From Rails system test to Travis CI with Headless Chrome

July 11, 2017 Code

이 글에서는 Rails 5.1에서 도입된 System Test를 Headless Chrome를 사용하여 실행하는 방법에 대해서 알아보고, 이를 Travis CI에서 동작시키는 방법에 대해서 알아봅니다. 소개 Rails System Test Rails 5.1부터, 프레임워크...

include, extend in Ruby

July 10, 2017 Code

들어가기 전에 Ruby 2.4.x에서 동작하는 코드입니다. 아마 1.9까진 잘 돌아갑니다. 싱글톤 클래스에 대한 이해가 필요합니다. 이해하시는 분은 이 글을 읽을 필요가 없겠지만… include 우선 문서를 봅시다. Invokes Module.append_features...

Cookpad Ruby style guide

June 14, 2017 Code

Ruby style guide와는 다른 부분이 보여서 읽고 신경쓰이는 부분을 정리해보았습니다. 전체는 여기에서 확인하실 수 있습니다. 긴 메소드 체인의 마지막 부분이 블럭인 경우 이런 경우에는 앞 부분과 뒷 부분을...

Elixir PR 대충 읽기 (5.1-5.22)

May 25, 2017 Dev

Elixir 대충 읽기 Integer.parse/2 simpler and faster 직접 구현에서 얼랭 구현을 가져다 쓰는 것으로 변경. 쓸모없이 빨라짐. 최소 10배 이상의 성능 개선. Fix: ExUnit Setup_all fails with 0...

지금까지 정규 표현식을 오해하고 있었던 이야기

May 20, 2017 Dev

TL;DR: /{\S*}/ -> {word}}의 결과를 아시는 분은 재끼셔도 좋습니다. 우선 답부터 답부터 이야기하자면 {word}}를 매칭합니다. 정규식을 배울 때 가장 처음에 배우는 내용(이라고 생각합니다) 중에 하나죠. 탐욕적인(Greedy) 패턴 매칭...

Elixir PR 대충 읽기 (4.21-4.30)

May 8, 2017 Dev

Elixir 대충 읽기 Add Process.cancel_timer/2 두번째 인자에 옵션을 넘길 수 있도록 시그니처가 하나 추가됨. 간단하게 설명하자면 Process.send_after/3으로 예약해둔 전송을 취소함. 옵션으로는 동기/비동기 처리 여부 설정(:async), 결과 정보 반환...

Elixir PR 대충 읽기 (4.17-4.20)

May 5, 2017 Dev

Test tl/2 and document use with improper lists tl/2의 설명이 추가됨. Erlang의 tl/2를 그대로 프록시하고 있어서 설명과 테스트가 추가된 정도. Create “clean_residual_files” target in Makefile 빌드후에 남은 임시파일,...

일일커밋을 그만두는 글

April 10, 2017 Opinion

처음 일일커밋에 대해서 읽은 것이 2015년 5월 즈음입니다. 해봐야지 맘은 먹고 있다가 일도 바쁘고 해서 이래저래 미루다가 시작한건 15년 12월. 성실하게 일일커밋을 하진 않아서 양심에는 좀 찔리지만 대체적으로 지키려고 노력했습니다. 이제...

capistrano3-puma 버전업에 따른 버그 해결하기

March 22, 2017 Code

근 2주 사이에 capistrano3-puma 버전이 v1.2.1에서 v3.0.2로 올라가는 대격변이 있었습니다. 이 때문에 있었던 왠지 저만 빠진듯한 버그를 해결하고 겸사겸사 잡지식도 설명합니다. 버그 간단 소개 puma 관련 태스크를 실행하려고...

Dancing with Fixture

February 24, 2017 Dev

Rails에는 테스트 데이터를 위해서 픽스쳐라는 구조를 기본으로 제공하고 있습니다. 지금까지 주변을 봐온 경험상, 저를 포함한 많은 분들이 픽스쳐 대신 factory_girl을 쓰고 있습니다. 이전부터 왜 픽스쳐가 인기가 없는지에 대한...

Nmatrix에 고통받는 개발자와 사라진 2주

February 23, 2017 Dev

얼마 전에 밑바닥부터 시작하는 딥러닝이라는 책을 읽고 심심풀이 삼아서 nmatrix를 사용해서 예제를 구현해보고 있었습니다. 그리고 2주 정도 씨름을 한 끝에 포기선언을 한 것이 2일 전. 여기에 대한 감상글이라고...

‘제로부터 시작하는 딥러닝’을 읽고

February 3, 2017 Book

차일피일 미루고 있던 기계학습 공부를 시작해야겠다, 마음먹은 찰나에 주변에서 들려오는 ‘제로부터 시작하는 딥러닝’의 평이 워낙 좋아서 짬이 난 김에 한번 읽어봤습니다. 읽었으니 글을 하나 써야하는 것이 인지상정. 내용...

ActionController::UrlGenerationError in RSpec

January 31, 2017 Code

RSpec에서 이러한 에러가 발생하는 경우가 있습니다. 회사 프로젝트에서 이런 문제가 있었는데, 괴이한 점은 CI에서는 멀쩡하게 돌고 로컬에서만 실패한다는 점입니다. 이러나저러나 로컬에서 잘 알 수 없는 이유로 테스트가 실패하는...

코드로 보는 NumPy Tutorial

January 30, 2017 Code

NumPy는 파이썬에서 계산을 위해서 사용하는 가장 유명한 라이브러리라고 해도 과언이 아닙니다(사실 이거 말고 아는게 없습니다). 그 중에서 행렬 연산에 관한 기능을 코드와 함께 정리해봤습니다. 생성하기 A = np.array([1.0,...

Global Attributes of HTML5

January 30, 2017 Dev

얼마전에 뜬금없이 haruair님에게 트윗을 하나 받았다. 글에서 맘대로 Shia님 인용해서 죄송합니다  뭐지? 싶어서 확인해본 결과 이런 글을 쓰셨는데, 깨진 사례로 내 포스트가 올라가 있었다. 사실 트래픽이 벌려서...

With Elixir

January 29, 2017 Code

Elixir에는 with라는 문법이 있는데요. 토이 프로젝트에서 사용해본 김에 이에 대해서 정리해봅니다. with?? 간단한 소개 with는 1.2.0에서 추가된 새로운 문법입니다. 에, 작년 1월에 릴리스 되었으니 이제 딱 1년이 지났네요....

Travis에서 Postgres 최신판 사용하기

January 14, 2017 Dev

Travis에서 최신 PostgreSQL을 사용하고 싶은 경우가 있습니다. 예를 들어서 JSONB 타입을 사용하는 경우라던가 말이죠. 물론 9.2 부터 사용가능합니다만, 이왕이면 실환경, 개발, 테스트 환경에서 동일한 버전의 데이터베이스를 쓰는 것이...

Elixir 1.4.0 Preview

January 10, 2017 Dev

1월 5일, Elixir 1.4.0이 릴리스되었습니다. 어떤 것이 추가되고, 어떤 변경이 있었는지 살펴보도록 하죠. Registry Elixir의 표준 라이브러리에 Registry라는 모듈이 추가되었습니다. 한 문장으로 간단하게 요약해보자면 ‘분산되고 확장 가능한 키-값...

Python tutorial for Rubyist

January 8, 2017 Dev

이 글은 파이썬 3에 뛰어들기를 읽으며 배운 문법에 대해서 정리했습니다. 평범하게 정리하면 재미가 없기 때문에, 루비 개발자가 보았을때 낯설어보일 수 있는 부분을 중점적으로 정리해봤습니다. Function argument 인자는 항상...