묻고 답해요
155만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 NestJS
파일을 찾지 못하는 오류가 계속 뜹니다
Cannot find module './app.controller' or its corresponding type declarations.Cannot find module './app.service' or its corresponding type declarations.저런 내용이 아예 없는데 코드에서 저게 잘못됐다고 뜨네요....파일구조도 다 맞는것 같은데왜 계속 저런 오류가 뜨는걸까요ㅜㅜ
-
미해결인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
[auth][error] JWTSessionError: Read more at...
강의25. [BE] 백엔드 Auth Guard 구현 시작. Auth Guard로 유저 아이디 가져오는 부분 작업타임라인 19:55여기까지는 정상적으로 진행됩니다.쿠키에서 "authjs.session-token" 확인이 가능합니다. import NextAuth from "next-auth"; import { PrismaAdapter } from "@auth/prisma-adapter"; import { prisma } from "@/prisma"; import CredentialsProvider from "next-auth/providers/credentials"; import { comparePassword } from "@/lib/password-utils"; import * as jwt from "jsonwebtoken"; import { JWT } from "next-auth/jwt"; export const { handlers, auth, signIn, signOut } = NextAuth({ useSecureCookies: process.env.NODE_ENV === "production", trustHost: true, adapter: PrismaAdapter(prisma), secret: process.env.AUTH_SECRET, providers: [ CredentialsProvider({ name: "credentials", credentials: { email: { label: "이메일", type: "email", placeholder: "이메일 입력", }, password: { label: "비밀번호", type: "password", }, }, async authorize(credentials) { // 1. 모든 값들이 정상적으로 들어왔는가? if (!credentials || !credentials.email || !credentials.password) { throw new Error("이메일과 비밀번호를 입력해주세요."); } // 2. DB에서 유저를 찾기 const user = await prisma.user.findUnique({ where: { email: credentials.email as string, }, }); if (!user) { throw new Error("존재하지 않는 이메일입니다."); } // 3. 비밀번호 일치 여부 확인 const passwordMatch = comparePassword( credentials.password as string, user.hashedPassword as string ); if (!passwordMatch) { throw new Error("비밀번호가 일치하지 않습니다."); } return user; }, }), ], session: { strategy: "jwt", }, jwt: { encode: async ({ token, secret }) => { return jwt.sign(token as jwt.JwtPayload, secret as string); }, decode: async ({ token, secret }) => { return jwt.verify(token as string, secret as string) as JWT; }, }, pages: {}, callbacks: {}, }); FE 추가분/frontend/auth.ts// ... 중략 import * as jwt from "jsonwebtoken"; import { JWT } from "next-auth/jwt"; export const { handlers, auth, signIn, signOut } = NextAuth({ // ...중략 jwt: { encode: async ({ token, secret }) => { return jwt.sign(token as jwt.JwtPayload, secret as string); }, decode: async ({ token, secret }) => { return jwt.verify(token as string, secret as string) as JWT; }, }, // ... 중략 }) pnpm add jsonwebtoken pnpm add -D @types/jsonwebtoken GET /api/auth/csrf 200 in 47ms POST /api/auth/callback/credentials? 200 in 114ms[auth][error] JWTSessionError: Read more at https://errors.authjs.dev#jwtsessionerror[auth][cause]: Error: The edge runtime does not support Node.js 'crypto' module. Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime at Object.get (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\_6e5868ec._.js:62:41) at C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\node_modules__pnpm_d2b00409._.js:8647:62 at getSecret (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\node_modules__pnpm_d2b00409._.js:8630:20) at push.[project]/node_modules/.pnpm/jsonwebtoken@9.0.2/node_modules/jsonwebtoken/verify.js [middleware-edge] (ecmascript).module.exports (C:\Users\svx32\OneDrive\바 탕 화면\v5\frontend\.next\server\edge\chunks\node_modules__pnpm_d2b00409._.js:8633:12) at Object.decode (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\[root-of-the-server]__273b5c62._.js:137:233) at session (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\fdcd2_@auth_core_ec592ae5._.js:4516:39) at AuthInternal (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\fdcd2_@auth_core_ec592ae5._.js:5123:269) at async Auth (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\fdcd2_@auth_core_ec592ae5._.js:5379:34) at async handleAuth (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\node_modules__pnpm_d2b00409._.js:3913:29) at async C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\_6e5868ec._.js:12505:20[auth][details]: {} GET / 200 in 62ms--- 이 오류 메시지는 애플리케이션이 Edge Runtime 환경에서 Node.js의 crypto 모듈을 사용하려고 시도할 때 발생하는 JWTSessionError 입니다. 오류 상세 설명 JWTSessionError: 이는 JWT(JSON Web Token) 세션 관리 중에 문제가 발생했음을 나타냅니다. JWT는 웹 애플리케이션에서 사용자 세션을 처리하는 일반적인 방법입니다.The edge runtime does not support Node.js 'crypto' module.: 이 부분이 핵심 문제입니다. Edge Runtime (예: Next.js Edge Functions 또는 Middleware)은 빠르고 가볍게 설계된 환경입니다. 따라서 모든 Node.js API를 지원하지 않으며, 특히 암호화, 해싱, 디지털 서명 등에 사용되는 crypto 모듈을 포함하지 않습니다. JWT 작업은 이 crypto 모듈에 크게 의존합니다.스택 트레이스 분석: 오류 스택 트레이스를 보면 jsonwebtoken 패키지(특히 verify 작업 중)에서 crypto 모듈에 접근하려고 시도하며, 이 과정이 @auth/core(일반적으로 Auth.js 라이브러리)에서 호출됩니다. 이는 JWT 유효성 검사 프로세스가 crypto 모듈의 부재로 인해 실패하고 있음을 명확히 보여줍니다.간단히 말해, 애플리케이션이 Edge Runtime이라는 제한된 서버리스 환경에서 JWT 유효성 검사(보안 관련 작업)를 수행하려고 하지만, 이 환경에는 해당 작업을 위한 필수 도구(crypto 모듈)가 없기 때문에 오류가 발생하는 것입니다. 해결 방법 (일반적인 접근) 이 문제를 해결하기 위해서는 주로 다음 방법들을 고려할 수 있습니다:JWT 관련 작업을 Edge Runtime 외부로 이동: JWT 유효성 검사와 같이 crypto 모듈이 필요한 작업은 Edge Runtime이 아닌 일반적인 Node.js 서버 환경(예: Next.js의 표준 API 라우트)에서 수행하도록 변경해야 합니다.인증 라이브러리 설정 변경: 사용하고 있는 인증 라이브러리(Auth.js)의 세션 전략을 변경하여 Edge Runtime 컨텍스트에서 crypto 모듈에 의존하지 않도록 구성해야 합니다. 예를 들어, JWT 기반 세션 대신 데이터베이스 세션과 같은 다른 세션 관리 방식을 고려할 수 있습니다.AUTH_SECRET 확인: 직접적인 원인은 아니지만, AUTH_SECRET 환경 변수가 올바르게 설정되어 있고, 사용 중인 환경에 맞게 JWT를 안전하게 처리하는지 확인하는 것도 중요합니다.어떻게 해결해야하나요??
-
미해결[중급] 맛집 지도앱 만들기 (React Native & NestJS)
시뮬레이터 관련 질문
강의 [1-5] VScode에서 시뮬레이터를 활성화 하는 부분이 있던데 이때 원도우에서 개발 하면 Xcod가 실행이 되지 않아 ios 시뮬레이터를 활성화하지 못하던데 이러면 ios 환경 개발을 못하는건가요 아직 제가 초반 부분만 봐서 그런지 이해를 못 하겠습니다. 혹시나 해서 여줘봅니다.(info Opening the app on iOS...Error: Error: Command failed with exit code 1: xcodebuild -list -json'xcodebuild'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ���ġ ������ �ƴմϴ�. at getProjectInfo (C:\Users\사용자\NTMap\node_modules\@react-native-community\cli-platform-ios\build\tools\getProjectInfo.js:29:11) at Object.runIOS [as func] (C:\Users\사용자\NTMap\node_modules\@react-native-community\cli-platform-ios\build\commands\runIOS\index.js:88:58) at Command.handleAction (C:\Userㄴ\사용자\NTMap\node_modules\@react-native-community\cli\build\index.js:111:23) at Command.listener [as actionHandler] (C:\Users\사용자\NTMap\nodemodules\commander\lib\command.js:482:17) at C:\Users\사용자\NTMap\node_modules\commander\lib\command.js:1283:65 at Command._chainOrCall (C:\Users\사용자\NTMap\node_modules\commander\lib\command.js:1177:12) at Command._parseCommand (C:\Users\사용자\NTMap\node_modules\commander\lib\command.js:1283:27) at C:\Users\사용자\NTMap\node_modules\commander\lib\command.js:1081:27 at Command._chainOrCall (C:\Users\사용자\NTMap\node_modules\commander\lib\command.js:1177:12) at Command._dispatchSubcommand (C:\Users\사용자\NTMap\node_modules\commander\lib\command.js:1077:23))
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Ubuntu 설치 관련
제 노트북이 램이 8G인데 Ubuntu 설치해서 이용가능할까요?
-
해결됨인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
jotai 이후로 강의가 안맞네요;
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다.💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. jotai 이후로 강의가 안맞네요;;
-
해결됨인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
Test 질문입니다.
Test 질문입니다.
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
mongdb 스키마 공식 문서와 형태가 다른 이유 궁금합니다.
수업에서 보여주신 코드와 nest.js 공식 문서에서 제공하는 스키마 파일의 구조가 살짝 다른 이유가 궁금합니다.1. xtyatDocument = HydratedDocument<Cat>; 수업 코드에서는 이 부분이 없습니다. 무슨 차이인가요?export class Cat { 공식 문서 제공 파일에서는 아무것도 extends하지 않는데, 수업에서는 다릅니다. 무슨 차이인가요?[공식 문서 제공 코드]```import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';import { HydratedDocument } from 'mongoose';export type CatDocument = HydratedDocument<Cat>;@Schema()export class Cat { @Prop() name: string; @Prop() age: number; @Prop() breed: string;}export const CatSchema = SchemaFactory.createForClass(Cat);```
-
미해결[중급] 맛집 지도앱 만들기 (React Native & NestJS)
아 이만 포기할까 합니다.. 안드로이드쪽 문제.
다들 비슷하시군요. ㅋㅋ 지도 띄우는 부분까지 와서 ios 는 경우겨우 의존성 처리해서 구동시켰는데 이번엔 안드로이드가 안되는군요.참고로 라이브러리버전은 다음과 같습니다.강의 내용은 맘에 드는데, 버전 문제 등으로 너무 진행이 뎌뎌서 이만 포기할까 합니다.. 너무 시간이 뺏기네요이거 안되면 ..그냥 플투터로 넘어갈까 합니다..이래저래 버전문제 처리해서 구동시켰는데 앱 실행하자마자 꺼지네요.wrapper.propertiesdistributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/distsbuild.gradlebuildscript { ext { buildToolsVersion = "34.0.0" minSdkVersion = 24 compileSdkVersion = 34 targetSdkVersion = 34 ndkVersion = "25.2.9519653" // 또는 사용 중인 NDK 버전 kotlinVersion = "1.9.10" } repositories { google() mavenCentral() } dependencies { classpath("com.android.tools.build:gradle:8.1.0") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") classpath("com.facebook.react:react-native-gradle-plugin") } } allprojects { repositories { mavenCentral() google() } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinOptions { jvmTarget = "17" } } tasks.withType(JavaCompile).configureEach { options.release = 17 } } subprojects { afterEvaluate { project -> if (project.plugins.hasPlugin("com.android.library") || project.plugins.hasPlugin("com.android.application")) { project.android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion ndkVersion rootProject.ext.ndkVersion } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } // ✅ Kotlin 적용 프로젝트에서만 실행 if (project.plugins.hasPlugin("kotlin-android")) { kotlinOptions { jvmTarget = "17" } kotlin { jvmToolchain(17) } } } } } } "dependencies": { "@react-native-community/geolocation": "^3.1.0", "@react-native-community/slider": "^4.5.0", "@react-native-masked-view/masked-view": "^0.3.0", "@react-navigation/bottom-tabs": "^6.5.11", "@react-navigation/drawer": "^6.6.6", "@react-navigation/native": "^6.1.9", "@react-navigation/stack": "^6.3.20", "@tanstack/react-query": "^5.8.7", "axios": "^1.6.2", "patch-package": "^8.0.0", "postinstall-postinstall": "^2.1.0", "react": "18.2.0", "react-native": "^0.72.0", "react-native-config": "^1.5.1", "react-native-date-picker": "^4.3.5", "react-native-encrypted-storage": "^4.0.3", "react-native-gesture-handler": "2.12.0", "react-native-image-crop-picker": "^0.40.2", "react-native-maps": "1.15.0", "react-native-permissions": "^4.0.1", "react-native-reanimated": "3.5.4", "react-native-safe-area-context": "^4.7.4", "react-native-screens": "3.29.0", "react-native-toast-message": "^2.2.0", "react-native-vector-icons": "^10.0.3", "zustand": "^4.5.0" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@react-native/eslint-config": "^0.72.2", "@react-native/metro-config": "^0.72.11", "@tsconfig/react-native": "^3.0.0", "@types/react": "^18.0.24", "@types/react-native-vector-icons": "^6.4.18", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.2.1", "babel-plugin-module-resolver": "^5.0.0", "eslint": "^8.19.0", "jest": "^29.2.1", "metro-react-native-babel-preset": "0.76.9", "prettier": "^2.4.1", "react-test-renderer": "18.2.0", "typescript": "4.8.4" }, "engines": { "node": ">=16" }
-
미해결인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
The edge runtime does not support Node.js 'crypto' module.
[auth][error] JWTSessionError: Read more at https://errors.authjs.dev#jwtsessionerror[auth][cause]: Error: The edge runtime does not support Node.js 'crypto' module.Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtimeat Object.get (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\_b7b28d92._.js:62:41)at C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\node_modules__pnpm_e56295b8._.js:8637:62at getSecret (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\node_modules__pnpm_e56295b8._.js:8620:20)at push.[project]/node_modules/.pnpm/jsonwebtoken@9.0.2/node_modules/jsonwebtoken/verify.js [middleware-edge] (ecmascript).module.exports (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\node_modules__pnpm_e56295b8._.js:8623:12)at Object.decode (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\[root-of-the-server]__273b5c62._.js:135:233)at session (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\0253f_@auth_core_77718842._.js:4516:39)at AuthInternal (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\0253f_@auth_core_77718842._.js:5123:269)at async Auth (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\0253f_@auth_core_77718842._.js:5379:34)at async handleAuth (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\node_modules__pnpm_e56295b8._.js:3885:29)at async C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\_b7b28d92._.js:12505:20[auth][details]: {}GET / 200 in 137msauth.ts에 jwt: { encode: async ({ token, secret }) => { return jwt.sign(token as jwt.JwtPayload, secret as string); }, decode: async ({ token, secret }) => { return jwt.verify(token as string, secret as string) as JWT; }, },이 부분을 추가한 이후부터 The edge runtime does not support Node.js 'crypto' module.이 에러가 발생하는데 해결이 어렵네요.. 코드는 노션이랑 강의 보고 다 비교해 봤는데 드른 부분은 없었스빈다..
-
해결됨인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
토큰 쿠기 유실 원인
안녕하세요 강의 잘 보고 있습니다.현재 섹션4까지 전부 수강한 상태이고 슬랙에는 해당 강의에 대한 질문 채널은 따로 없는 거 같아서 여기에 질문 남깁니다 로그인할 때 authjs.session-token 라는 쿠키가 생기지 않는데 로그인 후 메인 페이지로 돌아오면 로그인된 이메일 정보가 나옵니다그리고 새로고침하면 다시 없어집니다혹시 쿠키가 제대로 저장되지 않는지 이유를 알 수 있을까요? 아래는 섹션4까지 수강한 코드입니다https://github.com/account-0021/inflearn-clone
-
미해결[중급] 맛집 지도앱 만들기 (React Native & NestJS)
강의 내용 빈약함
EC2 설정하고 RDS 설정하고그 후에 어떻게 하라는 건지 설명이 없어요...구글링하면서 보안 설정은 했는데마지막 강의가 너무 설명이 없었어서 따로 강의를 추가해주셨으면 해요나머지 강의는 다 좋은데 배포하기 강의가 너무 아쉽네요
-
미해결인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
노션 링크 어디서 찾을 수 있나요?
혹시 노션 링크 어디서 찾을 수 있을까요? 초기 설정 할떄 몇몇 부분은 노션 없이 좀 하는데 어려움이 있어서요
-
미해결인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
로펀의 인프런 상담소 슬랙 채널 주소
25년 06월 01일 기준, 노션페이지에서 해당 글이 안 보이는데 슬랙채널 링크 여쭤봐도 되나요?
-
미해결[중급] 맛집 지도앱 만들기 (React Native & NestJS)
forwardRef 지원 중단에 대한 대응?
https://ko.react.dev/reference/react/forwardRef공식문서를 보면 앞으로는 forwardRef 지원을 중단한다고 나와있는데 이에 대응하려면 코드 작성을 어떻게 하면 될까요?
-
미해결[중급] 맛집 지도앱 만들기 (React Native & NestJS)
S3, EC2, RDS까지 다 연결 후
S3, EC2, RDS까지 다 연결한 후에 끝인가요?ec2에 따로 postgresql를 설치해야하는 건가요?
-
미해결[중급] 맛집 지도앱 만들기 (React Native & NestJS)
강의를 들을 수가 없네요
여기 질문 답변 게시판을 보면 환경설정 버전 문제 때문에 질문이 한가득인데, 강사님과 인프런 측에서 새로운 영상이라도 만들어야 하는 것 아닐까요? 아니면 버전에 따라 업데이트된 공식 문서라도 제공해야 하는 것 아닌가요? 프로젝트를 시작을 할 수가 없네요
-
미해결[중급] 맛집 지도앱 만들기 (React Native & NestJS)
루비버전 에러
% npx react-native@0.72.6 init MatzipApp --version 0.72.6 ###### ###### ### #### #### ### ## ### ### ## ## #### ## ## #### ## ## ## ## ## ## ### ### ## ## ######################## ## ###### ### ### ###### ### ## ## ## ## ### ### ## ### #### ### ## ### ## #### ######## #### ## ## ### ########## ### ## ## #### ######## #### ## ### ## ### #### ### ## ### ### ## ## ## ## ### ###### ### ### ###### ## ######################## ## ## ### ### ## ## ## ## ## ## #### ## ## #### ## ## ### ### ## ### #### #### ### ###### ###### Welcome to React Native! Learn once, write anywhere ✔ Downloading template✔ Copying template✔ Processing template✔ Installing Ruby Gemsℹ Installing Ruby Gems⠧ Installing CocoaPods(node:89384) [DEP0053] DeprecationWarning: The util.isObject API is deprecated. Please use arg !== null && typeof arg === "object" instead.(Use node --trace-deprecation ... to show where the warning was created)(node:89384) [DEP0049] DeprecationWarning: The util.isFunction API is deprecated. Please use typeof arg === "function" instead.✖ Installing CocoaPodserror ✖ Installing CocoaPodserror An error occured while trying to install CocoaPods, which is required by this template.Please try again manually: sudo gem install cocoapods.CocoaPods documentation: https://cocoapods.org/.info Run CLI with --verbose flag for more details.% ruby -vruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [arm64-darwin24]% 강의대로 따라해서 루비버전 ruby 2.7.6 으로 바뀌면 될 줄 알았는데 이렇게 나오네요 맥북프로 m4 셀은 zsh 쓰고 있습니다 이거 어떻게 하죠 뭐가 문제인지 알려주세요
-
미해결[중급] 맛집 지도앱 만들기 (React Native & NestJS)
버전관련
맥북쓰는데 웹사이트 가보니까 명령어가 이렇게 뜨는데 npx @react-native-community/cli@latest init AwesomeProject강의랑은 완전 커맨드가 다른데 어떤 커맨드로 써야되나요 빨리 알려주세요
-
미해결[중급] 맛집 지도앱 만들기 (React Native & NestJS)
안녕하세요 카카오 이미지 uri 부분이 잘못된 것이 아닌가 싶습니다?
카카오 이미지 uri는 카카오쪽 서버 도메인까지 모두 포함하고 있는데,로컬호스트 도메인까지 앞에 붙여주는 것 같아서 그 부분이 정정되어야 할 것 같습니다?
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
"흔히 사용되는 메서드" 강의 관련 질문입니다~
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Typeorm 관련 메서드 설명해주시는 과정에서,위와같이,async 메서드 내부에서 create 메서드를 호출할 땐 await를 붙이지 않고,save 메서드를 호출할 땐 await를 붙이는 이유가 있을까요? 일단, async가 비동기로 메서드를 호출한다는 개념으로 알고 있고,await는 쓰레드가 값을 반환받게 하기위해 비동기 메서드 내부에서 계속 해당 코드에 머무르게끔, 점유하게끔 한다고 생각해서 create 메서드든 save 메서드든 둘다 await가 붙는다고 생각했었습니다. 제가 잘못 이해하고 있는 걸까요?