nodejs
[Node.Js, ReactNative] FCM Notification firebase-admin 전체 유저에게 푸쉬알람 보내기
파이어베이스 콘솔에서 메시지를 푸시할 수도 있겠지만, 여러 이유들로 서버에서 전체메시지를 직접 보내기로했다.. 애널리틱스등 유저활동을 감지했으면 좋겠을 경우에는 그냥 콘솔에서 보내면 되는데, 보내야 할 전체 알람의 기능적 성격과 실무자들의 편의를 위해 서버에서 직접 보내기로 했다. npm install firebase-admin firebase-admin을 설치해준다. firebase-admin Firebase admin SDK for Node.js. Latest version: 10.0.2, last published: 21 days ago. Start using firebase-admin in your project by running `npm i firebase-admin`. There are 19..
[ReactNative] FCM Android Head Up Push Alarm (react-native-firebase/messaging) 특정 유저에게 푸쉬알람 보내기
안드로이드 푸쉬 알람.. Expo로 개발할 땐 expo-notifications을 사용해서 푸쉬알람을 했다. 그땐 분명 잘 된거야.. 안드로이드 헤드업 푸쉬알람 (알람이 위에 뜨는 것) cli로 바꾸고, 헤드업 알람이 안되기 시작했다. 씨게 고통을 받았다. 씨게.. react-native-firebase/messaging 을 사용하면서 셋팅 다 했는데, 안드로이드에서 헤드업 알람이 안되는 나같은 사람들을 위해 글을 남긴다.. 결론적으로 자바단을 작업해줘야한다. FCM API은 head-up을 아직 지원안한다는 말을 들었고 (2020년 기준) nodejs에서 firebase-admin도 지원안한다는 결과를 얻었다. 진짜 별별짓을 다했는데.. 여기서 해결했다...ㅠ 슨상님... Android Heads up..
[ReactNative] 푸쉬 알람 설정 Expo-notifications FCM
부랴부랴 앱을 만드는 중 강한 생산성이 필요했기에, Expo의 노예가 됐다. 앱 생태계를 잘 모르니까 답답쓰 백엔드만 주구장창 하다가 어플 급하게 만드려니 아휴ㅠ.. 그래도 오늘 앱스토어, 구글스토어 모두 승인이 났다 오예~~ 일단 푸쉬 알람같은 경우는 IOS는 nodejs랑 expo-notifications 활용해서 잘 가는데, 안드로이드는... 안드로이드는..... 안됐다.... 이 문제로 삼일 내내 고통받다가, 알고보니 안드로이드는 expo-notifications말고 FCM도 따로 설정해줘야 한다는 충격적인 비밀을 알았다. 이거 expo-notifications 공식문서에도 제대로 설명 안되어 있었는데, 으으 일단 공식문서를 살펴보자.. Using FCM for Push Notifications ..
[Node.js] Apple Login Passport 애플 로그인
애플스토어에 앱을 만들어서 제출해야 했다. 회사의 경쟁 업체도 앱을 준비중이라 팀 모두가 속도있게 작업했다. 앱 생태계는 모두 처음이라, 팀원들은 디자인과 마케팅 준비를 하고 나는 법인 DUNS 번호 발급부터 웹뷰 제작과 배포까지 하루정도 공부하고(ㅠ), 다음날 제출했다. 정신없는 일주일이 후루룩 지나갔다. 애플 심사는 하루만에 이뤄졌는데, 리젝을 당했다..ㅎㅎ.. 요약 - 카카오, 네이버 소셜로그인은 있는데 왜 애플로그인은 없냐 근데, 이런걸 대비해서 일반로그인까지 만들어서 넣었는데.. 정말..ㅠ 까라면 까야지.. 소셜로그인은 라이브러리가 많았는데, 기존 네이버와 카카오 로그인을 만들 때 사용한 passport를 사용하기로 했다. 익숙해서.. Apple Developer Apple 플랫폼에서 개발할 절..
[Linux Ubuntu Nginx] net::ERR_FAILED 413 CORS ERROR
실서버에서 잘되던 업로드가.. 개발서버에서 안되기 시작했다. 신경이 개복치마냥 예민해져서는 왜 잘되던게 안될까 뭘까 날까 일까 눌라라라라하다가, 알고보니 환경셋팅이 똑같지 않았었다.. 파일업로드의 용량문제로 인한 cors 오류였다. 예전에 해결한 문제였는데, 같은걸 겪고도 기억 못하다니.. 이게 다 정신력의 문제다 아하하하 NodeJs Multer-AWS-S3, React Axios formdata 형식으로 자료를 주고 받았다. sudo vi /etc/nginx/nginx.conf 들어가서 http { client_max_body_size 15M; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 20..
[Node.js] express 폴더 구조 변경
Nestjs로 파일을 짜다보니 기존 express 파일 구조에 대해서 다시 한번 생각하게 되었다. express의 자유로움이 오히려 단점으로 느껴졌다. 지금은 관련 개발을 내 혼자 도맡아 하다보니, 크게 문제 되는 부분은 없지만, 좋은 코드는 누가봐도 한 눈에 알 수 있고, 유지보수하기 좋아야 한다고 생각한다. nestjs의 구조를 100% 차용하는 것은 현실적으로 무리가 있을 것이라 판단했다. 이걸 바꾼다고, 현재 회사 비즈니스에 크게 영향을 주는 것도 아니고, 공수에 비해 사업적으로 얻는 이득은 크게 없을 것이라 생각했기 때문이다. 훗날 더 원활한 유지보수를 위해 nest의 방식을 일부분 차용하기로 했다. 기존 기존의 router는 이런 식으로 쪼갰다. index에는 엔드포인트가 있고, control..
AWS RDS AURORA + NODEJS
AWS의 Aurora DB를 선택하고, Node에 붙여 넣었다. Aurora는 프리티어가 없고, 제일 싼게 한달 3만원정도니 이용할 때 주의해야한다. 현재 회사에서 Cafe24에 있는 mySql을 AWS RDS로 환경이전을 하려고 준비 중이다. 개발관련 인력이 별로 없기에 내가 다 의사결정을 하고 있긴 하지만.. AWS RDS가 유지보수나 속도 측면에서 나을거라 판단했다. 다만 가격이 좀 있기에 오버스펙이지 않을까 하는 고민은 아직도 있다. 이건 프로젝트가 정확히 나와봐야 알 것 같고, RDS를 실제 프로젝트에서 처음 써보는거라 어떤 식으로 운용해야 효율적일진 고민해봐야겠다. 모델구성 const mysql = require('mysql2/promise'); require('dotenv').config()..
Nodejs Excel Mysql
엑셀 파일을 넣었을 때 엑셀 양식에 맞춰 DB에 다 넣어야하는 경우가 생겼다. 엑셀은 처음 다뤄보는거라 난감했는데, 직접 작업을 해보니 엑셀보단 DB에 효율적으로 넣는게 좀 더 까다로웠다. 설치 npm -g install xlsx const excelProducts = xlsx.utils.sheet_to_json(excelFile.Sheets["Sheet1"], { raw: false, header: 1, dateNF: 'yyyy-mm-dd', blankrows: false, }) 엑셀파일의 Sheet1번을 읽어 온다. Node내에서 엑셀을 읽을 때는 엑셀 파일을 읽어야 하는데, 1. 엑셀 파일을 서버 file에 저장한다. 2. file에 저장된 엑셀을 읽고, 필요없어진 엑셀 파일은 바로 삭제 한다. 이..