묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
강의를 다 듣고 어떻게 공부해야 할지 궁금합니다.
Q1. nest.js 같은 라이브러리들을 자유자재로 써야 하나요?Q2. docs를 따로 보면서 사이드 프로젝트를 만들며 공부해야 하나요? 아니면 또 다른 강의를 구매해서 공부해야하나요? 기초적인 지식은 어느정도 감이 잡힌 것 같은데, 세부적인 설정 부분이나 고급 기능들은 어떻게 접근할지 잘 모르겠습니다. 강사님은 어떻게 공부하시나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
CORS 에러
결제 API를 테스트 하던 중 CORS에러를 발견하여 나름대로 수정을 해보려고 했으나.... 헤매고 있어서 질문 드립니다. 우선 에러 메시지가 아래처럼 나왔습니다.(현재 쓰고 있는 에디터가 webstorm이라 혹시나 해서 vscode로 실행했는데요 결국 동일한 에러가 발생했습니다.)결국 preflight에서 CORS에러가 난건데요.이를 찾아보니... 프론트/백엔드 모두에서 설정해야 해서 다음과 같이 했습니다. Front ---------------------------------------------테스트 해보려고 변수를 하드코딩 했습니다.axios.defaults.withCredentials = true; axios.post( 'http://localhost:3000/graphql', // 쿼리 작성 { query: ` mutation { createPointTransaction(impUid: "imp_12345678", amount: 100) { id impUid amount status } } ` }, // headers { headers: { "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhNmQ3NjU5Yy05NzA2LTQ4MDgtOTA0OC02ZjI4YWY4NmNhN2UiLCJpYXQiOjE2OTQwNzI1MjQsImV4cCI6MTY5NDA3NjEyNH0.Uch2B5ewPc6yVsy4LuyOJzAUXEhnypbTxKmtQt6hRBw", } } ) Backend -------------------------------------------------main.tsimport { NestFactory } from '@nestjs/core' import { AppModule } from './app.module' import { ValidationPipe } from '@nestjs/common' import { HttpExceptionFilter } from './commons/filter/http-exception.filter' async function bootstrap() { const app = await NestFactory.create(AppModule) // cors설정 추가 app.enableCors() app.useGlobalPipes(new ValidationPipe()) app.useGlobalFilters(new HttpExceptionFilter()) await app.listen(3000) } bootstrap() 제가 찾은 방법은 여기까지 인데요.다른 방법을 찾지 못해 질문 드립니다.;;;;
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
utilty 타입 undefined
interface IProfile { name: string; age: number; school: string; hobby?: string; } type aaa = Partial<IProfile>;aaa에다가 마우스 올려 놓으면type aaa = { name?: string | undefined; age?: number | undefined; school?: string | undefined; hobby?: string | undefined;} 이렇게 뜨는데 저 undefined가 왜 뜬건지 모르겠어요.분명 선생님께서는 안 뜨는데
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
read(2) 강의 내용에 질문이 있습니다.
posts, counter 가 생기면서 어떤 차이가 생긴건지 잘 이해가 되지 않습니다.작성된 대상들은 counter num을 가지고 이제 post num을 사용할 수 있다는데 잘 이해가 되지 않습니다...counter을 추가하면서 얻어진 효과가 뭔지 알 수 잇을까요?
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
mongodb 자세히 알고 싶습니다
몽고db로 주소 경로로 알려주세요... 순서가 하려고 했는데...다른 경로 나와서 알려주세요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
nestjs 해당 모듈을 찾을 수 없습니다
import {~} from '@nestjs/common' 에서 '@nestjs/common' 모듈 또는 해당 형식 선언을 찾을 수 없습니다.ts(2307) 라고 뜨는데 뭔가 설치해야 될게 있나요? vscode를 초기화 하고 yarn,express,node 필요한 것만 설치하고npx @nestjs/cli new qqq 만 설치했습니다혹시 누락된게 있나요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
인젝션 스코프 에러
@injection() 안에 {scope:scope.)라고 입력하면 default,request,transient 를 선택하는 칸이 안 뜨고sco 라고 입력한 이 상태에서 ctrl +I 눌러도 scope가 안 나와요
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
뭐가 문제인지 모르겠습니다.
구글링을 하고 이래저래 강의를 다시 보면서 수정을 거쳐봣는데 왜 오류가 나는지모르겠어요 분명 보충강의전까지는 잘 동작하고 중반까지는 잘됫었는데
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
시퀄라이즈 없이 mysql2로만 쌩쿼리로 작업할 때 model
시퀄라이즈 없이 mysql2로만 쌩쿼리로 작업하려는데요mvc 패턴에서 m 모델 구성을 어떻게 해야하는지 모르겠습니다.orm을 안썼을때는 어떻게 구성하는게 좋은가요?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
passport-jwt 유저 정보 가져오기 로직
안녕하세요. 저번에는 jwt 인증 전략에 대해서 질문했었는데요. 해결이 됐습니다.이번에는 passport-jwt의 jwt.strategy.ts 의 가드 전략에서 로그인한 유저의 정보를 가져와야 하는데요.미리 정해놓은 페이로드의 id를 가져오니 유저의 id는 나왔는데 유저의 나머지 정보는 어떻게 가져오는건가요?가져오는 방법과 가져오게되는 로직이 궁금합니다.
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
강의 듣으면서...포스트 맨도 안됩니다
강의 듣으면서.... 몽고db 가 강의랑 틀려서...못했습니다....포스트맨 했는데... 안됩니다...https://github.com/leechangseop71/leechangseop71.github.io제 깃 허브 주소 입니다 무엇이 잘못된 것인지 모르겠습니다실행 시키면 이렇게 되네요
-
미해결[웹 개발 풀스택 코스] Node.js 프로젝트 투입 일주일 전 - 기초에서 실무까지
mongo shell 실행이 안됩니다 - not found
터미널에 몽고를 입력했지만 not found 라고 뜹니다. 재시동해도그런데 뭐가 문제일까요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
어디서부터 잘못됫는지 모르겠는데 여기까지 저장된 파일이나 혹시 제 파일을 보내드려볼테니 확인이 가능한가요?
수강생분들의 질문을 기다립니다! - 에러에 해당하는 질문은 "에러가 발생한 상황에 대한 충분한 설명", "에러 메세지", "에러가 난 코드 스크린샷"을 함께 첨부해주세요. - 언어에 해당하는 질문은 구글링 및 서치 후에 구체적으로 질문해주시면 좋습니다. - 간단한 진로 및 방향성에 대한 질문은 메일로 보내주세요.- 패키지 버전 관리은 실무 환경과 트랜드에 맞추어 강의를 업데이트 하고 있습니다. 강의를 그대로 따라갔는데 에러가 발생한다면 패키지 버전을 강의에서 사용하는 버전과 동일하게 맞춰주세요!- 강의 노트, QA 목록, 공지 사항을 먼저 확인해주세요.- 논리적이고 구체적인 질문은 학습 효과를 올립니다 :)
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
jwt, local authguard에 관해서
안녕하세요. 저번에 NESTJS를 이용해서 MSA환경에서 gRPC프로토콜을 이용하는 시스템을 만들고있다고 질문했었는데, jwt와 local을 이용한 인증전략을 구성하는데 문제가 생겨서 ,질문 남깁니다.서버는 gateway를 통해 클라이언트와 통신하고, 각 서버끼리는 gRPC를 통해 통신하고, 클라이언트와는 HTTP통신을 합니다.jwt, local 가드는 게이트웨이의 각 모듈(user의 컨트롤러 등)에서 사용되기때문에 게이트웨이 모듈의 프로바이더에 JwtStrategy, LocalStrategy를 작성해놨는데Nest can't resolve dependencies of the LocalStrategy, Nest can't resolve dependencies of the JwtStrategy의 오류가 납니다.인증 전략을 가져오는데 문제가 생긴거같은데, 게이트웨이가 아닌 서버의 모듈에 추가해야하는건가요?일반적인 방법이 궁금합니다. 검색을 해보면 다 auth모듈을 만들어서 사용하는데, 저는 그냥 strategy파일만 만들어서 inject하려고 합니다...
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
노드교과서 13강 req.app.get('io').to(req.params.id).emit에 관한 질문입니다.
13강에서 routes/index.js 파일에서 req.app.get('io').to(req.params.id).emit 라는 코드가 있는데, to(req.params.id).emit 을 하려면 views/auction.html 에서 socket.on("connection", (socket) => { socket.join(req.params.id);}이런 코드가 있어야 되는거 아닌가요? join을 하지 않았는데 어떻게 room 관계가 이루어진것인지 모르겠습니다.
-
미해결[웹 개발 풀스택 코스] Node.js 프로젝트 투입 일주일 전 - 기초에서 실무까지
포스트맨 오류
포스트맨 오류가납니다 무엇이 문제일까요 ?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
GraphQL Docs 작성부분 백틱 내부 색깔
const typeDefs = `#graphql input CreateBoardInput { writer: String title: String contents: String } type MyResult { number: Int wrtier: String title: String contents: String } type Query { fetchBoards: [MyResult] #배열 안에 객체 1개 이상을 의미 } type Mutation { # createBoard(writer: String, title: String, contents: String): String createBoard(createBoardInput: CreateBoardInput!): String } `; 이 백틱 사이의 부분이 VSCode 안에서 전부 주황색으로 나오네요. 수업과 같이 예쁘게 표시 되려면 따로 설정해야하는 것이 있을까요?제 에디터 모습입니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
graphql에서 restapi로 변경
안녕하세요! 강의에서 nestjs와 graphql로 구현을 하셨는데요, 이 걸 restapi로 바꿔서 구현해보고자 합니다. 지금 일단은 강의코드에서 api를 rest로 하나씩 바꿔보는중인데 혹시 typeORM이나 nest내의 다른 설정들도 바꿔야만 하는지 간략하게나마 가이드해주시면 감사하겠습니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Join시 정의하는 테이블 명이 entity에 있는것이 맞을까요?
product.service.ts에서 join을 하기 위해 return this.productsRepository.find({ relations: ['productSaleslocation']})이렇게 해주었는데요.여기에 들어가는 productSaleslocation이라는 테이블 명이 product.entity.ts에서 조인이 되는 대상 컬럼 @JoinColumn()@OneToOne(() => ProductSaleslocation)@Filed(() => ProductSaleslocation)productSaleslocation: ProductSaleslocation 이 부분의 정의 때문에 그렇게 명명하는 것일까요?relation에 들어가는 테이블명은 딱히 정의한 곳을 못찾아서요. 실제 DB상의 테이블 명이랑은 다르고... 만약 제 추측이 맞다면@OneToOne, @MayToOne을 붙인 Filed명이 테이블 명 처럼 사용되는 것이죠?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
툴킷으로 만들어보는중 막히는부분 질문드립니다.
리덕스, 사가를 사용할때는 리덕스 -> 사가 -> 리덕스 순으로 값이 전해져서 게시글을 추가할때마다 게시글 개수가 올라가는 흐름을 툴킷을 적용해서 하려고 하니깐 막혀서 어떻게 해야할지 질문드립니다. 코드는 다음과 같이 post.ts // post.ts export const addPostAction = createAsyncThunk('/post', async (data: string) => { const addPost = dummyPost(data); await delay(1000); return addPost; }); // 게시글 삭제 export const removePostAction = createAsyncThunk( '/post/delete', async (data: string) => { await delay(1000); return data; } ); // 게시글 추가 .addCase(addPostAction.pending, (draft) => { draft.addPostLoading = true; draft.addPostDone = false; draft.addPostError = null; }) .addCase(addPostAction.fulfilled, (draft, action) => { draft.addPostLoading = false; draft.addPostDone = true; draft.mainPosts.unshift(action.payload); }) .addCase(addPostAction.rejected, (draft, action) => { draft.addPostLoading = false; draft.addPostError = action.error.message; }) // 게시글 삭제 .addCase(removePostAction.pending, (draft) => { draft.removePostLoading = true; draft.removePostDone = false; draft.removePostError = null; }) .addCase(removePostAction.fulfilled, (draft, action) => { draft.removePostLoading = false; draft.removePostDone = true; draft.mainPosts = draft.mainPosts.filter( (v) => v.id !== action.payload ); }) .addCase(removePostAction.rejected, (draft, action) => { draft.removePostLoading = false; draft.removePostError = action.error.message; }) user.ts // user.ts const dummyUser = (data: LoginData): DummyData => ({ ...data, nickname: '제로초', id: 1, Posts: [{ id: 1 }], Followings: [ { id: 2, nickname: '김' }, { id: 3, nickname: '이' }, { id: 4, nickname: '박' }, ], Followers: [{ nickname: '김' }, { nickname: '박' }, { nickname: '이' }], }); const userSlice = createSlice({ name: 'user', initialState, reducers: { addPostTome(draft, action) { draft.me?.Posts.unshift({ id: action.payload }); }, removePostOfMe(draft, action) { if (draft.me) { draft.me.Posts = draft.me?.Posts.filter((v) => v.id !== action.payload); console.log(draft.me); } }, }, 로 구분을 했고 게시글 추가, 삭제는 정상적으로 작동하는데 이때 user.ts의 dummyUser 값을 어떻게 변경해줘야 할지를 잘 모르겠어서 질문드립니다.