준만몬의 블로그 / 백엔드
백엔드
서버와 데이터베이스 개발 경험을 기록합니다.
firebase functions backend project
Firebase function 으로 Nest 백엔드 프로젝트 배포하기
저희 회사에서 사이트를 하나 더 만들 것을 고려하면서, 여러 프론트엔드 프로젝트에서 API 요청으로 사용 가능한 기능을 제공하는 백엔드 프로젝트를 만들기로 하였습니다.저는 저희 팀에서 Nest, Typescript 를 사용하고, Firebase 를 통해 배포하기로 결정했습니다.Firebase 선정 이유 : Google 의 여러 기능들을 사용중인데, Google 의 firebase 를 사용하면 연결이 훨씬 수월하고, $300 의 크레딧을 3달동안 지원하기 때문에 메리트가 확실하다고 판단했습니다. Firebas functions 로 백엔드 프로젝트를 API 사용하기 위해 배포하면 유료 요금제인 Blaze 플랜을 사용해야만 합니다! 물론! Firebase functions 배포도 3개월 무료 사용을 할 수는..
activerecord콜백
Rails - 데이터 저장시에 함수 실행하기
가끔 데이터를 저장함과 동시에 어떠한 확인 절차 혹은 그에 따른 어떠한 행위가 실행이 되어야 하는 경우가 있습니다. Rails 에서는 해당 기능들을 어떻게 구현하는지 간단하게 설명하겠습니다 해당 기능은 "데이터"가 저장이 되었을때 이므로, 일반적은 controller마다 전부 작성해서 관리하는 방식이 아닌, model 에서 해당 테이블에 대한 기능을 짜두는 방식으로 개발해야 합니다 Rails 공식 active record callback 가이드 문서https://guides.rubyonrails.org/active_record_callbacks.html Active Record Callbacks — Ruby on Rails GuidesActive Record CallbacksThis guide teac..
rails each
rails, ruby 역순 정렬, 변수 역순 each문
rails 에서 정렬을 하여 가져오는 방법은 아주 간단합니다 week 라는 필드의 값이 작은 것 부터 정렬을 해서 가져오는 방법입니다 @my_data = MyData.where(:param_id => @search_param.param_id).order('week') 그렇다면 week 라는 필드의 값이 큰 ㄱ덧 부터 정렬을 해서 가져오는 방법은? @my_data = MyData.where(:param_id => @search_param.param_id).order('week desc') 이렇듯 변수에 저장하는 방법을 알아보았습니다. 하지만 우리가 생각하는 것은, 일단 작은 것 부터 정렬을 해서 가져와서 사용하다가 한 곳에서만 역순으로 가져오고 싶다면, 변수를 두 번을 사용해야 하는 것일까요? 아닙니다. ..
mysql data import
mysql Workbench db export, import 오류 해결
이 포스트는 terminal 작업 없이 진행됩니다 workbench 로 옮길, 받을 db에 연결되어있다는 가정 하에 진행합니다. 저는 Mac 을 사용중입니다. 명명이나 경로가 살짝은 다를 수 있어도 그러한 부분은 검색으로 충분히 찾을 수 있습니다 쉬운 진행을 위해 A라는 회사에서 진행하던 db 를 B라는 회사로 로 옮긴다고 하겠습니다 1. Export 1) Workbench 를 실행시켜 A사와의 연결에 들어가서 상단 바의 Server - Data Export 선택 2) Advanced Options... 여기가 중요! 대부분 여기서 오류가 납니다 3) set-gtid-purged - Add 'SET @@GLOBAL.GTID_PURGED' to the output. 부분이 AUTO 로 되어있다면 OFF ..
ActiveRecord를 활용하여 Ruby on Rails 애플리케이션에서 두 번의 조인 수행하기
관련 데이터 필터링: Ruby on Rails에서 두 번의 조인을 활용한 방법
A belongs_to B B belongs_to C 의 관계를 만족하는 3개의 테이블이 있을 때에 A 테이블의 정보들을 가져올 때에 C 의 필드를 기준으로 필터링 하여 가져오고 싶은 경우가 있다. 여기서 C 의 c라는 필드의 값이 1 인 것만 가져오고싶은 경우의 1. 오류가 발생하는 쿼리문 2. 올바른 쿼리문 두 경우의 코드를 드리겠습니다 1. 오류가 발생하는 쿼리문 A.joins(:B).joins(:C).where('C.c = 1') → 첫 번째 코드 대로 한다면, A 와 C 의 다이렉트 관계를 찾아 조인을 시도해요. 하지만 B 와 C 의 관계가 명시적으로 정의가 되어있지 않았으니 Rails 는 이 관계를 인식하지 못할 수 있어요 2. 올바른 쿼리문 A.joins(:B).joins(B: :C).whe..
bundle install 에러
Rails 오류 "You have already activated... " 해결하기
`check_for_activated_spec!': You have already activated activesupport 7.0.7.2, but your Gemfile requires activesupport 6.1.7.6. Prepending `bundle exec` to your command may solve this. (Gem::LoadError) 이런 오류가 발생하기 시작했다... Gemfile.lock 을 지우고 다시 bundle install 해도 안되는 경우! 가끔 bin/rails 오류나 각종 터미널 상의 오류, 특정 gem 설치 이후 오류들이 발생할때마다 하나를 고치면 파생된 다른 오류들이 연달아 생기곤 합니다.. 물론 rails 만의 문제는 아닙니다ㅋㅋ 저는 gem 을 설치하고 R..
