inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

auth/token/access, auth/token/refresh 엔드포인트에 대한 Guard 적용

해결됨

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

현재 듣고 있는 강의 부분은 Guard chapter에서 basic, bearer guard를 적용하는 부분입니다. @Injectable() export class BearerTokenGuard implements CanActivate { constructor( private readonly authService: AuthService, private readonly usersService: UsersService, ) {} async canActivate(context: ExecutionContext): Promise<boolean> { const req = context.switchToHttp().getRequest(); const rawToken = req.headers['authorization']; if (!rawToken) { throw new UnauthorizedException('토큰이 없음'); } const token = this.authService.extractTokenFromHeader(rawToken, true); const result = await this.authService.verifyToken(token); // payload 반환 /** * req 객체에 넣을 정보 * 1) 사용자 정보 - user 객체 자체 * 2) token - token * 3) tokenType - access | refresh */ const user = await this.usersService.getUserByEmail(result.email); req.user = user; req.token = token; req.tokenType = result.type; return true; } } 제 개인적인 생각으로는 적어도 제목에 적힌 두 엔드포인트에 대해서는 현재의 BearerTokenGuard를 적용하는 것이 굳이 라는 생각이 듭니다. refreshToken을 이용하여 새로운 토큰을 발급받는 역할을 하는 두 엔드포인트에 대해 다른 줄은 다 문제가 크게 없다고 생각하지만 req.user = user;로 굳이 요청에 user 객체를 붙이는 것은 굳이라는 생각이 듭니다. 제 낮은 식견으로는 위 두 엔드포인트에 대한 guard는 또 따로 만들어야 한다고 생각이 드는데 강사님 생각이 궁금합니다.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
김동민 댓글 1 좋아요 1 조회수 215

Nest.js - MySQL연결이 안됩니다

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

라는 오류가 계속해서 뜨는데 DB버로는 정상적으로 접근이 됩니다. 포트도 제대로 열려있구요. 구글링해도 정확한 원인이 나오지 않아 질문해봅니다

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
소히 댓글 2 좋아요 0 조회수 167

로깅은 어떻게 하는게 효율적일까요?

미해결

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

안녕하세요. 몇가지 질문이 있습니다. 저는 NestJS에서 지원하는 @nest/common 패키지의 Logger 를 사용해왔는데요. MTTD 를 최소화 하기 위해서 다른 사람들은 로깅을 어떻게 하는지 찾아보다 winston 과 pino 라이브러리를 발견했습니다. 이런 라이브러리들과 NestJS 에 내장되어 있는 Logger 와는 어떤 차이가 있나요? 커스텀 하는 기능 외에 성능적으로 우위가 있는건가요? 현업에서는 보통 로그를 어떻게 남기나요? 제로초님은 현업에서 로그 모니터링 도구로 Data Dog 과 Sentry 를 사용하신다고 하셨는데 저는 와탭랩스를 사용해보려고 합니다. 이 때, 로그는 보통 어떤 형식으로 남기시나요? 제가 계획하고 있는 구조는 미들웨어에서 아래처럼 남겨주고, 에러가 발생하면 ExceptionFilter 에서 한번 더 위의 형식에 에러 메시지를 포함해서 로그를 남겨주려고 합니다. LOG [HTTP] [DateTime] [method] [statusCode] [responseTime] - [url] - [ip] - [userAgent] 제로초님의 로그 구성이 궁금합니다. 감사합니다.

  • node.js
  • express
  • nestjs
  • typeorm
뱅준 댓글 1 좋아요 0 조회수 260

선생님 강의를 따라가려면 함수형 프로그래밍을 배워야 하나요?

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

선생님 코드의 로직이 어렵게 느껴져 따라가는데 어려움을 겪고 있습니다. chatgpt를 활용해보니, 함수형 프로그래밍을 공부하면 된다고 하는데요. 혹시 먼저 함수형을 공부하고 다시 선생님 강의에 도전을 하는게 맞는 순서일까요?

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
박상원 댓글 3 좋아요 1 조회수 281

RN expo 에 대하여

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

안녕하세요. 현업자로서 RN expo에 대한 강사님의 생각이 궁금합니다. RN 공식 페이지에서 expo 와 같은 프레임 워크 사용을 권장하는 뉘앙스로 설명을 시작하는데 , ( You can also use React Native without a Framework, however we’ve found that most developers benefit from using a React Native Framework like Expo .) 만약 강사님이 완전 새로운 앱 개발에 착수하신다면, expo 를 사용하실것 같으신가요? 아니면 native cli 로 시작하실것 같으신가요?

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
Ryan Kim 댓글 2 좋아요 1 조회수 259

팔로우 팔로우 취소

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

하나의 사람이 하나의 사람에게 팔로우할때 본인 스스로 팔로우 금지 A 라는 사람이 B 한테 팔로우 increment 가능 A 라는 사람이 B 한테 한번더 팔로우 요청 보내게 된다면 decrement 가 됨 으로 메서드 하나로 코드를 구성하는것은 어떤가요 ??

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
SJ 댓글 1 좋아요 0 조회수 124

Followers & Followees 프로퍼티 생성

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

강의 2:30 쯤에서 @ManyToMany(() => UserModels, (user) => user.followees) @JoinTable() followers: UserModel[]; @ManyToMany(() => UsersModel, (user) => user.followers) followees: UserModel[]; 위처럼 되어있는데요 . 혹시 @ManyToMany(() => UserModels, (user) => user.followers) @JoinTable() followers: UserModel[]; @ManyToMany(() => UsersModel, (user) => user.followees) followees: UserModel[]; 이렇게가 아닌가요 ??

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
SJ 댓글 2 좋아요 0 조회수 135

payment

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

안녕하세요 거의 강의 다 들어가는데요 ~ 추천해주셔서 아마 패스트캠퍼스에서도 뵙게 될것 같은데 결제에 대해서도 다뤄주시면 안될까요 ??

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
SJ 댓글 1 좋아요 0 조회수 117

윈도우/안드로이드 Ninja를 설치해야하나요?

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

윈도우 안드로이드 보고있는데 잘 되다가 stack Navigation 공식문서보고 인스톨하고 코드추가 한 후에 yarn start 하고 a 하면 [CXX1416] Could not find Ninja on PATH or in SDK CMake bin folders. [CXX1416] Could not find Ninja on PATH or in SDK CMake bin folders. FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ':react-native-screens'. > [CXX1416] Could not find Ninja on PATH or in SDK CMake bin folders. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at h ttps://help.gradle.org 라고 나옵니다

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
s2s2s2x101 댓글 2 좋아요 0 조회수 331

Drawer Navigation 적용 후 발생하는 오류

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

isLoggedIn이 false일 때는 Auth네비게이터를 보여주고 이 때는 별 다른 오류가 발생하지 않습니다. 하지만 isLoggedIn을 true로 변경 한 후, Drawer 네비게이터를 보여줄 때는 위와 같은 오류가 계속 발생합니다. 어디서 타입 에러가 발생하는건지 도저히 모르겠어서 질문을 남깁니다... cf) babel 파일 수정, 캐시 삭제 후 재실행, 안드로이드 에뮬레이터 cold boot 다 시도해봤는데 동일한 문제가 계속 발생합니다. import {createDrawerNavigator} from '@react-navigation/drawer'; import React from 'react'; import MapHomeScreen from '../../screens/MapHomeScreen'; import FeedHomeScreen from '../../screens/FeedHomeScreen'; import CalendarHomeScreen from '../../screens/CalendarHomeScreen'; const Drawer = createDrawerNavigator(); const MainDrawerNavigator = () => { return ( <Drawer.Navigator> <Drawer.Screen name="MapHome" component={MapHomeScreen} /> <Drawer.Screen name="FeedHome" component={FeedHomeScreen} /> <Drawer.Screen name="CalendarHome" component={CalendarHomeScreen} /> </Drawer.Navigator> ); }; export default MainDrawerNavigator; import React from 'react'; import {View, Text} from 'react-native'; interface MapHomeScreenProps {} const MapHomeScreen = ({}: MapHomeScreenProps) => { return ( <View> <Text>MapHomeScreen</Text> </View> ); }; export default MapHomeScreen;

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
khj031295 댓글 1 좋아요 1 조회수 336

선생님 users.resolver.spec코드좀 봐주세요!

미해결

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

import { Test } from '@nestjs/testing'; import { UsersService } from '../users.service'; import { IContext } from 'src/commons/interfaces/context'; import { Request, Response } from 'express'; // 주로 DB 작업할 때 가짜DB 만들 때 사용함 class MockUsersService { mydb = []; create({ email, password, name, age }): string { this.mydb.push({ email, password, name, age }); const token = 'token'; return token; } } describe('UsersResolver', () => { let usersService: UsersService; beforeEach(async () => { const usersModule = await Test.createTestingModule({ providers: [ UsersService, { provide: UsersService, useClass: MockUsersService, }, ], }).compile(); usersService = usersModule.get<UsersService>(UsersService); }); describe('fetchUser', () => { it('유저 정보 찾기', () => { const mockRequest: Request & { user?: { id: string } } = { user: { id: '12345' }, } as Request & { user: { id: string } }; const mockResponse: Response = {} as Response; const mockContext: IContext = { req: mockRequest, res: mockResponse, }; expect(mockContext.req.user).toStrictEqual({ id: '12345' }); }); }); describe('createUser', () => { it('유저 등록하기', async () => { const mockToken = 'token'; const mockUser = { email: 'aaa@aaa.com', password: '1234', name: '정중식', age: 12, }; const result = await usersService.create({ ...mockUser }); // 반환 값이 mockToken과 일치하는지 확인 expect(result).toBe(mockToken); }); }); }); 강의에서는 app.controller.spec랑 똑같이하시면됩니다~ 하고 넘어가셔서 챗지피티랑 손잡고 짜봣는데요.. 어떤가요? 맞게했나요?.. 개념도 생소하고 코드짜는게 넘 어렵네요.. 챗지피티 이자식은 목업클래스 안만들어주고 지름길 같은 jest.fn()같은 메서드로 목업함수 만들어주고.... 선생님 답변기다리겠씁니다!

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
반가우면반갑다고해 댓글 1 좋아요 0 조회수 140

Horizontal Scaling 이란?

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

백엔드를 이 강의로 처음 알아가고 있는데 . Horizontal Scaling 가 정확히 뭔지모르겠어요 설명해주시는 것중에서 Redis , in-memory 등 서버들이 같은정보를 바라보고서 사용자 정보를 우리가 판단 한다.. 이게 무슨말인지 아예 와닿질않아요 설명 해주실 수 있을까요

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
현민 댓글 1 좋아요 0 조회수 186

백엔드 서버 외부 접속 차단

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

백엔드를 " https://api.example.com" 프론트엔드를 " https://example.com " 이렇게 배포했습니다. 그런데 백엔드 서버는 example.com 이 주소에서 api 요청만 가능하고, https://api.example.com/graphql 은 주소창에 검색해도 접속 못하게 하고 싶습니다. 어떻게 해야할까요?

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
0516dmswjd 댓글 2 좋아요 0 조회수 330

강의 계획이 궁금합니다

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

어디선가 next js강의도 준비 한다고 들었던거 같아서요. 맞나요!? 맞다면 언제 정도 출시되나요 그리고 nest js는 part2 는 언제 출시되는지 궁금합니다.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
슈퍼아스라다 댓글 1 좋아요 0 조회수 263

로그인 페이지(프론트엔드) 작성하면서 OPTIONS 문제

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

코드팩토리님 안녕하세요. 강의를 보면서 만들었던 서버를 기반으로 로그인 인증페이지를 Next js를 통해 만들어보고 있습니다. const basicAuth = "Basic " + btoa(id + ":" + password); console.log(basicAuth); const response = await fetch("http://localhost:3000/auth/login/email", { method: "POST", headers: { Authorization: basicAuth, // Authorization 헤더에 인코딩된 정보를 추가합니다 }, }); const data = await response.json(); // 서버의 응답을 JSON 형식으로 받습니다 console.log(data); // 콘솔에 출력합니다 router.replace("/home"); } catch (err) { console.error(err); setMessage("아이디와 비밀번호가 일치하지 않습니다."); } 이렇게 코드를 만들어서 요청을 보냈더니 [REQ] OPTIONS /auth/login/email 8/23/2024, 10:39:20 PM 요렇게 요청이 POST 가 아니라 OPTIONS 로 뜨면서 동작이 안되더군요. 혹시 어떻게 처리해야할지 힌트를 주실수 있을까요

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
슈퍼아스라다 댓글 2 좋아요 0 조회수 208

패키지 관련 질문 입니다.

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

Nest js 패키지들은 어디서 설치하고 어디서 찾아 볼 수 있나요? Express 개발시에는 npm 사이트 검색 설치 및 사용 Nest도 npm에서 가능할까요?? @nestjs/ <<< 붙은 친구들은 사용 가능한건가요?? 주로 Nest에서 개발하면서 필요한 패키지들을 찾는 루트가 있을까요??

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
ajrfyd 댓글 1 좋아요 0 조회수 104

MAC OS, 윈도우

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

MAC에서 작성한 코드를 윈도우 환경에서 돌려도 문제가 없을까요?? 서로 환경이 다른 곳에서 작성된 코드들이 문제없이 작동하는지 궁금합니다.

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
lekjkj 댓글 1 좋아요 0 조회수 155

Docker mysql 오류 해결 방법

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

***질문은 아니고 해결 방법 공유합니다!*** docker-compose.yml 파일에서 백엔드 service를 올리기 전에 데이터베이스부터 먼저 올리면 됩니다! 아래처럼 version: '3.7' # "컴퓨터들" services: # 컴퓨터 이름 my-database: image: mysql:8.0 environment: MYSQL_DATABASE: 'myproject' MYSQL_ROOT_PASSWORD: 'root' ports: - 3306:3306 # 컴퓨터 이름 my-backend: build: context: . dockerfile: Dockerfile volumes: - ./src:/myfolder/src ports: - 3000:3000 env_file: - ./.env.docker my-database랑 my-backend 서로 순서만 바꿔주면 됩니다. 저는 그렇게 해서 됐습니다..! 조금이나마 도움이 되길 바랍니다.

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
새벽에잠안오면꼬맨틀하는사람 댓글 1 좋아요 1 조회수 197

DB data 재활용 관련 질문

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

데이터 베이스를 사용하면서 궁금한점이 postgres-data폴더에 db관련 정보들이 저장되는것 같은데 entity의 변경과 같은 이유로 초기화를 해야 할때 초기화 후 기존에 저장했던 부분을 살릴 수 있는 방법이 없을까요?? (ex postgres-data폴더의 어떤 파일을 살려라 등)

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
ajrfyd 댓글 1 좋아요 0 조회수 133

Presigned URL 방식

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

강사님이 알려주신 방식을 듣고 다양한 이미지 처리 방식을 공부하기 위하여 Presigned URL 방식을 구현중에 있습니다. Nest.js 백엔드에 요청을 통해 발급받은 S3 url 주소에 RN환경에서 PUT 요청으로 이미지를 업로드하고 있습니다. 이 떄, 일반적인 form-data 형식은 들어가지지 않는 것 같은데, binary 형태는 매우 잘 들어가집니다. 현업에서도 presigned-url을 활용할 떄 binary 형태로만 전달을 해야하나요, 아니면 다른 방식이 있는지 알고 싶어 식견을 구하고자, 질문드립니다!! 또, RN에서 Binary 형태를 만드는 방법이 쉽지 않아보여, 어떻게 하는게 좋은 방식인지 알고싶습니다!

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
김용민 댓글 2 좋아요 0 조회수 223

인기 태그

인프런 TOP Writers

주간 인기글