해당 글은 https://blog.naver.com/kbs4674/221556218480 로 부터 게시글이 이전되었습니다. Rails 5.2 버전에서는 이제 공식적으로 AWS S3, 구글, MS, Mirror의 클라우드 서비스 연동 제공을 합니다. 과거에 이미지/파일 업로드 후 클라우드 서버와 연동을 위해선 fog & CarrierWave Gem을 통해서 했어야 하지만 이제는 Active Storage 기능을 통해서도 가능해졌습니다. 어찌보면 Active Storage와 과거의 결과는 거의 비슷하긴 하나, 그래도 레일즈 쪽에서 클라우드 서비스를 공식적으로 연동 시킨것에 큰 의미가 있다고 생각합니다. Chapter 1 Active Storage 기본 셋팅 및 Local에 이미지 업로드 1. 프로젝트 생성 ..
해당 글은 https://blog.naver.com/kbs4674/221061456219 로 부터 게시글이 이전되었습니다. Turbolink 터보링크는 레일즈에서 기본적으로 제공되는 기술 중 하나로서, 사용자가 link 클릭으로 인해 홈페이지 view가 전환될 때 모든 레이아웃이 다 바뀌는게 아니라, 이동 될 다음 페이지에 있어 요청 결과를 파악하고 똑같은 부분은 놔두고, 변경이 있는 부분만 전환을 시키는 최소한적 페이지 로딩을 도와줍니다. 덕분에 전체 페이지 content를 로딩을 하지 않다보니 속도면으로는 확실히 빠릅니다. jQuery javascript의 모듈로서, 기존의 javascript 쌩 코드만으로는 개발시간이 너무 오래 걸리는 부분에 대해 간단한 메소드 하나로 손쉽게 동작이 되도록 지원해줍..
해당 글은 https://blog.naver.com/kbs4674/221176581819 로 부터 게시글이 이전되었습니다. 과거 MVC 패턴을 배워보고자 노가다 CRUD 게시판 제작법[클릭] 글을 쓰면서 한번 언급을 하긴 했습니다만, 과거에 저술한 방법은 보안에 취약한 단점이 존재합니다. 그 대안으로 떠오른 방법이, 간단한 '1줄의 명령어' 면은 바로 게시판이 만들어지는 'Scaffold' 라는 명령어 입니다. 이번 시간에는 'Scaffold'를 활용하여 게시판을 제작해보겠습니다. 1초만에 만들어 보는 CRUD # rails g scaffold [Model이름] [Attributes...] rails g scaffold post title content:string 레일즈에서는 재밌게도 위 명령어 한 줄..
해당 글은 https://blog.naver.com/kbs4674/221682881216 로 부터 게시글이 이전되었습니다. 해당 글은 당근마켓에서 주최한 루비 4번 째 모임(19. 10. 10)에서 소개된 이슈 및 해결법입니다. bundle update --conservative 때로는 Ruby on rails 기반 웹사이트를 운영하면서, 피하고 싶지만 피할 수 없는 순간이 있습니다. 바로 Update입니다. 그런데 선뜻 bundle update 명령어를 치기란 쉽지 않습니다. 왜냐하면 Gem의 Update로 인해 버전에 따라 문법이 달라지거나, Gem 버전의 업데이트 규칙에 따라 Gem의 설정을 재정의를 하고자 추가적으로 config 폴더 혹은 config/initializers 에서 코드를 입력을 해..
루비온 레일즈의 인기비결 중 하나인 Gem입니다! Gem은 사람들이 만든 오픈소스 기능 모듈로서, 내가 기능을 만들 필요 없이 남들이 만든 기능을 그냥 다운로드를 받아서 쓸 수 있다는 Rails의 가장 큰 강점입니다. Gem 라이브러리, 외부 모듈 플레이 스토어의 어플과 같이 남이 만든 기능을 가져다가 손쉽게 사용할 수 있습니다. Gem을 통해 가져온 기능을 우리 입맛대로 커스터마이징도 할 수 있습니다. (백엔드적 기능, 디자인 둘 다 커스터마이징이 가능합니다.) 앞으로 해당 Gem을 통해서 여러분들은 다양한 것을 크게 시간을 쓰지 않고, 개발을 진행할 수 있습니다 : 회원가입, 관리자 페이지, 외부 SNS 로그인, 채팅, 알림(내 글에 누군가 댓글작성 시 나에게 알림), 메일, 크롤링, 그래프 차트, ..
레일즈의 서버 환경은 기본적으로 3가지가 존재합니다 : Development, Test, Product 사실 기본적으로 3가지가 주어졌을 뿐이지, 사용자가 원하면 추가적으로 이름을 가진 환경을 만들어낼 수 있습니다. 사실 저희는 Environment라는 개념에 대해선 이미 간접적으로 경험을 하고 있습니다. 서버를 킬 때 보면 Environment 정보가 보여지는데, 대부분 development로 맞춰져 있을겁니다. 이제 각 환경에 대해 설명해보겠습니다. 환경 1) Development 기본적으로 연습할 때 많이 쓰는 환경 서버 내 캐싱이 꺼져있다보니, 퍼포먼스가 다소 떨어지는 편 코드 수정이 이루어지면 바로 본 서버에 적용이 됩니다. 오류를 접할 시, 오류페이지가 활성화 됩니다. 2) test 자동화 테..
해당 글은은 https://blog.naver.com/kbs4674/221336658095 로 부터 게시글이 이전되었습니다. 레일즈에서 css/js 파일 및 이미지 파일을 저장할 수 있는 방법은 크게 두 가지가 존재합니다. 바로 public, assets 폴더 입니다. 일단 이 둘의 가장 큰 차이점은 캐싱의 영향 유무 입니다. 캐싱 웹 사이트에는 캐시라고 해서 어떤 사이트를 접속하면 그 사이트의 이미지 파일, CSS/자바스크립트(JS) 등을 기억해내려는 속성이 있습니다. 한 번 기억을 해내면 다음에 접속할 때에도 좀 더 빠르게 사이트 접속을 할 수 있기 때문입니다. Public Public 폴더는 레일즈 프로젝트 최상위에 존재합니다. 폴더속에 보면 다양한 파일들이 존재하는게 확인이 됩니다. 파일 설명 4..
읽을거리 캐치딜 백엔드 개발이야기 : Restful API 설계의 다양한 고민 https://kbs4674.tistory.com/118 Restful API는 효율적인 HTTP 프로토콜 통신을 위해 탄생된 아키텍쳐입니다. Restful API 방식의 통신은 다양한 웹 개발 환경에서 지원되는 통신방식입니다. 루비온 레일즈 또한 Restful API 아키텍쳐를 지원합니다. Restful API 아키텍쳐를 활용해서 Method에 따라 여러 역할을 수행을 할 수 있습니다. 예를들어, 위 사진을 보면 /posts/index와 /posts/show/:id는 동일한 라우터헬퍼를 가르키고 있는 상황입니다. 하지만 라우터헬퍼는 어느걸 선택해야할지 참 난감합니다. * 물론 /posts/show/:id 부분에 as 문법을 ..