묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
section 26 강의 중, createProductInput error 발생
안녕하세요, section 26 수업을 따라가던 도중, 이러한 error가 발생하였습니다. error message를 확인해보면, CreateProductInput에 문제가 있는 것 같은데 해결하기가 어려워 질문을 남깁니다 !
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
React Error..
(사진)
-
해결됨[개정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 안에서 전부 주황색으로 나오네요. 수업과 같이 예쁘게 표시 되려면 따로 설정해야하는 것이 있을까요?제 에디터 모습입니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
crbug/1173575, non-JS module files deprecated.오류
serve를 실행하면 console에 다음과 같은 오류메세지만 나옵니다. 어떻게 해결해야할까요?추가로 Chart.js를 install 해서 사용하던중이었습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
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명이 테이블 명 처럼 사용되는 것이죠?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
props 첫 번째 줄에 입력할 시 생기는 오류에 대해.
안녕하세요 선생님 !props를 잘 쓰다가, return문 첫 번째 줄에 넣었는데 두 번쨰 이미지처럼 에러가 뜨더라구요 . 근데 첫 번째 이미지처럼 위에 부모 태그를 달아주면 괜찮아지던데 이유가 혹시 뭔지 알 수 있을까요 ??
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
혹시 gatsby 생성하는 명령어 하는지 알고 싶습니다
npx gatsby-cli new "[프로젝트 명] 하고 실행하는 지 알고 싶습니다
-
해결됨[리뉴얼] 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 값을 어떻게 변경해줘야 할지를 잘 모르겠어서 질문드립니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
async, await를 사용하는 이유?
product.service.ts에서 create, findOne, findAll을 만들때는 async, await를 사용하지 않았습니다. 그리고 create 만들 때 nest에서는 이걸 호출하는 곳(resolver)에서 자동으로 기다리고 있기 때문이라고 하셨는데요.다만, 시간이 걸리기 때문에 Return type은 Promise<Product>로 했고요. 근데 update, delete를 하실때는 async, await를 사용하셨는데요.어떤 이유가 있을까요??
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
백엔드와 데이터베이스 연결하기 부분 pdf 관련 질문 있어요
일단...여러가지 배포 오류가 많이떠서 거의 2주간 배포에 시간 썼는데 여찌저찌 배포가 되긴 했어요..!이번엔 질문이 좀 많아요..ㅎ서버 api와 통신은 제대로 잘 되는데 자꾸 웹소켓 오류가 뜨는데 이거 무시해도 괜찮은 건가요?서비스 동작하는데는 문제 없는 것 같은데 이런 오류가 계속 떠요.백엔드와 데이터베이스 연결 pdf 파일 내용은 영상으로 안다뤄 주신거죠? 제가 도커쪽과 배포쪽은 정말 아예 처음 써보는거라 지식이 많이 부족한데, 제가 영상보고 이해하기로는 현재 ec2에서 깃 클론으로 모든 client와 server소스코드와 도커 컴포즈 파일까지 가져와서 거기서 pm2로 클라이언트랑 서버 모두 백그라운드로 실행하는 것으로 이해했거든요. 2-1. 왜 도커 파일을 client와 server에 각각 만들어줘서 도커컴포즈로 이미지 생성하도록 만드는건지 이해를 못했어요. 도커 파일에는 여러 패키지 설치하는 명령어(?)와 client를 실행시키는 명령어가 있던데 이 과정이 왜 필요한건지 이해를 못했습니다.ㅠㅠ 사실 저는 '백엔드와 데이터베이스 연결하기'라는 pdf에 있는 도커 파일로 변경했을때 배포 실패했다가 도커파일 싹 다 지우고 decker-compose.yml파일을 원래 기존 로컬에서 작성했던대로 냅두고, data-source.ts 파일의 host 부분도 그냥 "localhost"로 놔둔채 배포에 성공했거든요.그래서 저 pdf 파일대로 client와 server에 도커파일을 만들고 도커 컴포즈 파일까지 변경한 후 도커 컴포즈 명령어 실행했을 때와 도커파일 없이 기존의 도커컴포즈 파일대로 배포했을 때와는 어떤 부분이 다른건지 궁금합니다. ec2 인스턴스에서 깃 클론으로 가져온 client를 다시 npm run build:production하는 빌드과정을 보여주셨는데, 어짜피 pm2로 ecosystem.config파일을 백그라운드로 실행시킬거면 (이 파일에서 script: "npm run start:production"라는 명령어를 실행하도록 설정해줬으므로) client의 빌드 폴더 만드는 과정이 필요 없는거 아닌지요? (무지한 소리면 죄송합니다..ㅠ) 마지막으로, 인스턴스를 종료하고 컴퓨터를 끄더라도 도커가 종료되지 않고 계속 동작하는 것 같더라고요. 로그인 로그아웃이 동작하고 유효한 토큰인지 확인하는 api도 잘 동작했어요. 제가 생각했을 떄는 pm2로 서버와 클라이언트는 백그라운드로 실행시켰지만 도커는 포어그라운드로 동작시켜서 인스턴스 종료하면 데이터베이스와는 연결이 끊겨 제대로 동작을 안할 것이라 생각했는데 예상과는 달리 잘 동작하더라고요. 이건 도커의 특징인건지, 아니면 저희가 작성한 파일에 백그라운드로 동작하도록 하는 설정이 포함되어 있는건지.. 알려주시면 감사하겠습니다.질문이 길고 갯수가 많은데 답변 기다리겠습니다..! 감사합니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
getStaticProps 두개의 질문있습니다
1.getStaticProps를 about 페이지에 사용하셨는데빌드를 하고 나서 유저의 게시글 개수 팔로우 개수 팔로워 개수가 바뀔 수 있잖아요?근데 getStaticProps를 사용했고빌드시 html로 만들어 저장하고 그 html을 브라우저로 전달하기 때문에DB의 데이터가 바뀌어도브라우저 화면의 about페이지에는 빌드시의 html이 보여지게 되서 데이터 갱신이 안되는데 맞나요?? 2.그리고 html로 바뀌는 대상이 about페이지라면about컴포넌트의 자식 AppLayout의 자식 UserProfile 컴포넌트에는 동적인 데이터가 쓰이기 때문에 말이 안되는 것 같은데 html로 바뀌는 대상이 정확히 뭔지 알 수 있을까요??
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
깃허브
깃허브에 코딩한거 올려주시나요?하신다면 링크 알 수 있을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
logout시 token이 삭제되지 않습니다.
postman에서 logout을 시도해도 mongoDB에서는 token이 삭제가 되지 않아 콘솔로 req.user._id를 찍어보니 undefined가 나와auth를 확인해보니 req.user 값이 제대로 들어가질 않는 거 같습니다. 혹시 어느 부분을 바꿔야 req.user에서 제대로 값이 출력되고 logout시 token도 삭제 될까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
ant icon 질문있습니다
import { GithubOutlined } from "@ant-design/icons"; import styled from "@emotion/styled"; import { useRouter } from "next/router"; const Wrapper = styled.div` height: 80px; padding: 0px 50px; display: flex; flex-direction: row; justify-content: space-between; align-items: center; background-color: #fff4f4; `; const LoginWrapper = styled.div` display: flex; flex-direction: row; `; const LoginBtn = styled.button` width: 100px; height: 40px; background-color: orange; border: 2px solid orange; border-radius: 10px; font-size: 16px; color: white; cursor: pointer; `; const SignBtn = styled.button` width: 100px; height: 40px; background-color: orange; border: 2px solid orange; margin-left: 10px; border-radius: 10px; font-size: 16px; color: white; cursor: pointer; `; export default function LayoutHeader(): JSX.Element { const router = useRouter(); const onClickLogo = (): void => { void router.push("/boards/page"); }; const onClickLogin = (): void => { void router.push("/boards/login"); }; const onClickSign = (): void => { void router.push("/boards/sign"); }; return ( <Wrapper> <GithubOutlined style={{ fontSize: "50px" }} onClick={onClickLogo} /> <LoginWrapper> <LoginBtn onClick={onClickLogin}>로그인</LoginBtn> <SignBtn onClick={onClickSign}>회원가입</SignBtn> </LoginWrapper> </Wrapper> ); }다음과 같이 코드를 작성했을때 다음과 같은 에러 메시지가 나오는데 rev 에 어떤 속성을 줘야되나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
버전 관리에 대한 궁금증이 있습니다.
react가 18버전으로 업그레이드 되었지만 실무에서는 안전한 17버전을 쓰고 next는 12.1.0 버전 react는 17.0.2 버전을 쓴다고 하셨는데, 이러한 정보들은 어디서 얻을 수 있나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
비밀번호 수정 기능에 관해 궁금한 점이 있습니다.
마이페이지에서 비밀번호 수정 기능을 구현 중에 있습니다.현재 비밀번호와 새로운 비밀번호를 입력하고 뮤테이션을 날릴 때에는 새로운 비밀번호만 넣어서 저장을 하는 것으로 이해를 했습니다. 기존 비밀번호의 체크는 백엔드에서 이루어지는 과정이 따로 없는 것 같아서요. 제가 가볍게 생각해보기로는 loginUser api를 활용해서 체크를 해야하나 싶은데요, 현재 비밀번호 체크 로직이 이 과정에서 구현 가능한지 아니면 추가로 다른 기능이 있어야 가능한건지 궁금합니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
파일 이동을 윈도우에서 사용법도 알고 싶습니다
우분투와 맥북 기준 말고윈도우에서는Alt -alt shift -이 두가지를 어떻게 사용 하나요?