해당 글은 https://blog.naver.com/kbs4674/221212397227 로 부터 게시글이 이전되었습니다. 우리는 갑작스러운 상황에 대비(어떤 자료가 필요한데 지금은 소멸되었으나 n일전 DB에는 남겨져 있을 때, 갑작스러운 사이트 해킹, 롤백)를 위해 자료를 백업을 해야 할 필요성이 있습니다. 이번 시간에는 DB를 자동적으로 백업을 설명하고자 합니다. 다만, 제가 사용하는 DB가 PostgreSQL 이다 보니 기본적으로 사용되는 SQLite3가 아닌 PostgreSQL 기준으로 설명하겠습니다. 참고 1) 이 기능은 PostgreSQL DB 기준으로 설명합니다. 2) 예약된 시간에 따라 자동으로 일 처리를 하는 whenever Gem이 선택적으로 필요합니다. ※ 자동 일처리 : whenev..
해당 글은 https://blog.naver.com/kbs4674/221658347447 로 부터 게시글이 이전되었습니다. 일반적으로 레일즈는 서버를 작동을 시키면 터미널에서 아무것도 입력을 못하는 상태가 됩니다. 하지만 Background Job은 서버가 돌아가는 작업이 이루어지는 동시에, 무언가의 작업이 이루어지는것을 뜻합니다. (작업이라 하면은 이메일 전송 등이 되겠죠!) 이번 시간은 Background Job 및 이를 쉽게 사용하도록 도와주는 sidekiq Gem에 대해 알아보도록 하겠습니다. 개념 Background Job을 순차적으로 Background Job에 있어서도, 작업이 들어오자 마자 바로 진행할건지 여러개의 작업이 들어오긴 했으나, 들어온 순서대로 순차적으로 진행할건지 위와같은 방식..
해당 글은 https://blog.naver.com/kbs4674/221197430824 로 부터 게시글이 이전되었습니다. 제 홈페이지 같은 경우는 Paranoia의 기능 중, 만약에 게시글을 삭제되어도 겉으론 삭제된 척, 실제론 삭제가 안되게(DB상에 남아있게) 보존을 해놓는 기능이 있습니다. 하지만 이렇게 이미 한번 삭제된 게시글이 계속 영구적으로 남겨놓으면 좋겠지만.. 계속 쌓이는 더미데이터에 대해 굳이 가지고 있을 필요가 없어, n개월 후에 삭제된 게시글이 자동으로 완전히 삭제되는 방식을 적용하기위해 lib/task과 whenever Gem에 대해 소개하고자 합니다. 참고로 whenever Gem은 레일즈 Active Job의 기술이 쓰이는 Gem 중 하나로서, 홈페이지가 돌아가는 와중에 뒤에서 ..
해당 글은 https://blog.naver.com/kbs4674/221182443309 로 부터 게시글이 이전되었습니다. 댓글에 또 다른 답 댓글, 즉 중첩댓글에 대한 글을 다룹니다. 중첩댓글 : act as commentable with threading 참고 Post Scaffold에서 댓글을 구축하는 예시로 설명함. Devise Gem을 기본적으로 사용한다는 가정 하에 사용하셔야 합니다. [참고] 1. Gemfile 에 다음 내용을 입력해줍니다. gem 'acts_as_commentable_with_threading' 새로운 Gem을 설치해 주세요. bundle install 2. 다음 명령어를 입력해서 Model과 DB(Migration 파일)를 생성해 줍니다. rails generate act..
해당 글은 https://blog.naver.com/kbs4674/221174702377 로 부터 게시글이 이전되었습니다. 띵동! 누군가가 제 게시물에 댓글을 달면 그 알림이 오면 참 좋겠죠! 이번에는 누군가 댓글을 달면 알람이 울리는 알람잼에 대해 같이 해보겠습니다! 참고 1. Deivse Gem [클릭], act-as-commentable-with-threading(중첩댓글) [클릭] Gem을 활용한 기준으로 설명드립니다. 알람잼 : unread 참고 시작 전 제 댓글 방식은 다음 댓글방식을 이용했습니다. [참고 : 클릭] 위 댓글 방식을 기준으로 설명합니다. 1. Gemfile 을 열어서 다음 내용을 추가합니다. gem 'unread' 이어서 Gem을 설치합니다. bundle install 2. 터..
해당 글은 https://blog.naver.com/kbs4674/221173415422 로 부터 게시글이 이전되었습니다. 투표를 진행하려면 찬성, 반대 이 2가지에 대한 선택권이 있어야 합니다. 이번 글에서는 이런 투표 시스템을 간단히 구축할 수 있는 Gem을 만들어 보겠습니다. 참고 본 실습에 있어선 Post Scaffold를 기반으로 설명이 진행됩니다. 투표 Gem, Gem : acts_as_votable 1. Gemfile에서 다음 Gem을 입력합니다. gem 'acts_as_votable' Gem을 설치합니다. bundle install 2. 터미널에 다음 명령어 입력합니다. rails generate acts_as_votable:migration 그럼 새로운 테이블이 생성된게 확인될겁니다. 3..
해당 글은 https://blog.naver.com/kbs4674/221187526054 로 부터 게시글이 이전되었습니다. 홈페이지를 원만하게 운영하기 위해서는 관리자 메뉴얼 창이 따로 또 필요하곤 합니다. 하지만 혼자 스스로 관리자 페이지를 만들기란 쉽지 않습니다. 데이터가 무수히 많을 때를 대비해 SQL 최적화 작업을 해야하고, 그 외 레일즈의 모든 이론이 관리자 페이지 기술에 담겨져야할 수도 있기 때문입니다. 해당 Gem이 정말 좋은게 자기가 알아서 모든 model을 탐색해 내고, 부트스트랩/그리드가 적용되어 있어서 UI도 전체적으로 괜찮습니다. 참고 Devise Gem이 사전에 설치되어 있어야 합니다. [Devise Gem 설치법 클릭] 어드민 관리자 페이지 : rails_admin 1. Gemf..
해당 글은 https://blog.naver.com/kbs4674/221069915874 로 부터 게시글이 이전되었습니다. 게시판이 운영되는 거의 모든 사이트는 최소 '관리자'와 '유저' 이 2가지로 계급이 나뉘어 있을겁니다. 유저는 글을 쓰거나, 자신의 글에 대해서만 수정/삭제가 가능한 반면, 관리자는 게시글을 누구의 글이든 삭제 혹은 수정을 할 수 있겠죠. 이렇게 홈페이지 운영에 있어서 효율적인 관리를 위해선 '권한'이라는 계급이 필요합니다. 이번 시간에는 Devise와 rolify, cancancan Gem을 이용해서 '권한설정' 에 대해 알아보겠습니다. 시작 전 유의사항 1. Gem : devise이 기본적으로 깔려있어야 합니다. 참고 devise Gem 설치법 [클릭] 2. 필자는 CRUD 사용..