묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
백틱 적용이 안 돼요..
위 화면과 같이 백틱으로 감싸서 사용할 때, 적용이 안 되는데, 서칭을 해보면 Browser 호환 문제라는 말들이 있습니다. 영상에서와 같은 Chrome을 통한 Console창에서 실습 중인데 무엇이 문제일까요?
-
해결됨네이버(치지직)에서 대용량 채팅 TPS 처리를 위한 웹소켓 통신에 대해 알아보고 학습하기
소켓 서버의 수평적 확장 및 무중단 배포에 대해 질문드립니다!
안녕하세요, 소켓 서버의 수평적 확장 및 무중단 배포에 대해 궁금한 점이 있어 질문드립니다. 🙂state를 갖고 있는 소켓 서버의 특징으로 인해 수평적 확장이 쉽지 않을 것 같은데요, 하지만 scale up 자체는 한계가 있기 때문에 강의의 주제처럼 대용량의 소켓 서버를 만드려면 결국 여러 대의 소켓 서버를 활용해야 할 것으로 예상됩니다.그렇다면 실무에서는 어떤 방식으로 소켓 서버를 scale out 하게 되는지 궁금합니다! go 혹은 node 서버 진영에서 사용되는 프레임워크나 방식이 있을까요? 또한, 강의에서 보여주신 소켓 서버 예시는 connection를 메모리에 들고 있기 때문에 서버를 종료하게 될 경우, 기존의 소켓 채널이 모두 닫히게 될 것 같아요! 혹시 소켓 서버의 무중단 배포를 하고 싶다면, 어떤 식으로 작업을 구성하게 되는지도 궁금합니다.감사합니다! 🙏
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Prettier 적용 안되는 이슈
강의에서 소개해주신 것 처럼 Format on Save 옵션을 적용하였는데도, 저장 시 자동으로 Formatter가 작동하지 않아 서치해보니,Default Formatter 옵션이 위처럼 없음(null)로 설정이 된 경우에는 Prettier로 적용해주어야 정상동작하더라구요.해당 내용 공유드려요 ㅎ
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
학습 로드맵
안녕하세요. 좋은 강의 만들어주셔서 감사합니다.이번에 강의 업데이트가 된 김에 미뤄왔던 공부를 하려고 하는데요.가지고 있는 강의는 이정도가 있고,리액트 훅 정도는 알고 사용할 수 있는 정도인데, 공부 순서를 어떻게 하면 좋을까요? [보유 강의]따라하며 배우는 노드, 리액트 시리즈 - 기본 강의따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기 (리뉴얼)따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기 (리뉴얼)따라하며 배우는 TDD 개발 (리뉴얼)따라하며배우는 도커와 CI환경 (리뉴얼)
-
해결됨네이버(치지직)에서 대용량 채팅 TPS 처리를 위한 웹소켓 통신에 대해 알아보고 학습하기
app.js를 여러 번 실행했음에도 불구하고, 로그가 단 한 번만 출력됨
app.js를 여러 번 실행했음에도 불구하고, 로그가 단 한 번만 출력됩니다. 포트 충돌 문제인가 해서 8080 포트 죽여보고 9090으로 바꿨는데도 안됩니다. ㅜ[winston을 통한 로깅 설정 및 서버 시작하기] 수강 중입니다.
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
강의자료 압축 풀기 오류
강의자료 압축을 풀고 싶은데 압축 오류가 뜨면서 압축이 안풀립니다 어떻게 해야 하나요??
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
에러가 뜨네요 수강 강의 내용에도 전체 내용이 없어서 안되네요 전체 코드는 제공이 안되나요??
import { ApolloServer } from '@apollo/server' import { startStandaloneServer } from '@apollo/server/standalone' const typeDefs = `#graphql input CreateBoardInput { writer: String title: String contents: String } type MyResult { number: Int writer: String title: String contents: String } type Query { #fetchboards: MyResult #객체 1개를 의미 fetchboards: [MyResult] # 배열 안에 객체 1개 이상을 의미! } type Mutation { # createBoard(writer: String, title: String, contents: String): String createBoard(createBoardInput: CreateBoardInput!): String }`; const resolvers = { Query: { fetchBoards: (parent, args, context, info) => { // 1. 데이터를 조회하는 로직 => DB에 접속해서 데이터 꺼내오기 const result = [ { number: 1, writer: '철수', title: '제목입니다~~', contents: '내용이에요@@@', }, { number: 2, writer: '영희', title: '영희 제목입니다~~', contents: '영희 내용이에요@@@', }, { number: 3, writer: '훈이', title: '훈이 제목입니다~~', contents: '훈이 내용이에요@@@', }, ]; // 2. 꺼내온 결과 응답 주기 return result; }, }, Mutation: { createBoard: (_, args) => { // 1. 브라우저에서 보내준 데이터 확인하기 console.log(args); console.log("=========================") console.log(args.createBoardInput.writer) console.log(args.createBoardInput.title) console.log(args.createBoardInput.contents) // 2. DB에 접속 후, 데이터를 저장 => 데이터 저장했다고 가정 // 3. DB에 저장된 결과를 브라우저에 응답(response) 주기 return "게시물 등록에 성공하였습니다!!"; }, }, }; const server = new ApolloServer({ typeDefs: typeDefs, resolvers: resolvers, cors: true, // 모든 사이트 허용하고 싶을 때 // cors: { origin: ["https://naver.com", "https://daum.net"] } // 특정 사이트만 지정하고 싶을 때 }); startStandaloneServer(server) // 4000node_modules/@graphql-tools/schema/esm/addResolversToSchema.js:62 throw new Error(`${typeName}.${fieldName} defined in resolvers, but not in schema`); at file:///Users/youssipro/Desktop/project/backend/class/section03/03-06-graphql-api-apollo-server-board/index.js:78:16
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
ws 프로토콜 연결시 사이트 연결할 수 없음 메세지가 나오고 페이지 호출이 되지 않습니다.
브라우저 사파리에서는 정상동작 합니다참고로 크롬 버젼은 123.0.6312.107(공식 빌드) (arm64)맥에서 실행했습니다.
-
미해결습관부터 바꿔주는 Node.js & Express 기초
Axios Mocking에 관한 질문입니다.
// Axios.test.ts import axios from 'axios'; import ManagerService from "./ManagerService"; jest.mock('axios'); const mockedAxios = axios as jest.Mocked<typeof axios>; describe("Axios Test", () => { let managerService = new ManagerService(); it("should mock axios get call", async () => { mockedAxios.get.mockResolvedValue({ data: [ { corporation: "inflearn" } ], }); const test = await managerService.axiosTest("inflearn"); expect(test).toEqual([ { corporation: "inflearn" } ]); expect(mockedAxios.get).toHaveBeenCalledWith(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: "inflearn" }, }); }); }); 위와 똑같은 코드로 테스트를 진행했고, 본 코드에서는 약간의 차이만 있었습니다.하지만 아직 왜 그렇게 되는지 알지 못하여서 강사님께 여쭤보려고 합니다. 1번 코드 ( 테스트가 잘 동작하는 코드 )axiosTest = async (corporation: string) => { const response = await axios.get(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: corporation, }, }); if (!response) { throw new Error("값이 없음"); } return response.data; }; 2번 코드 ( 값이 없음으로 에러가 발생하는 코드 )axiosTest = async (corporation : string) => { const site = await axios({ method: 'get', url: `${process.env.SERVER_URL}/corporation/info`, params: { corporation : corporation }, }) if(!site) { throw new Error("값이 없음"); } return site.data } 둘의 차이점에 대해서 알 수 있을까요?
-
미해결습관부터 바꿔주는 Node.js & Express 기초
Express 사용하면서 Jest 테스트 관련해서 질문 드립니다.
// Axios.test.ts import axios from 'axios'; import ManagerService from "./ManagerService"; jest.mock('axios'); const mockedAxios = axios as jest.Mocked<typeof axios>; describe("Axios Test", () => { let managerService = new ManagerService(); it("should mock axios get call", async () => { mockedAxios.get.mockResolvedValue({ data: [ { corporation: "inflearn" } ], }); const test = await managerService.axiosTest("inflearn"); expect(test).toEqual([ { corporation: "inflearn" } ]); expect(mockedAxios.get).toHaveBeenCalledWith(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: "inflearn" }, }); }); }); 위와 똑같은 코드로 테스트를 진행했고, 본 코드에서는 약간의 차이만 있었습니다.하지만 아직 왜 그렇게 되는지 알지 못하여서 강사님께 여쭤보려고 합니다.1번 코드 ( 테스트가 잘 동작하는 코드 )axiosTest = async (corporation: string) => { const response = await axios.get(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: corporation, }, }); if (!response) { throw new Error("값이 없음"); } return response.data; }; 2번 코드 ( 값이 없음으로 에러가 발생하는 코드 )axiosTest = async (corporation : string) => { const site = await axios({ method: 'get', url: `${process.env.SERVER_URL}/corporation/info`, params: { corporation : corporation }, }) if(!site) { throw new Error("값이 없음"); } return site.data } 둘의 차이점에 대해서 알 수 있을까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
VSC에서 yarn dev가 작동하지 않습니다 (섹션 4)
안녕하세요. Node.js 챕터 수강 중인 학생입니다.과제를 만들기에 앞서 freeboard_frontend 폴더에서 yarn dev 명령어 실행하려는데,사이트 접속할 때마다 에러라고 뜹니다. ls 명령어로 확인도 하는데 왜 이러는지 모르겠네요.. 검색해도 뾰족한 대안이 안 나오고해결 부탁 드리겠습니다 ㅠㅠ
-
해결됨네이버(치지직)에서 대용량 채팅 TPS 처리를 위한 웹소켓 통신에 대해 알아보고 학습하기
몇천명이 Room 에 동시접속할 수 있도록 설계하려면 어떤 것들이 필요할까요?
안녕하세요!저는 웹소켓 개발은 해본적이 없는데 흥미로운 주제로 강의를 하셔서 강의를 듣고 있는데요,예제에서는 간단하게 2명의 client 의 경우를 보여주셨는데 실제스트리밍 방송에는 몇천명씩 들어와서 채팅을 하는데 그럴 경우에는 SocketBufferSize 를 늘려주면 되는건가요?그런식으로 확장해야할 때 어떻게 설계해야하는지 궁금합니다!
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
9장 스스로하기 캐싱문제..
지금까지 9장 스스로하기 문제들을 겨우겨우 해결해 나가고 있는데요, 그래도 다른 것들은 제로초님의 강의를 돌려보면서 검색과 함께 해볼만한 난이도였지만, 마지막 캐싱은 어떻게 해야할지 감도 안잡힙니다. 객체를 선언하라는 것도 전역변수에 User 배열을 선언해서 전부 집어넣고 Post도 배열을 만들어서 집어넣으라는 소린지.. 만약 만든다면 어떤 파일에 전역변수를 선언해야할까가 문제입니다. ㅜ 쓰이는 곳도 많아서 쓰이는 곳 마다 해당 파일에 전역변수를 설정해야할까요?
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
좋아요 기능 구현중
models/user에서 static associate(db){ db.User.belongsToMany(db.Post,{ foreignKey: 'postId', as: 'LikedPosts', through: 'Like', }); } 그리고 models/post에서static associate(db){ db.Post.belongsToMany(db.User,{ foreignKey: 'userId', as: 'LikingUsers', through: 'Like', }); }이렇게 해놓았는데이러면 좋아요와 좋아요취소기능은 잘 작동하고 이를통해 프로필을 볼때 사용자가 좋아요한 게시글들만 볼 수 있는 기능도 잘 작동합니다.하지만 mysql workbench를 보면이와같이 userId에 post의 Id가, postId에는 userId가 들어가있는데요, 그래서 foreignKey를 post에선 postId로, user 에선 userId로 바꿨더니 Like 테이블에 삽입하려는 postId가 users 테이블의 id와 관련하여 참조 무결성 제약 조건을 위반했다는 오류가 뜹니다! ㅜ왜이런 현상들이 일어나는지 검색을 해도 안나와서 여쭤봅니다!
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
async와 promise가 결국 같이 쓰일필요가 없다는 뜻인가요?
강의 후반쯤에 "async안에 promise함수를 넣게되면 promise함수 그자체를 반환해서 async는 결국 별다른 기능을 하지않는다" 라고 하셨는데처음 이형태가 async 함수안에 new Promise()를 반환하는것보다 더 이상적인 형태라고 이해해도 될까요??
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
jwt를 따로 연습하고 있는데 env를 못읽는 것 같습니다.
import { Module } from '@nestjs/common'; import { AuthController } from './auth.controller'; import { AuthService } from './auth.service'; import { ConfigModule } from '@nestjs/config'; import { PassportModule } from '@nestjs/passport'; import { JwtModule } from '@nestjs/jwt'; import { JwtStrategy } from 'src/auth/jwt/jwt.strategy'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, envFilePath: `.env.${process.env.NODE_ENV}`, }), PassportModule.register({ defaultStrategy: 'jwt', session: false }), JwtModule.register({ secret: process.env.JWT_SECRET, signOptions: { expiresIn: '1y' }, }), ], controllers: [AuthController], providers: [AuthService, JwtStrategy], }) export class AuthModule {}이게 auth.module.ts 파일입니다import { Injectable } from '@nestjs/common'; import { PassportStrategy } from '@nestjs/passport'; import { ExtractJwt, Strategy } from 'passport-jwt'; @Injectable() export class JwtStrategy extends PassportStrategy(Strategy) { constructor() { super({ jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), ignoreExpiration: false, secretOrKey: process.env.JWT_SECRET, }); } async validate() {} }여기서 문제가 일어났습니다. process.env.JWT_SECRET 이 것을 읽지 못합니다.NODE_ENV="development" JWT_SECRET="secret" PORT=8000.env.development 파일도 root폴더에 잘 있습니다. 무엇이 문제인지 잘 모르겠습니다
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
강의 ppt
강의 ppt는 따로 받을수는 없나요?
-
미해결Do it! Node.js 프로그래밍 입문
마지막에 라우트 경로에 대해서 질문이 있습니다
마지막에 라우트 경로를 빼주고 use함수에서 라우트 경로를 입력해주어도 똑같은 값이 나온다고 하셨는데 그 이유가 궁금합니다 파일을 가지고 오는 경로가 지정되어 있으니 그것이 루트 경로에서 use함수 때문에 user로 덮어 씌워지는 건가요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
[section07] 포트폴리오 리뷰
안녕하세요 포트폴리오 리뷰 하다보니까 문제가 생겨서 올립니다. 주석 처리가 안된 부분이 코드캠프에서 제공해주신 코드이고, 주석처리한 부분이 제가 직접 짠 코드입니다. 코드캠프에서 제공해주신 코드대로 입력하면 아래와 같은 에러가 발생합니다. 어떻게 해결해야할까요?? grqphql 링크는 https://backendonline.codebootcamp.co.kr/graphql여기 사용했습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
[React] section5. 에서 질문있습니다.
안녕하세요.학생을 생각해서 너무나 세심하고 친절히 알려주심에 매번 감동받고 감사합니다.섹션5> 05-05-dynamic-routing-board-mutation 에서 에러를 해결 못해서 문의드립니다.route.push 로 페이지 이동을 하는 이 라인에서 자꾸 에러가 발생합니다. (404. not found 에러입니다) 이것저것 다 시도해도 에러가 안 없어지네요 ㅠ코딩은 강의에 나온 대로 그대로 저는 타이핑 한 거 같은데요.어떻게 해야지 정상적으로 dynamic 페이지 이동이 가능할까요?답변 부탁드립니다 ^^