Back

    [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..

    [Node.js] Apple Login Passport 애플 로그인

    애플스토어에 앱을 만들어서 제출해야 했다. 회사의 경쟁 업체도 앱을 준비중이라 팀 모두가 속도있게 작업했다. 앱 생태계는 모두 처음이라, 팀원들은 디자인과 마케팅 준비를 하고 나는 법인 DUNS 번호 발급부터 웹뷰 제작과 배포까지 하루정도 공부하고(ㅠ), 다음날 제출했다. 정신없는 일주일이 후루룩 지나갔다. 애플 심사는 하루만에 이뤄졌는데, 리젝을 당했다..ㅎㅎ.. 요약 - 카카오, 네이버 소셜로그인은 있는데 왜 애플로그인은 없냐 근데, 이런걸 대비해서 일반로그인까지 만들어서 넣었는데.. 정말..ㅠ 까라면 까야지.. 소셜로그인은 라이브러리가 많았는데, 기존 네이버와 카카오 로그인을 만들 때 사용한 passport를 사용하기로 했다. 익숙해서.. Apple Developer Apple 플랫폼에서 개발할 절..

    [NestJs] Prisma2 셋팅

    다음 프로젝트의 DB와 연결하는 것은 쿼리를 직접 날리는 것 말고, orm을 사용하기로 했다. 후보는 Type+ORM과 Prisma이 있었고, 레퍼런스가 많고, 어느정도 대중화가 된 TypeORM을 이용하려고 했으나, GraphQL에 더 적합한 Prisma로 전환했다. Prisma는 기존 ORM과 근본적으로 다르며 새로운 종류의 ORM이라고 공식 문서에서 소개하고 있다. Is Prisma an ORM? | What is an ORM? Learn about how Prisma implements the Data Mapper ORM pattern and how it achieves the same goal as traditional ORMs without requiring you to map classes ..

    [EC2 부하테스트] Apache ab test

    EC2에 스트레스 테스트를 했다. 사실 부하 테스트는 조금 더 정확하고 구체적으로 해야겠지만, 일단은 DB커넥션과 반응속도만 급하게 알고 싶어서, 일단 가볍게 할 수 있는 apache ab test를 활용하기로 했다. 공식문서 ab - Apache HTTP server benchmarking tool - Apache HTTP Server Version 2.4 ab - Apache HTTP server benchmarking tool ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server. It is designed to give you an impression of how your current Apache i..

    [Aws RDS Aurora Serverless MySQL] 외부 접속

    새로 시작할 서비스의 DB용량을 정하는게 어려웠다. 예측불가능했기 때문이다. 새 서비스의 트래픽을 정확히 예측할 수 있으면 좋겠으나, 누가와도 정확히 예측하긴 어려울 것이다. 조금 비싸더라도 RDS를 사용하기로 결정은 했으나, 어느정도 감당될 지 감이 안왔다.. 경험부족이 크지 않을까. 여러 이유들로 DB단에서 Auto Scalling이되는 Serverless를 사용하기로 했다. 다만 레퍼런스가 부족하고, 외부 접속이 허용 안되는 문제점이 있었다. (특히 워크벤치 힝..) 안타깝게도 나는 워크벤치없인 살 수 없는 몸이 되어버린 찐따였다. 떄문에 외부접속을 허용시켜보기로 했다. 여러 방법이 있지만 그중 haproxy를 결정했다. haproxy는 기본적으로 Reverse Proxy형태로 동작하며, 서버 앞단..

    AWS WAF Custom Rule 간단 예제

    cors를 맞추다가 스트레스 받아서 기존의 waf에 cors과 관련된 것들을 처리할 수 있을 거라 생각했는데, 역시나 있었다. 우아한 형제들 기술 블로그를 참조해서 대강 설명을 읽고, 가볍게 작동만 시켰다. 내가 원하는 것은 특정 도메인이 아니면 요청을 없애고 싶었다. ALB에 WAF옵션을 붙여놨기 때문에 WAF 옵션만 설정해줬다. AWS WAF -> Web ACLs -> acl 선택 후에 커스텀 룰을 만든다. 룰 설정 header에 origin에는 도메인 주소가 실려있어서 활용했다. header에 origin에 프론트 도메인이 없으면 block시키는 조건이다. 이래도 되나 싶긴 하지만, 일단 원하는 것은 만들어 냈다. 추후 여러 조건들을 활용해서 커스텀 룰을 더 많이 만들고, 디테일한 설정도 가능할 것..

    [MySQL] Full Text Search Aws Aurora

    mysql에서 데이터를 검색해야하는 작업을 해야했다. like같은걸 쓸 수 있지만 양심상 패스했다. mysql full text search를 활용하여 검색을 하기로 결정했다. 후엔 시간이 나면 일라스턱 서치같은 검색엔진을 따로 적용해볼 예정이다. ALTER TABLE 테이블명 ADD FULLTEXT INDEX 키값(적용할 컬럼1, 적용할 컬럼2) WITH PARSER NGRAM; 이렇게 Ngram을 포함해서 검색하고자 하는 컬럼에 FULLTEXT INDEX를 걸어준다. 처음에 Ngram은 자동으로 포함된다고 들어서, 안했는데 aws aurora는 그딴게 없었다. Ngram은 단어단위로 쪼개서 인덱싱을 한다. 기본 사이즈는 ngram_token_size 2 라서 2글자를 쪼개서 저장한다. 여기서 생기는 ..

    NestJS TypeORM 간단 예제

    다음 프로젝트에서 NestJS를 실무 수준에서 사용할 수 있어야해서, 그만 공부하고 실제로 만들어봤다. 공식문서도 잘 되어 있고, 실제로 NestJs로 작업하고 있는 개발자들에게도 도움을 받아 적응은 조금씩 하고 있다. 역시 직접 만들어 보는게 이해하는데 빠르다. 공식 문서에 나온 요청의 흐름이다. 이 모든 순서를 다 적용해서 예제 라우터를 짜진 않았지만 대강 흐름은 이해했다. 더 자세히 이해하려고, 동료 개발자(천재)와 함께 TypeORM을 이용해서 가벼운 CRUD를 만들어봤다. schedule.controller.ts import { Body, Controller, Post, UseGuards, UseInterceptors } from '@nestjs/common'; import { ApiTags }..