bluesh55's blog

루비를 좋아하는 어떤 개발자의 개발 블로그 😎

Linux
라즈베리파이에 외장하드 마운트하기

라즈베리파이에 외장하드 마운트하기

몇 달 전, 라즈베리파이3 B+ 모델을 구입했다. 다른건 다 좋았으나 디스크 공간이 부족하여 안 쓰는 노트북에서 2.5인치 하드디스크를 떼어내어 외장...

iOS

그라데이션 만들기

뷰에 그라데이션 효과를 주고 싶을 땐 CAGradientLayer 객체를 만들어서 뷰의 레이어 위에 올리면 된다. let containerView = UIImageView(frame: CGRect(x: 0,...

Ruby & RoR

Carrierwave 리사이징 옵션 정리

Carrierwave는 루비 웹프레임워크에서 이미지 업로드를 손쉽게 할 수 있게 해주는 라이브러리다. Carrierwave로 이미지를 업로드할 때 사용되는 총 4가지의 리사이징 옵션을...

DB

SNS 뉴스피드 구현과 첫 쿼리 튜닝

소셜 네트워킹 서비스를 개발하면서 SNS의 뉴스피드 기능을 만들게 되었다. 그런데 사람이 점점 늘어나면서 뉴스피드를 로딩하는 시간이 점점 길어지더니 한 페이지...

Ruby & RoR

배포 환경에서 발생하는 Auto loading 문제

레일즈는 소스 코드 파일을 로드하기 위해서 실제로 사용될 때 그제서야 파일을 로드하는 Auto loading1과 서버가 실행될 때 한 번에 모든...

Ruby & RoR

타임 헬퍼로 시간 테스트하기

테스트 코드를 실행할 때 현재 시간을 변경하고 싶을 때가 있다. 예를 들어 모임 시간을 가지는 모임(Meeting) 클래스가 있고 모임 시간이...

Linux

logrotate로 리눅스 로그 관리

웹 서비스를 운영할 때 쉽게 놓칠 수 있는 것 중 하나가 로그 관리다. 로그를 관리하지 않아도 운영하는데는 문제가 없으며 운영...

Ruby & RoR

MVC 웹 프레임워크의 문제점

나는 2014년 10월에 레일즈를 처음 접했고 2년 동안 거의 모든 웹 프로젝트에 레일즈를 사용했다. 그리고 레일즈를 배우면서 루비를 배웠다. 그...

Ruby & RoR

[Rails] Rake task 사용하기

Rake는 Ruby 개발 환경에서 사용되는 빌드 프로그램이다. Unix에서 사용되는 Make와 비슷한 용도로 사용되며 Makefile과 비슷한 Rakefile이 존재한다. Rake를 통해 실행되는...

DB

MYSQL에 이모티콘 저장하기

MYSQL에 이모티콘을 저장하려 하면 Incorrect string value 에러가 발생하면서 저장되지 않는 문제가 발생했다. mysql> desc faqs; +------------+--------------+------+-----+---------+----------------+ | Field |...

Tools

터미널 멀티플렉서 tmux를 배워보자

tmux는 터미널 화면을 여러개로 분할하고, 세션을 생성하여 attach/detach를 자유롭게 할 수 있는 터미널 멀티플렉서이다. Vim과 tmux를 함께 사용하는 동영상 을...

Vim

Vim을 IDE처럼 사용하기

코드 편집기로 Vim을 사용한지 2주년 된 기념으로 Vim 포스팅을 하려고 한다. 1년 넘게 특별한 플러그인 없이 Vim만 사용했었는데, 앱 개발을...

Ruby & RoR

[번역] 액티브레코드 모델을 리팩토링하는 7가지 방법

2년 가까이 레일즈로 개발을 해오면서 OOP를 제대로 적용하지 못하고 있다는 것을 많이 느꼈다. 컨트롤러나 모델 클래스위에 모든 코드를 작성했고, 비즈니스...

Ruby & RoR

Rails wrap_parameters

레일즈로 개발하다 보면 클라이언트에서 파라미터를 특정 엘리먼트로 래핑해서 보내야하는 경우가 있다. 예를 들어 Devise는 요청의 모든 파라미터들을 user로 감싸서 보내야한다....

Design

Material Design 아이콘을 무료로 사용해보자

구글이 안드로이드 롤리팝(5.0) 이후로 내놓은 머티리얼 디자인은 이제 안드로이드 개발에서 빠질 수 없는 존재가 되었다. 안드로이드뿐만 아니라 웹에서도 머티리얼 디자인을...

Android

구글맵 마커 클러스터링 해보기 -1-

이번에 안드로이드 앱을 개발하면서 지도에 클러스터링을 해봤는데, 자료가 너무 없어서 삽질을 많이 했기 때문에 나중을 위해 블로그에 포스팅하기로 했다. 마커...

Android

당겨서 새로고침 간단하게 구현하기

안드로이드에서 “당겨서 새로고침(Pull to Refresh)” UI를 간단히 구현해보자. 당겨서 새로고침 기능을 구현해주는 SwipeRefreshLayout은 Android support library v4에 포함되어 있다. 먼저...

Android

안드로이드 스튜디오 키스토어 비밀번호를 찾는 방법

TL;DR 안드로이드 로그 파일을 뒤져서 비밀번호를 찾아낸다. 기억나는 비밀번호와 한/영 조합을 모두 입력해본다. 안드로이드 앱을 구글 플레이에 올릴 때 키...

Ruby & RoR

Sidekiq 프로세스 2개 이상 실행하기

레일즈에서 백그라운드 잡을 처리할 때 Sidekiq을 사용할 수 있는데, 한 서버에 사이드킥을 사용하는 프로젝트를 2개 이상 돌리고 싶은 경우가 있다....

Ruby & RoR

Devise 이메일 인증 구현하기

Rails로 유저 기능을 구현할 때 Devise를 많이 사용한다. Devise는 유저와 관련된 많은 기능을 제공하는데, 몇 가지 읊어보자면 회원가입, 로그인, 로그아웃,...