묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
회원가입할 때 POST요청에 대한 응답이 500에러가 뜹니다.
다른 질문글들을 살펴보니 .env파일 설정이 안되어 있거나 back 서버를 구동하지 않은 상태에서 에러가 나던데 저는 .env파일과 back서버 모두 구동을 했음에도 에러가 뜹니다. 제가 했던 설정 중 일반적인 설정과 다른 경우는 1장에서 db를 생성하고 만들었을 때 mysql비밀번호가 있음에도 도저히 인식하지 못해 설정파일에 변수명이 아닌 직접 비밀번호를 입력한 경우를 제외하곤 강의에서 설명한 설정 그대로 수행했습니다. 어떤게 문제일까요?
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
ES모듈 전환 질문
제가 지금까지 이해한 바로는, esModuleInterop를 true로 설정하면 CommonJS모듈에서 내보내기 한 것들을 ES모듈의 내보내기 한 것으로 변환 시켜주는데 CommonJS에선 module.exports나 exports.변수 나 둘 다 하나의 객체로 담겨져 보내지니 ES모듈의 내보내기로 전환될 땐 무조건 Default Export 방식으로 전환되는 것으로 알고있습니다. 그래서 ES모듈로 가져오는 것으로 바꿔줄 때에도 그냥 Default Export 를 가져오는 방식으로만 변환해주면 되는 것으로 아는데 const { Strategy: LocalStrategy } = require("passport-local"); 이 부분을import { Strategy as LocalStrategy } from "passport-local"이렇게 Named Export를 가져오는 방식으로 바꾸는 것이 가능한 게 이해가 되질 않습니다.import Strategy as from "passport-local" 이렇게 가져와서 따로 구조분해를 해야 하는 것이 아닌가요?
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
소켓에 대한 질문드립니다.
강사님. 항상 강의 잘 보고 있습니다.궁금한게 있어서 질문 드립니다.제가 이해하기론 클라이언트가 하나 연결될 때마다 서버는 새로운 소켓을 만들고 거기에 클라이언트를 연결한다?로 이해하고 있는데요.만약 제가 이해한 것이 맞다면 새로 만들어진 소켓에 새 포트번호가 매핑되서 클라이언트랑 통신을 해야할 것 같은데 wireshark로 확인해보면 25000로 클라이언트와 통신을 하고 있어서요.제가 놓친 것이 무엇인가요?
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
TS7016에러 질문
노드 모듈을 import할 때 발생하는 TS7016에러는 @types를 설치하니 사라졌는데 import pageRouter from "./routes/page"; import authRouter from "./routes/auth"; import postRouter from "./routes/post"; import userRouter from "./routes/user"; import passportConfig from "./passport";부분은 error TS7016: Could not find a declaration file for module './models'. 'C:/Users/mikg2/Desktop/project-ts/models/index.js' implicitly has an 'any' type. 에러가 발생하는데 이것도 나중에 ts파일로 바꿔주면 사라지는 에러인가요? 그리고 제로초님 영상과는 달리 제 컴퓨터에서만 왜 해당 에러가 뜨는 건지 궁금합니다.
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
RUDP 질문드립니다
게임 서버 같은 경우에 RUDP를 이용하는 방식이 듣고보니 되게 좋은 것 같아서 구현하려고 하는데 생각 이상으로 고려해야할게 너무 많아서 혹시 저런 것을 구현하는 이론이 있을까요?
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
nunjucks와 next.js 에 대해 문의드립니다
안녕하세요 선생님 넌적스로 화면 렌더링 진행해보았는데요넌적스도 서버사이드렌더링 방식이 맞는거지요..?그렇다면 이에 견주는게 next.js 인듯 한데 프론트와 관련해 다음으로 공부해야 할것을 정한다면 next.js 를 선택해도 좋을까요..?
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
11.4 강의 :Jest worker encountered 4 child process exceptions, exceeding retry limit
----처음에 코드를 작성했다가 Fail이 떠서 githuub 에 있는 자료를 그대로 옮겼는데, 다시 저런 Fail이 뜹니다. 제가 어떻게 접근을 해야 Fail을 잡을 수 있을까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
(배포 이슈)webpack 빌드 후 index.html을 열어보았는데 router부분이 실행이 안되는거같습니다..
App.tsx부분입니다. 여기에서 Router부분 주석처리하고 테스트중입니다라는 텍스트만 적어놓고 npm run build 후 생긴 index.html을 클릭하면 아래 이미지처럼 텍스트가 제대로 나오는거까진 확인을 하였습니다. 그런데 텍스트를 지우고 index.html 을 실행하면 화면에 아무것도 나오질 않습니다. 코드대로라면 백엔드와 통신이 안될 땐 로딩중입니다는 텍스트가 떠야하는데 말이죠.. import React, { FC } from 'react'; import './App.css'; import { Router } from '../router'; const App = () => { return ( <div className="App"> <Router /> </div> ); }; export default App; -npm run build 후 App.tsx에 <Router/> 주석 후 테스트중입니다 텍스트 입력 후 index.html 실행 화면-npm run build 후 App.tsx에 <Router/> 주석 해제 후 index.html 실행 화면 및 네트워크 개발자도구 -npm run dev (정상일 경우 동작해야하는 화면)제가 이 질문을 드린건 지금 s3에 버킷 생성 후 dist에 있는 폴더를 아래처럼 다 올렸습니다. 그 후 엔드포인트에 접속했는데 아무것도 안 뜨길래 로컬에서 빌드 후 생긴 index.html에 로딩중입니다가 떠야 s3 엔드포인트에 접속했을 때도 로딩중입니다가 뜰 거 같아서 로컬에서 문제를 해결해보고 있습니다.-s3 파일 업로드 화면- 아래는 웹 시작초기에 관련 있는 코드들이라 생각되어 같이 올립니다. client.tsx부분입니다. import 'core-js/stable'; import 'regenerator-runtime/runtime'; import React from 'react'; import { render } from 'react-dom'; import { BrowserRouter } from 'react-router-dom'; import axios from 'axios'; import App from './layouts/App'; axios.defaults.withCredentials = true; axios.defaults.baseURL = process.env.NODE_ENV === 'production' ? 'http://localhost:3095' : 'http://localhost:3095'; render( <BrowserRouter> <App /> </BrowserRouter>, document.querySelector('#app'), ); index.html입니다. <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>주식 캘린더</title> <style> html, body { margin: 0; padding: 0; overflow: initial !important; } body { font-size: 15px; line-height: 1.46668; font-weight: 400; font-variant-ligatures: common-ligatures; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; } * { box-sizing: border-box; } </style> <!-- <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon.png" /> --> </head> <body> <div id="modal"></div> <div id="app"></div> <script src="./dist/app.js"></script> </body> </html> 하루 반나절동안 잡고 있는데도 해결이 안되어서 질문드립니다.. ㅠㅠ... 도와주세요 제발...ㅠㅠㅠㅠ
-
미해결Slack 클론 코딩[실시간 채팅 with React]
현재 깃허브는 셋팅이 완료되있는 상태인가요?
안녕하세요 선생님 다름 아니라 현재 세팅하기 부분 강의 듣고있는데,화면과 다른게 제가 클론해온 파일은 alecture 폴더에 셋팅이 다 완료되어있는것같아서 문의드립니다.https://github.com/zerocho/sleact/tree/master여기서 클론 해왔구요그러면 현재 셋팅하는 강의는 다 건너뛰고 바로 회원가입 파트로 넘어가면 되는지요?
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
npx cli 명령어가 작동되지 않습니다.
이전 강의까진 npx cli가 작동이 잘 되었는데 이번 강의 코드에선 npx cli -v 하니깐 에러가 나는 것도 아니고 아무것도 안 뜨고그냥 이렇게 끝나는데 이거 해결법이 있나요? 물론 node command -v는 잘 작동이 됩니다.
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
shebang주석 질문
#!/usr/bin/env node 코드는 윈도우에선 주석처리가 되어 아무런 영향이 없어야 하는데 경로 부분에 오타를 내보니 npx cli명령어 실행 시 "지정된 경로를 찾을 수 없습니다." 에러가 뜨더라고요. 윈도우도 이 코드에 영향을 받나요??
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
10.4 토큰테스트에는 표시되지만 api 서버에는 유효하지 않다고 나와요.
질문1)4000/test에서는 토큰이 표시되지만, 8002/v1/test 에서는 유효하지 않은 토큰으로 뜨는 이유가 무엇일까요?로그에서는 401코드가 뜨다가 4000/test 접속 후 새로고침을 하면 200 코드가 로그에 다시 뜹니다. api 코딩 내용 첨부합니다.app.jscontrollers/v1middleware/v1routes/v1
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
async await 함수 사용에 대해서 문의드립니다.
아직 노드버드 ch10 진행중입니다.진행하면서 다른 글들도 참고하면서 진행중인데요async await 사용 방식에 대해 문의드립니다.DB 데이타 조회, 생성 시 async 로 진행하는데코딩 방식1try{ const user = await User.findOne(...); ... await user.addFollowing(...);}catch(err){ next(err);}코딩 방식2User.findOne().then((result) => { user.addFollowing(...);}).then((result) => {...}).catch((err) => { next(err)});방식1은 await 키워드로 비동기 함수 호출하는 방식이구아래는 then 을 통해 비동기 함수 호출 하는 방식인듯 한데요.둘중 많이 쓰는 방식이 있을까요..?
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
checkAuction() 호출 위치 질문
const checkAuction = require("./checkAuction"); const app = express(); passportConfig(); checkAuction(); app.set("port", process.env.PORT || 8010); app.set("view engine", "html"); nunjucks.configure("views", { express: app, watch: true, }); sequelize .sync({ force: false }) .then(() => { console.log("데이터베이스 연결 성공"); }) .catch((err) => { console.error(err); });이렇게 checkAuction함수의 호출이 sequelize.sync호출보다 위에있는데 어떻게 시퀄라이즈를 쓰는checkAuction함수가 에러없이 돌아가는게 가능한 것이죠?
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
클라이언트가 먼저 연결종료를 해야한다고 하신부분 질문입니다.
클라이언트가 만약 소켓 연결을 정상 종료하지 않고 프로그램을 끄게 되는 경우 예컨데 정전으로 인해 클라이언트 PC가 종료됐다면 서버는 알턱이 없으니 결국 TimeOut을 체크해서 서버가 연결을 종료해야할 것 같은데 맞을까요?제 생각엔 위와 같은 흐름으로 진행되고 다른 방법은 떠오르지 않는데 혹시 대응할 수 있는 방법이 있을까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
Cannot GET / 404 에러 발생하시는분
강의 7:40부근webpack.config.ts 파일72번째 라인devServer: { historyApiFallback: true, // react router port: 3090, devMiddleware: { publicPath: '/dist/' }, static: { directory: path.resolve(__dirname) }, }, 이부분 추가하시면 될것같습니다.static: { directory: path.resolve(__dirname) }
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
api 서버 만들기: 도메인주소, 클라이언트비밀키가 화면에 표시되지 않습니다.
무료/프리미엄 고르고 도메인주소 입력하면 밑에 화면에 주소와 타입 비밀키가 표시되지 않습니다. 로그는 계속 이렇게만 뜨고, 워크벤치 들어가보면 키는 보입니다.키가 발급은 되었는데, 브라우저로 못 띄우는 것 같다고 판단했습니다.어떤 부분을 확인해봐야 될까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
프로젝트에 사용할 상태와 로직 관리 라이브러리 훅 사용 질문입니다.
로그인 및 인증,인가(세션,jwt둘다 사용), 게시판(이미지포함), 댓글, 소켓채팅 정도의 기능을 구현하여 테스트 코드와 docker로 띄워서 CI/CD까지 구현하려고 합니다. 상태랑 로직 관리를 useReducer, React Context API, React Query, redux, graphql 정도로 생각하고 있는데 어떤걸로 하는게 좋을까요?!
-
미해결Slack 클론 코딩[실시간 채팅 with React]
npx sequelize db:create 실패
mac os에서 mysql을 homebrew로 사용중입니다.root계정의 비밀번호 설정 완료했습니다.back 환경설정에서 문제를 겪고있습니다.cd back으로 경로 이동후npm i로 node 모듈 설치 성공후에.env파일 구성(비밀번호 맞음),npx sequelize db:create 명령어 입력시 아래와 같은 에러가 발생합니다.-- 에러메세지 시작Sequelize CLI [Node: 16.18.0, CLI: 6.6.0, ORM: 6.28.0]Loaded configuration file "config/config.js".Using environment "development".ERROR: Failed to create schema directory 'sleact' (errno: 2 - No such file or directory)-- 에러메세지 종료-- .env파일 시작COOKIE_SECRET=sleactcookieMYSQL_PASSWORD=kaadal-- .env파일 종료--config.js 시작require('dotenv').config();module.exports = { "development": { "username": "root", "password": process.env.MYSQL_PASSWORD, "database": "sleact", "host": "127.0.0.1", "dialect": "mysql" }, "test": { "username": "root", "password": process.env.MYSQL_PASSWORD, "database": "sleact", "host": "127.0.0.1", "dialect": "mysql" }, "production": { "username": "root", "password": process.env.MYSQL_PASSWORD, "database": "sleact", "host": "127.0.0.1", "dialect": "mysql" }}-- config.js 종료이상입니다.
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
room계층 소켓 연결 후 소통 질문
서버쪽에선 socket.on("join", (data) => { socket.join(data); // 방 참가 socket.to(data).emit("join", { user: "system", chat: `${socket.request.session.color}님이 입장하셨습니다.`, }); });이렇게 room계층 소켓으로 연결했고, 해당 room으로 join이벤트를 보냈는데 브라우저 쪽에선const socket = io.connect("http://localhost:8005/chat", { path: "/socket.io", }); socket.emit("join", new URL(location).pathname.split("/").at(-1)); socket.on("join", function (data) {...}/chat 네임스페이스 계층 소켓으로 밖에 연결하지 못했는데 어떻게 해당 room계층으로 온 join이벤트인지 구별하는 게 가능한지 궁금합니다. room계층보다 상위인 네임스페이스 계층에 연결했으니 어느 room으로 오든 네임스페이스만 같으면 모든 이벤트를 다 감지하게 되는 것 아닌가요?