본문 바로가기
반응형

Back-End22

Firebase function 으로 Nest 백엔드 프로젝트 배포하기 저희 회사에서 사이트를 하나 더 만들 것을 고려하면서, 여러 프론트엔드 프로젝트에서 API 요청으로 사용 가능한 기능을 제공하는 백엔드 프로젝트를 만들기로 하였습니다.저는 저희 팀에서 Nest, Typescript 를 사용하고, Firebase 를 통해 배포하기로 결정했습니다.Firebase 선정 이유 : Google 의 여러 기능들을 사용중인데, Google 의 firebase 를 사용하면 연결이 훨씬 수월하고, $300 의 크레딧을 3달동안 지원하기 때문에 메리트가 확실하다고 판단했습니다.  Firebas functions 로 백엔드 프로젝트를 API 사용하기 위해 배포하면 유료 요금제인 Blaze 플랜을 사용해야만 합니다! 물론! Firebase functions 배포도 3개월 무료 사용을 할 수는.. 2024. 10. 18.
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.. 2024. 10. 17.
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') 이렇듯 변수에 저장하는 방법을 알아보았습니다. 하지만 우리가 생각하는 것은, 일단 작은 것 부터 정렬을 해서 가져와서 사용하다가 한 곳에서만 역순으로 가져오고 싶다면, 변수를 두 번을 사용해야 하는 것일까요? 아닙니다. .. 2024. 1. 2.
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 .. 2023. 10. 25.
관련 데이터 필터링: 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.. 2023. 9. 15.
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.. 2023. 9. 6.
mysql id를 1로 변경하기 오픈을 한참을 준비하며 테스트 데이터를 만들어 보았으나, 오픈 직전 이전 테스트 데이터들을 지우고 id 를 1로 다시 설정하고 싶을 때가 있습니다. mysql 에서 id 는 AI(Auto Increase)로 자동적으로 숫자가 1씩 늘도록 설정이 되어있습니다. ALTER TABLE 스키마-이름.바꿀테이블-이름 AUTO_INCREMENT=1; 테이블 명을 바로 넣으시면 안되고, Schema이름.Table이름 으로 접근을 하셔야 합니다. 그러고 AUTO_INCREMENT 를 1로 설정해주시면 됩니다. 2023. 1. 24.
[mysql-함수]날짜 관련 함수 모음 dayofweek(date) 날짜를 한 주의 몇 번째 요일인지를 나타내는 숫자로 리턴한다. (1 = 일요일, 2 = 월요일, ... 7 = 토요일) mysql> select dayofweek('1998-02-03'); -> 3 weekday(date) 날짜를 한 주의 몇 번째 요일인지를 나타내는 숫자로 리턴한다. (0 = 월요일, 1=화요일 ... 6 = 일요일) mysql> select weekday('1997-10-04 22:23:00'); -> 5 mysql> select weekday('1997-11-05'); -> 2 dayofmonth(date) 그 달의 몇 번째 날인지를 알려준다. 리턴 값은 1에서 31 사이이다. mysql> select dayofmonth('1998-02-03'); -> .. 2023. 1. 15.
firestore 데이터 내보내기, 엑셀로 내보내기 올해 초 이직을 하며 떠나게 된 회사에서 db를 추출하고 싶다는 연락을 받았습니다. 파이어베이스 firestore 에서 특정 collection, 예를 들어 User 나 payment history 같은 디비를 가져올 때에 가장 흔하게 하는 방식은 구글링을 통해 js, 혹은 파이썬을 사용하여 가져오는 방식이 있죠. 하지만! 이미 떠나온 회사를 위해 오래전 사용한 기술과 구조를 다시 이해하거나 새로 기능을 짜는데 걸릴 시간이 너무 아까울 것 같아 쉬운 방법을 찾아보았습니다. 알아보던 도중 클릭 한번으로 firestore export 기능을 수행하는 프로그램을 발견했습니다. 충분히 이런 저런 삽질해보고 나온 가장 쉽고 빠른, 정확한 결과를 가져내는 방법이니 이대로 따라하시는 것이 가장 편할 것입니다 (202.. 2022. 12. 31.
rails i18n 하는 방법, rails 언어처리 (5분 내외) rails 언어처리 방법에 대해서 한번 포스팅을 해보려 합니다. 학생때야 하나의 언어로 처리를 하였겠지만, 본격적으로 실무를 하게 될 때면, 여러 가지의 언어를 동시에 사용해야 하는 경우가 생깁니다. 과연 rails 에서는 이 부분을 어떻게 처리하는지 코드와 함께 알아보도록 하겠습니다. 1. i18n(다중언어처리)를 위한 gem 을 설치합니다 루트 폴더 부분의 Gemlfile을 열어 한 줄을 추가해줍니다 # locale gem 'rails-i18n' gem을 설치했으므로 터미널에서 bundle i 를 실행해줍니다 2. app/controllers/application_controller.rb 파일에 언어 세팅을 합니다 def set_locale I18n.locale = params[:locale] || .. 2022. 12. 8.
Rails CRUD - 데이터 저장이 잘 되었는지 확인하는 방법 def saveCheck # NewData 라는 테이블이 있다고 가정합니다 new_data = NewData.new new_data.title = "새로 만드는 데이터" new_data.status = 0 new_data.save # 데이터가 안정적으로 잘 들어갔는지 확인하는 if new_data.save puts "데이터가 안정적으로 만들어졌습니다" # 데이터가 잘 들어가지 않은 경우 어떤것이 오류인지 오류코드를 왁인 else # 오류가 생긴다면 오류 내용을 전부 찍어 보기 puts new_data.errors.full_messages end end + puts로 찍어본 로그는 rails s 를 띄운 서버 터미널에서 보실 수 있습니다 2022. 10. 3.
(해결 방법) rails devise sign_up 오류 devise sign up error Rails 에는 정말 많은 gem 들이 있습니다. 이 중 웹사이트를 개발할 때에 가장 많이, 그리고 가장 기본적으로 사용이되는 회원 관리 부분을 볼 것입니다. Admin을 이야기 하는 것이 아니라, 회원 가입, 로그인, 로그아웃 등을 구현할 것입니다. 여기서 많은 오류들을 만나게 될텐데, 천천히 잘 따라만 오시면 됩니다 로그인, 회원가입 페이지 만들기 1. blog 라는 이름의 프로젝트를 생성할 것입니다 $ rails new blog 2. Devise 라는 회원가입, 로그인 기능 gem 을 설치합니다 $ bundle add devise 3. 번들을 추가 했으니 설치를 합니다 $ rails g devise:install 4. User 라는 이름으로 devise 만들되, 저는 추가로 role(권한) 필드를 .. 2022. 5. 24.
반응형