목록개발 (301)
미래의 나에게 // PM2 설치 npm install pm2@latest -g # or yarn global add pm2 // pm2 실행 pm2 start ecosystem.config.js // 실행 중인 Pm2 리스트 조회 pm2 ls // 특정 프로세스 중단 pm2 stop [id] // 특정 프로세스 삭제 pm2 delete [id] // 실행 중인 pm2 종료 pm2 kill // ecosystem.config.js 설치 pm2 init // babel 모듈 yarn add -D @babel/register 먼저 PM2 는 Node.js 애플리케이션의 프로세스 관리자이며, 백그라운드에서 Node.js 애플리케이션을 실행하고 모니터링 하는 도구이다. GCP에서 사용했던 인스턴스와 같은 역할을 ..
미래의 나에게 // 설치 yarn add prisma // 프리즈마 사용 시 필요한 파일 생성, prisma/schema yarn init // schema.prisma 기반의 Prisma client 등의 자원 생성 yarn prisma generate // schema.prisma 기반으로 DB 업데이트 yarn prisma migrate dev // 실제 DB 반영 없이 migration 파일 변경 yarn prisma migrate dev --create -only 먼저 ORM이란, SQL 쿼리문을 작성하지 않고도 데이터베이스와 상호작용할 수 있게 도와주는 도구다. 2023.01.29 - [코딩/node.js] - ORM / Sequelize & typeORM 이전에는 항상 TypeORM을 사용하..
이번 포스팅에서는 node.js 미들웨어와 라우터를 핸들링하는 방법에 대해 다룬다. 미들웨어 먼저 미들웨어란, 클라이언트와 서버 중간에서 다리 역할을 하는 컴포넌트를 의미한다. 정확히는 소프트웨어에서 다른 소프트웨어와 함께 동작하도록 설계된 컴포넌트라고 할 수 있으며, 다음과 같은 역할을 한다. 서버와 클라이언트 사이의 통신 데이터베이스와의 상호작용 웹 어플리케이션 라우팅 보안 로깅 node.js에서의 미들웨어는 app.use 메서드를 통해 등록 & 동작한다. app.use(cors({ origin: "*" })); app.use(helmet()); app.use(express.json()); app.use(express.urlencoded({ extended: true, limit: "700mb" })..
오늘은 node.js 에서 graphQL 을 사용하는 방법에 대해 공부한 내용에 대해 다룬다. 먼저 구조에 대해 얘기하면, node.js 도 nest.js 와 비슷하게 모듈화해서 사용하는 방식이 효율적이다. index.js 를 뿌리로 하여 연결된 모습이라 이해하면 편하다. // index.js const module1 = require("resolver/module1") const module2 = require("resolver/module2") const typeDefs = [ queries, mutations, module1.typeDefs, module2.typeDefs, // enums, ] const resolvers = [ module1.resolvers, module2.resolvers ]..
1. 팀장으로서의 프로젝트 후기 2. 백엔드 개발자로서의 프로젝트 후기 3. 프로젝트 사용한 기술 스택 1. 팀장으로서의 프로젝트 후기 저는 캠프 내 프로젝트에서 팀장으로 팀을 이끌었습니다. 프로젝트 초반에는 대부분의 팀원이 초심자인 것에 비해, 상대적으로 큰 규모의 프로젝트를 기획하였습니다. 소속된 부트캠프에서 모든 기수를 통틀어 역사의 남을 만한 결과물을 만들고 싶다라는 욕심과, 다양한 리더 경험이 있었던 저로서는 무엇이든 해낼 수 있을 것이라는 자신감 때문이었습니다. 프로젝트 초중반까지는 모든 것이 순조로웠습니다. 모든 팀원들과 끊임 없이 소통과 피드백을 진행했고, 가끔은 기획의도와 크게 변하지 않는 선에서 조금씩 프로젝트 방향을 수정하기도 하며, 계획한대로 프로젝트를 만들어 나갔습니다. 하지만, ..
This operation has been blocked as a potential Cross-Site Request Forgery (CSRF) 해당 오류는 포스트맨에서 프로필 사진 업로드 기능을 만들던 중 나타난 오류다. 이 오류에 대해서는 이틀 쯤 고민했는데 처음에는 내 코드 자체에 문제가 있는 줄 알았다. (심지어 콘솔에서 error를 찍어두어도 error 메세지가 등장하지 않았다.) 이를 해결하기 위해 이전 수업 때 작성해두었던 코드를 옮겨 써보고, 타인의 컴퓨터에도 내 소스 코드를 보내 업로드 시켜봐도 같은 문제가 등장할 뿐이었다. 그러던 중 구글에서도 정보를 찾다가 아래와 같은 사이트를 발견했다. https://www.apollographql.com/docs/router/configuratio..
오늘은 비밀번호 분실 시 메일 보내는 API를 추가했다. yarn add @nest-modules/mailer nest-mailer 이전에 node.js에서 node-mailer를 사용해 본 적이 있어 사용이 그리 어렵지는 않았다. https://github.com/nest-modules/mailer/blob/master/docs/mailer.md 먼저, 모듈에서는 docs 에서 제공하는대로 작성했는데, 내가 필요로 하지 않는 기본값이나 템플릿은 제거했다. // Mail.Module @Module({ imports: [ // 중략 // MailerModule.forRootAsync({ useFactory: () => ({ transport: { service: process.env.MAIL_SERVICE..
포스팅 분량이 그리 많지 않다. async findLocation({ interest, findAroundUsersInput, }: IMapServiceFindLocation): Promise { // 중략 // const aroundUsers = await client.georadius( "geoSet", centerLng, centerLat, radius, "km", "withCoord", ); // 여기서부터 const userIds = aroundUsers.map((el) => (el = el[0])); // 유저 아이딧값만 매핑 const locationByUsers = aroundUsers.map((el) => (el = el[1])); // 유저 위칫값만 매핑 // 여기서 slice를 쓰는 ..