레일스에서 Pinterest 스타일 레이아웃 구현하기

Pinterest 방식의 페이지 레이아웃을 레일스 프로젝트에서 적용하는 방법을 소개하고자 한다.

Pinterest 서비스는 그 특징적인 웹페이지 레이아웃으로 유명하다. 한번도 본 적이 없다면 지금 바로 웹사이트를 방문해 보기 바란다.

아래의 동영상을 보면 Pinterest에 대한 간단한 소개를 볼 수 있다.

이 글에서는 Pinterest에 대한 설명을 하려는 것이 아니고 앞서 언급했던 Pinterest 방식의 페이지 레이아웃을 레일스 프로젝트에서 적용하는 방법을 소개하고자 한다.

계속 “레일스에서 Pinterest 스타일 레이아웃 구현하기” 읽기

레일스 라우트

많은 레일스 초보자들이 궁금해 하는 레일스 라우팅의 비밀을 설명합니다.

얼마 전 페일스북 그룹에 올라 온 질문을 보고 초보자들에게 흔히 있을 수 있는 궁금증이라고 생각하여 이 글을 작성한다.

웹서비스는 라우팅으로부터 시작한다고 해도 과언이 아닐 것이다.

특히나 레일스도 REST형식의 라우팅을 지원한다. 레일스는 외부로부터 서버로 들어오는 URI 요청을 파싱하여 어떤 컨트롤러를 호출할 것인지 정하게 되는데, 해당 컨트롤러의 특정 액션을 구체적으로 호출한 후 액션명과 동일한 뷰 템플릿 파일(정확히는, [action-name].html.erb)을 app/views/[controlle-name]/ 디렉토리에서 찾아 페이지를 렌더링한 후 요청결과로써 클라이언트에게 발송하게 된다.

이와 같은 요청/응답의 과정은 레일스 프로젝트의 COC 원칙 중의 대표적인 사례다.

계속 “레일스 라우트” 읽기

레일스용 웹소켓 : 액션케이블

일반적으로 웹애플리케이션은 HTTP 통신 프로토콜(서버와 클라이언트 간의 단방향 통신(half-duplex communication))을 이용하여 서비스를 한다. 따라서 채팅 프로그램을 웹으로 구현할 때는 데이터의 동시성에 관한 문제를 해결하기 실무적으로 어렵게 되고 기존에는 대안으로 일정한 시간 간격으로 서버에서 클라이언트로 데이터를 보내는 polling 방식을 사용한다.

DHH는 이러한 polling 방식의 문제점을 해결하기 위해 양방향 동시 통신을 가능케 해 주는 웹소켓을 레일스 프레임워크에서 레일스 방식으로 쉽게 구현할 수 있도록 했는데 이것을 액션케이블(ActionCable)이라고 한다. 레일스 5.0에 처음으로 도입되었다.

계속 “레일스용 웹소켓 : 액션케이블” 읽기

중첩 댓글 기능 구현하기

이 글에서는 댓글기능을 스레드 방식으로 중첩해서 보이도록 기능개선을 해 볼 것이다.

레일스를 이용하여 프로젝트를 작성할 때 특정 글에 대한 댓글기능을 구현하는 것은 매우 단순하고 쉬운 편이다. 물론 구현 방식에 따라 그 난이도는 다를 수 있지만, 이에 대해서는 인터넷 상에 이미 많은 자료가 소개되어 있다.

이 글에서는 댓글기능을 스레드방식으로 중첩해서 보이도록 기능 개선을 해 볼 것이다.

구현로직은 사실은 매우 간단하다. 댓글 모델에 상위 객체로 연결할 수 있도록 외래키를 추가하고 댓글 모델에 self join 관계 선언을 해 주면 된다.

계속 “중첩 댓글 기능 구현하기” 읽기

Froala 에디터에서 이미지 업로드 처리하기

Froala 에디터는 내가 본 위지위그 웹에디터 중에 최고라는 생각이 든다.
유료다.
그러나 로컬서버에서 개발시에는 도메인 인증이 없어도 동작한다.

부트스트랩용 웹에디터로 summernote를 사용해 왔었는데, 부트스트랩용이다 보니까 부트스트랩의 버전 업로드시마다 매번 손을 봐야 제대로 동작하는 번거로움이 있고, 아직 UX의 완성도도 떨어지는 문제점이 있다.

계속 “Froala 에디터에서 이미지 업로드 처리하기” 읽기

레일스 개발환경에서 사용가능한 경로서비스

레일스 프로젝트 개발환경에서는 브라우저에서 라우팅 테이블과 레일스 정보를 볼 수 있다.

http://localhost:3000/rails/info/routes   # 라우팅 정보
http://localhost:3000/rails/info/properties  # 개발환경 정보

한가지 더,

http://localhost:3000/rails/mailers

이것은 프로젝트 내의 메일러의 미리보기 기능이라고 하는데, 제대로 동작하지 않는 것 같다.

macOS Sierra 업데이트

2016년 9월 21일부터 macOS Sierra 운영체제로의 무료 업그레이드가 시작되었다.
전체적인 업그레이드 진행상황은 문제가 없었다. 레일스 개발 환경에도 문제가 없었다.

업그레이드가 필요한 앱

1. Bartender(메뉴바 아이콘 정열앱) Sierra용 버전 2를 다운로드 받아야 한다.

2. Snagit(스크린캡쳐 앱) 4.0.5 버전으로 업그레이드 해야한다.

3. ExpandDrive 5.4.0.0 버전으로 업그레이드 해야한다.