수강이 제한됩니다.
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
모듈 임포트가 안되네요
어떻게 해야 할까요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
html 질문
main.html 에서 id = 'img' 인 input 에 'change' 이벤트가 발생했을때 이미지를 서버로 post 하는것은 이해가 되었습니다. 하지만 id = 'twit-btn' 인 submit 버튼을 눌렀을때 이미지가 한번 더 서버로 post 되는 것 아닌가요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
이미지 리사이징 다른 방법 multer-s3-transform
이미지 리사이징 관련 정보를 찾다가, multer-s3-transform 모듈을 이용해서 아예 서버단에서 리사이징 하는 방법을 찾았는데,말씀대로 노드에서의 무거운 cpu작업을 피하기위해 외부 서비스(람다)를 이용하는게 정석인가요?
- 해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
pm2 사용 관련 질문이 있습니다.
nodejs 활용 외부 API 호출 후 응답받은 데이터로 2차 서비스를 만들고 있는중에 선임(자바 개발자) 으로부터 API 호출 시 안전 장치를 위해 Circuit Breaker 를 구현하는게 좋을 것 같다는 의견을 청취해 해당 로직 구현 후 로컬 테스트 후 개발 서버에서 테스트 중 버그를 발견했습니다.ㅜㅜ pm2 로 멀티프로세싱 시 메모리 공유가 되지않아 각 프로세스 별 API 요청 실패 횟수 및 서킷의 현재 상태가 공유되지않아 제가 생각한 방향과 다르게 동작했습니다. (pm2를 책에서 보고 따라했어서 다시 찾아보니 제로초님이 로그인 세션에 빗대어 설명해주신걸 이제야 이해했네요ㅜㅜ) 핵심 질문은 요런 내용으로 pm2 가 관리하는 마스터 노드에서 각 워커 노드에게 브로드캐스팅으로 현 상태를 전달하는 예제들을 많이 봤는데 각 프로세스들의 서킷 상태 뿐 아니라 실시간으로 API 실패 횟수를 체크(서킷의 상태를 관리하기 위한 임계치) 를 해야해서 여러 프로세스에서 동시에 처리하다보면 해당 데이터가 꼬일 것 같습니다.ㅜㅜ 1. Redis 등 외부 인프라를 사용하지 않고 처리 할 수 있는 괜찮은 방안이 있을까요? 2. 해당 어플리케이션이 k8s 클러스터에 배포가 되는데, 서버 상태를 k8s가 체킹해주고 있다면 pm2를 걷어내도 될까요?(각 k8s 의 워커 노드들의 CPU가 4코어로 pm2를 사용 시 좀 더 효율적으로 메모리 관리가 된다고 생각하고 있습니다..) 사내에 node.js 개발자가 없어서 강사님께 질문을 드리게되네요. 무더위 건강 유의하시고, 좋은 강의 감사합니다.
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
Express.js 와 서버에 관해 질문 있습니다.
안녕하세요~ 제로초님 Q1. 몽고DB 같은 경우는 아틀라스 같이 데이터를 저장할 수있는 유료 공간이 따로 있으니까, 거기에 저장되는지 알겠는데요. MySQL같은 경우는 대체 어디에 저장되서, 데이터를 불러오는 건지 잘 모르겠습니다. 아직, 배포 전이라면, MySQL의 데이터는 제 로컬 컴퓨터에 저장 되는 건가요?? Q2. Express.js는 서버에 요청하고 응답을 받는 문법이니까 이 코드를 잘 짜도 데이터를 받아오는 속도에 엄청난 차이가 있지는 않을 것같은데요. 왜 Next.js 가 나온 건가요?? Q3. 요즘 벡엔드에도 관심이 많아져서, 벡엔드 개발자가 되는 법에 대해서 알아보니까, 다들 자바의 Spring으로 많이 시작하던데요. 벡엔드 개발자가 되려면, JS의 Node.js 와 Express.js 만으로는 부족한가요?? 다시 말해서, 벡엔드 개발자로 취업을 하려면. 반드시 자바를 배워서 Spring을 배워야 하나요?? 벌써 불금이네요. 좋은 밤 보내시고, 주말에도 좋은 일만 가득 하시길 바랍니다 :)
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
유니티 <-> 서버 통신
안녕하세요! 강의를 수강하고 있는 학생입니다. 혹시 이 강의에서 배우는 socket/express 통신 등으로 unity로 제작한 어플리케이션과도 동일 원리로 통신이 가능한가요? 최종적으로 unity로 만든 웹앱 (클라이언트)과 데이터베이스, 서버를 구축하려고 합니다.
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
npm -v
cmd에서 npm -v 쳤을때 npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead. 8.11.0 이렇게 나오는데 상관없을까요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
모듈 분리 후 배포
안녕하세요~! 제로초님 강의로 도움 많이 받고 있습니다. npm 배포 시 파일을 분리해서 모듈을 사용하게 만들고 싶은데 package.json에 main은 하나의 entry를 가지고 있어서 질문 남깁니다. 예를 들어 제가 apple이라는 패키지를 배포하려고 하고, 사용자가 아래와 같은 방식으로 package명/파일 구조로 사용하게끔 만드려면 따로 어떤 설정을 해주면 되는지 궁금합니다. const readSync = require(“apple/file”); const { writeSync } = require(“apple/file”); const fetch = require(“apple/fetch”); const http = require(“apple/http); const { setHeader } = require(“apple/http);
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
(메모리 vs db IO) deserializeUser 전략 질문
deserializeUser 로 나눈이유가, 세션 메모리가 한정되어있기때문에 효율적으로 하기위해, user.id값 하나만으로 받아와서, 이를 deserialize에서 쿼리를 보내 데이터를 얻는 식으로 하기 위해서라고 설명하셨는데, 메모리 아낀다는 취지는 이해했습니다.하지만 이렇게하면, 매번 페이지 들어갈때마다 무거운 조인 2개가 계속 db IO가 되게 되는데, 오히려 이러한 방법이 데이터베이스에 무리를 일으켜 서비스에 지장이 생기지 않은지 여쭈어봅니다.뒤에 redis를 배우는데, 그러면 아예 redis의 세션스토어에 조인결과를 string으로 저장해 버리는 방법은 어떨지 질문드립니다.
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
ppt 파일
안녕하세요. 혹시 해당 수업에서 사용하는 ppt파일은 어디서 찾아볼 수 있을까요?
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
웹팩 관련하여 문의드립니다.
웹팩 관련하여 질문 하나 드려도 괜찮을까요?개발환경을 스스로 설정하기 위해서 리액트를 사용한 프로젝트에서 웹팩을 사용해보며 배우고 있습니다. A컴포넌트에서 A.css AA.css B컴포넌트에서 B.css, BB.css를 각각 import하여 사용하고 있는 상태에서 번들링을 하면 A.css + AA.css + B.css + BB.css가 합쳐진 Css 파일이 만들어지는데 제가 하고 싶은 것은 A컴포넌트에서 import 하는 A.css + AA.css 가 번들링 된 Css 파일, B.css + BB.css 가 번들링 된 Css파일 이렇게 각각 을 얻는데 계속해 실패하고 있습니다만 어떤 개념을 통해 해결해 갈 수 있을지 공식문서와 검색을 통해서 얻어내지 못하고 있어 질문을 남깁니다. 감사합니다. (A컴포넌트와 B컴포넌트는 서로 import하지 않으며 부모나 자식 컴포넌트가 겹치지도 않는 상태 입니다.)
- 해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
NPM과 Yarn 의 차이가 궁금합니다.
안녕하세요. 다름이 아니라, npm 과 yarn의 차이가 궁금해서 질문드립니다. 어디서는 그저, 취향의 차이라고 하고 다른 블로그에서는 처음에는 NPM으로 시작하지만, 나중에는 yarn으로 갈아타는 게 더 좋다고 하고... 뭔가 정보의 일관성이 떨어져서, 이 부분에 관해 가장 확실하게 답을 주실 수있는 제로초님께 여줘보고 싶은 게 있습니다. Q1) npm과 yarn 은 어떤 차이가 있나요?? Q2) 실무에서는 npm을 많이 사용하나요?? yarn을 많이 사용하나요?? 그리고 제로초님은 둘 중에 어떤 것을 추천하시나요??
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
본 강좌를 통해 추가적인 기능을 구현하려 합니다! 도와주세요! 제로초님!~
우선 해당 강의처럼 아주 양질의 강의를 제공해 주신 것 너무 감사 드립니다! 수강료의 10배 이상의 가치가 있는 것 같아요~ 현재 제가 "노드버드"를 응용하여 기능을 추가 하고 싶어서 글을 남깁니다. (일단 노드버드 까지는 이상 없이 진행 하였습니다) 추가 하고 싶은 기능은, 1. 내 트윗(게시물)만 따로 모아 보기 - 노드버드에서 로그인 이후 내프로필(http://localhost:8001/profile)로 진입하면 팔로잉, 팔로워 숫자 밑 목록이 뜨는데요 - 이 화면에서 나의(로그인한 사용자) 컨텐츠만 모아서 보여주게 하려면 어떻게 해야 할까요 - 일단 이미지와 게시글의 업로드가 진행되는 routes/posts.js에서 Userid를 기준으로 get으로 처리가 되어야 할 것 같은데요... - 어떻게 노드로 표현해야 하는지 모르겠습니다.. 2. 게시물 각각 전체공개, 전체비공개 (팔로잉 개념이 아닌) - 현재 노드버드 처럼 Userid 끼리의 팔로잉이 아니고 - 로그인 이후 내프로필(http://localhost:8001/profile)에서 1번 처럼 나의 컨텐츠만 보여주었을 때 - 게시물마다 공개여부를 정하는 버튼을 만들어 메인 입장 시(http://localhost:8001/) 사용자들이 전체공개한 게시물을 시간 순으로 보여주고 싶습니다. 현재 직장을 다니면서 독학으로 노드 개발을 배우고 있고 많은 강의도 들었지만 제로초님의 강의가 제일 좋네요! 응용도 강의 내에서 열심히 바꿔보고 DB컬럼도 추가해보고 하였지만, 위에 요청한 내용을 실제 해보려 하니 앞이 막막합니다ㅜㅜ 글을 보시고 회신 남겨주시면 감사드리겠습니다. 수고하세요! [제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
트랜잭션이 반복됩니다
로그인 하는 동안 동일한 트랜잭션이 반복됩니다. 코드는 13강 강의한 내용에서 바뀐점은 없습니다. 돈이 계속 빠져나갑니다...
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
jwt.verify를 써서 토큰의 유효성을 확인하는 부분에 있어서 질문이 있습니다.
passport-jwt 라는 모듈을 설치해서 JWTStrategy 를 이용하여 하는 방법과의 차이가 있나요?? 둘다 비슷해보여서 질문드립니다.
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
귓속말 보내기 질문입니다.
메세지는 정상적으로 보내집니다. 하지만 저런 알림 표시가 뜨고 클릭해야지 메시지가 출력됩니다. 코드도 정삭적으로 작동합니다.
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
세션ID가 변합니다
다른 네임스페이스에 접속하면 세션ID가 변합니다. 어떻게 해결해야 하나요? axios나 cookie-signature같은 건 교과서보면서 그대로 따라 했습니다. const signedCookie = cookie.sign( req.signedCookies['connect.sid'], process.env.COOKIE_SECRET ); const connectSID = `${signedCookie}`; console.log('연결ID :', connectSID); axios.post(`http://localhost:8005/room/${roomId}/join`, { headers: { Cookie: `connect.sid=s%3A${connectSID}` } }) app.use((req, res, next) => { if (!req.session.color) { const colorHash = new ColorHash(); req.session.color = colorHash.hex(req.sessionID); } console.log('세션ID: ', req.sessionID); console.log('유저ID: ', req.session.color); next(); }); 이상한점은 채팅을 칠 때에는 처음 받은 세션으로 등록됩니다. 입장과 퇴장 시에만 세션이 변경됩니다
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
React 에서 진행 시
auth.js 에서 질문드립니다. 1.react 로 진행한 경우 render 에 html을 생성하는 템플릿을 사용하지 않은 것으로 찾았습니다. react는 react-router에서 전환 하는 방식을 사용하기 때문에. 그래서 고민하던 중 생각난 것은 page.js 부분과 auth.js 부분에서 render 와 redirect를 모두 제거하고 isLoggedIn 와 isNotLoggedIn을 Json으로 보내 프론트 쪽에서 redirect를 진행하고, 마찬가지로 템플릿을 이용한 render를 통한 html생성도 react에서 json으로 요청 값을 확인하여 어떤 값을 보여 줄지 정하려고 합니다... 이렇게 생각하고 진행해도 괜찮을까요?2.node.js 에서 주소를 지정해주는 것과 react-router를 이용해 주소를 지정해주는 것은 다른것으로 확인했습니다. react-router는 실제 주소가 아니라 마치 진짜 주소처럼 보이게 해주는 것이다. 그래서 프론트에서만 따로 진행 했을 경우에는 주소 변경에도 문제 없이 작동하는데 node.js을 통해 실행한 다음에 주소의 변경은 문제가 발생하네요... 아니면 각각 설정할 수 있는 방법이 있나요? React build를 이용해서 nodejs연결 했습니다. 그러다 보니 html파일이 하나로만 나와서 어떻게 찾아야할지 모르겠습니다....
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
채팅 입력시 새로고침 해야 입력한 채팅 내용이 보이는 에러입니다!
안녕하세요 제로초님 강의를 보면서 사이드 프로젝트에 채팅을 적용하고 있습니다. 사이드 프로젝트에 적용하는 상황이라서 경로를 '/chat'으로 설정해서 리다이렉션하는 모든 경로를 수정해서 화면은 모두 잘 나오고 있습니다! 그런데 실제로 채팅방에 입장해서 채팅을 입력하면 화면은 그대로이고, 새로고침을 해줘야 제가 입력한 채팅이 보이는 상황입니다. 혹시나해서 chat.html에 입력을 하고 [전송]버튼을 누르면 window.location.reload(); 리로드 처리로 화면을 다시 보여주고 있긴 한데, 새로고침을 하지 않고 채팅을 바로 보여주고 싶습니다. 혹시 어떤 부분을 놓친걸까요?? <chat.html 코드> https://docs.google.com/document/d/1XCXNtRnmGSSXTZ1iYf9w3XsaqYQTBhc4q9PiGlYkrwo/edit?usp=sharing
- 미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
채팅방 접근시 발생하는 에러입니다
안녕하세요 제로초님! 강좌를 보면서 코드를 작성하다가 제가 사이드 프로젝트로 nodejs - html로 작은 사이트를 만들고 있습니다. 거기에 제로초님의 코드를 적용한 후에 조금 응용을 해보려고 하는데 방을 생성하고 들어오면 아래와 같은 에러가 발생합니다. /Users/jasonkim/Documents/GitHub/nodeJs_prac02/socket.js:40 chat: `${req.session.color}님이 입장하셨습니다.`, ^ TypeError: Cannot read properties of undefined (reading 'color') 혹시 어떤 부분을 놓친걸까요??? <에러메시지> chat 네임스페이스에 접속 /Users/jasonkim/Documents/GitHub/nodeJs_prac02/socket.js:40 chat: `${req.session.color}님이 입장하셨습니다.`, ^ TypeError: Cannot read properties of undefined (reading 'color') at Namespace.<anonymous> (/Users/jasonkim/Documents/GitHub/nodeJs_prac02/socket.js:40:28) at Namespace.emit (node:events:526:28) at Namespace.emitReserved (/Users/jasonkim/Documents/GitHub/nodeJs_prac02/node_modules/socket.io/dist/typed-events.js:56:22) at /Users/jasonkim/Documents/GitHub/nodeJs_prac02/node_modules/socket.io/dist/namespace.js:141:26 at processTicksAndRejections (node:internal/process/task_queues:78:11)