묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨인터랙티브 개발 실무 끝장내기 [역량 강화편]
강의 올려 주셔서 너무 너무 감사합니다!
칼 구매 했습니다!
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
같은 값을 uid와 id에 두번 저장하는 이유는 무엇인가요?
chatRooms 데이터 베이스에 저장할때 생성한 key를 id컬럼에도 또 저장하는 이유가 무엇인가요??
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
nest 빌드 관련 질문입니다.
안녕하세요! 프론트일 경우 강의 그대로 package.json에 start랑 build 모두 cross-en=production이라고 했는데요, 백앤드일 경우 (nest.js) npm start랑, npm run start:prod에는 cross-env=production이라고 했는데 실수로 build는 안 채웠네요ㅠ 그런데 일단 백앤드에 올린 파일이 production용 파일이라 돌아가긴 잘 돌아갑니다. package.json 스크립트를 올바르게 작성한게 맞는지 궁금합니다. // package.json "scripts": { "prebuild": "rimraf dist", "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "cross-env NODE_ENV=production nest start", "start:dev": "cross-env NODE_ENV=dev nest start --watch", "start:debug": "cross-env NODE_ENV=dev nest start --debug --watch", "start:prod": "cross-env NODE_ENV=production pm2 start dist/main.js", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json" }, // app.module.ts envFilePath: process.env.NODE_ENV === 'dev' ? '.env.dev' : 'production' ? '.env' : '.env.test',
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
상속과 슈퍼-서브타입의 차이점?
안녕하세요 강사님, 강의의 흐름상 크게 중요한 것은 아닌 듯 하나 궁금한 점이 생겨 질문을 남깁니다. 객체지향 프로그래밍에서의 상속과 관계형 데이터베이스에서의 슈퍼-서브 타입의 차이점엔 어떤 것이 있는지 궁금합니다. 당장 떠오르는 바로는 RDB는 기능 단위를 포함하지 않기 때문에 오버라이딩/오버로딩이 존재하지 않는다는 것 정도가 떠오르는데요. 이 외에도 어떤 차이점이 이 둘을 다르게 만드는지 간략하게나마 설명을 구하고 싶습니다. 감사합니다.
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
firebase.auth().onAuthStateChanged()에 대해서 질문합니다.
안녕하세요. 항상 강의 잘보고 있습니다. 제 질문은 useEffect의 []안에 딱히 넣은 변수가 없어서 onAuthStateChanged는 한번만 실행된것 같은데 user가 바뀔때마다 바뀐 정보가 실시간으로 업데이트 되는 것인가요?? 어떻게 그게 가능한지 지금으로서는 잘 이해가 안되네요^^; onAuthStateChanged메소드 대신에 currentUser프로퍼티 사용하면 맨 처음 브라우저로 열었을때는 유저가 널로 오다가 두번째부터 그 전에 저장되어있던 유저가 오는데 그 이유는 무엇인지... onAuthStateChanged가 실시간 양방향 메소드라서 계속 통신하고 있는 거라면 어떤거는 실시간 양방향 통신을 하고 어떤거는 안하는데 어떻게 구분할 수 있는지 알 수 있을까요?? (죄송합니다ㅜ 머릿속이 혼란스러워 질문이 두서가 없네효...) 저는 Auth가 세션개념이라고 생각했는데.. 유저 전용 데이터베이스인가요??? 한번 로그인 하면 언제 다시 들어가도 유지 되는데 컴퓨터를 껏다 키면 로그인 정보 사라지게 할 순 없을까요?? ㅜ_ㅜ 또.. auth에 photoURL 업데이트하고 데이터베이스에 이미지URL 따로 저장하는 이유가 무엇인가요?? 이상입니다..
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
프론트 서버 배포 전 npm run build 시 에러 발생
강사님 지난번에 알려주신 next 설치 방법 토대로 강의 이어가는 중, 프론트 서버 배포 전 npm run build를 하면 위와 같은 에러가 발생합니다. about.js를 지운 것이 문제인가 해서 다시 넣어보고 git pull한 뒤 npm run build를 해도 같은 에러가 발생합니다. sudo npx pm2 start npm -- start 했을 때는 pm2가 정상적으로 작동하는 걸로 봐서 pm2 쪽 문제는 아니고 build에서 문제가 발생한 것으로 보이는데, 어느 부분이 문제일까요? npm run build 시 발생한 에러 코드 하단에 첨부하겠습니다. ubuntu@ip-172-31-12-20:~/react_twitter/prepare/front$ npm run build > react-nodebird-front@1.0.0 build /home/ubuntu/react_twitter/prepare/front > cross-env ANALYZE=true NODE_ENV=production next build Browserslist: caniuse-lite is outdated. Please run: npx browserslist@latest --update-db info - Using external babel configuration from /home/ubuntu/react_twitter/prepare/front/.babelrc Webpack Bundle Analyzer saved report to /home/ubuntu/react_twitter/prepare/front/.next/analyze/server.html Webpack Bundle Analyzer saved report to /home/ubuntu/react_twitter/prepare/front/.next/analyze/client.html info - Creating an optimized production build info - Compiled successfully info - Collecting page data [ ===] info - Generating static pages (0/2)getStaticProps { type: 'LOAD_USER_REQUEST', data: 1 } { type: '@@redux-saga/CHANNEL_END' } [====] info - Generating static pages (0/2)Error: connect ECONNREFUSED 127.0.0.1:3030 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 3030, config: { url: '/user/1', method: 'get', headers: { Accept: 'application/json, text/plain, */*', 'User-Agent': 'axios/0.21.1' }, baseURL: 'http://localhost:3030', transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, withCredentials: true, adapter: [Function: httpAdapter], xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, validateStatus: [Function: validateStatus], data: undefined }, request: <ref *1> Writable { _writableState: WritableState { objectMode: false, highWaterMark: 16384, finalCalled: false, needDrain: false, ending: false, ended: false, finished: false, destroyed: false, decodeStrings: true, defaultEncoding: 'utf8', length: 0, writing: false, corked: 0, sync: true, bufferProcessing: false, onwrite: [Function: bound onwrite], writecb: null, writelen: 0, afterWriteTickInfo: null, buffered: [], bufferedIndex: 0, allBuffers: true, allNoop: true, pendingcb: 0, prefinished: false, errorEmitted: false, emitClose: true, autoDestroy: true, errored: null, closed: false }, _events: [Object: null prototype] { response: [Function: handleResponse], error: [Function: handleRequestError] }, _eventsCount: 2, _maxListeners: undefined, _options: { maxRedirects: 21, maxBodyLength: 10485760, protocol: 'http:', path: '/user/1', method: 'GET', headers: [Object], agent: undefined, agents: [Object], auth: undefined, hostname: 'localhost', port: '3030', nativeProtocols: [Object], pathname: '/user/1' }, _ended: true, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 0, _requestBodyBuffers: [], _onNativeResponse: [Function (anonymous)], _currentRequest: ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: false, _last: true, chunkedEncoding: false, shouldKeepAlive: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, socket: [Socket], _header: 'GET /user/1 HTTP/1.1\r\n' + 'Accept: application/json, text/plain, */*\r\n' + 'User-Agent: axios/0.21.1\r\n' + 'Host: localhost:3030\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: noopPendingOutput], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, path: '/user/1', _ended: false, res: null, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'localhost', protocol: 'http:', _redirectable: [Circular *1], [Symbol(kCapture)]: false, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype] }, _currentUrl: 'http://localhost:3030/user/1', [Symbol(kCapture)]: false }, response: undefined, isAxiosError: true, toJSON: [Function: toJSON] } TypeError: Cannot read property 'data' of undefined at loadUser (/home/ubuntu/react_twitter/prepare/front/.next/server/pages/_app.js:606:27) at loadUser.throw (<anonymous>) at next (/home/ubuntu/react_twitter/prepare/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:1071:32) at currCb (/home/ubuntu/react_twitter/prepare/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:1196:7) at /home/ubuntu/react_twitter/prepare/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:347:5 at processTicksAndRejections (internal/process/task_queues.js:93:5) The above error occurred in task loadUser created by takeLatest(LOAD_USER_REQUEST, loadUser) created by watchLoadUser created by userSaga created by rootSaga Error occurred prerendering page "/about". Read more: https://err.sh/next.js/prerender-error TypeError: Cannot read property 'data' of undefined at loadUser (/home/ubuntu/react_twitter/prepare/front/.next/server/pages/_app.js:606:27) at loadUser.throw (<anonymous>) at next (/home/ubuntu/react_twitter/prepare/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:1071:32) at currCb (/home/ubuntu/react_twitter/prepare/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:1196:7) at /home/ubuntu/react_twitter/prepare/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:347:5 at processTicksAndRejections (internal/process/task_queues.js:93:5) > Build error occurred Error: Export encountered errors on following paths: /about at exportApp (/home/ubuntu/react_twitter/prepare/front/node_modules/next/dist/export/index.js:25:1103) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async build (/home/ubuntu/react_twitter/prepare/front/node_modules/next/dist/build/index.js:39:69) [ ] info - Generating static pages (0/2)npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! react-nodebird-front@1.0.0 build: `cross-env ANALYZE=true NODE_ENV=production next build` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the react-nodebird-front@1.0.0 build script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/ubuntu/.npm/_logs/2021-02-25T07_24_14_025Z-debug.log
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
SignupPage.vue 임포트
임포트 구문 작성하실 때.. import SignupForm from '@/components/common/SignupForm.vue'; common 이 빠진 것 같네요.. 왜 안되는지 엄청 찾았네요..
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_EventHandler에 대해서
안녕하세요!! 항상 친절한 답변 감사드립니다. 복습하다가 문득 궁금한 점이 생겨 질문드립니다! Player의 경우 InputManager안에 있는 OnUpdate함수를 Manager에서 계속 update해주면서 Input을 감지하는 반면 UI의 경우 EventHandler를 두고 UI에서 발생할 수 있는 동작을 정의하여 해당 동작을 EventHandler에서 Inuput을 감지하는 것으로 보입니다..! 이렇게 Input을 받아들이는 방식을 다르게 하신 이유는 통상적인 게임 디자인 방식인건가요?? 아니면...UI는 마우스를 활용한 Input만 이루어지기 때문에 PointerData를 사용할 수 있어서 인가요..? 그렇다면 Player_EventHandler를 따로 두고 Action<키보드입력을 받을 클래스>를 활용하는방법은 없나요...? 질문이 너무 꼬리를 무는 것 같아 정신없네요...죄송합니다.. 답변 부탁드립니다!
-
미해결자바 기본을 위한 강의 1부
안녕하세요. 강사님
복습중인대요.. 수업중에 바닐라 자바스크립트를 잠깐 언급하셨는데. 자바스크립트는 실무에서 어느 정도까지 알고있어야 하는지 궁금합니다.. 신입은 일단 웹페이지 구현에서 쓰이는 정도까지만 알면 될까요?
-
미해결Node.js (노드제이에스) 강좌
5초 설정후 캡쳐해서 보냈습니다
(사진)
-
미해결인터랙티브 웹 개발 제대로 시작하기
js 코드의 순서 질문 있습니다!
문득 궁금한게 있어 질문드립니다 문법 관련 질문인데요ㅜㅜ [ 0:32 ] 정도에 아래 prototype에서 정의해 놓은 this.init(); 을 정의문보다 먼저 호출하는데, prototype의 init 함수는 호출문보다 밑에 정의해놓았는데 어떻게 먼저 실행할 수 있는건지 궁금합니다! ( 지난번 강의에서 브라우저가 html, css, js을 실행할 때 위 -> 아래의 순서로 실행되기 때문에, <script>태그를 html 태그 하단에 작성하는 것이 좋다는 말씀이 생각나서요..! ) 혹시 js가 컴파일??을 먼저 거치고 나서 이후에 실행되는 것이기 때문에 가능한 것일까요??
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
orm , query
orm 을 사용하게 되면 간편하게 query 문법을 몰라도 간편하게 짤수있다는 장점이 있을것같은데여 , 단지 그러한 장점으로 orm 을 사용하는걸까요 ?? 보안이나 , 어떤 메모리 측면에서.. 좀더 orm 이 더 나을려나 ..생각도 들고.. raw query 로 짜는것과 orm 을 사용하는것의 차이점이 무엇이 있을까요 ?? 그리고 제로초님이 권장하는 방법에는.. 그니깐 어떠한상황에서는 raw query 를 사용하는것이 좋을것같고 어떤 상황에서는 orm 을 짜는게 좋을것같다. 그러한 규칙들이 있을까요 ?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
파이썬래퍼 XGBoost 예측할 때 넣어주는 인자값
pred_probs = xgb_modle.predict(dtest) 파이썬래퍼 XGBoost 예측할 때 넣어주는 인자값이 dtest 인데 dtest는 xgb.DMatrix(data=X_test, labe=y_test)인데.. dtest를 넣어줬지만 그 안에 data=X_test 이것만 사용하는 건가요??
-
미해결
SpringBoot + React 강의관련 질문드립니다.
Spring Boot 와 React를 이용해서 웹화면(웹앱)을 토이프로젝트로 해보고 싶은데 강의 목록에 검색을 해도 안나오는거 같아서 질문드립니다. 혹시 어떻게 검색해야 나오는지 알수 있을까요??
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
질문있습니다
안녕하세요. 제로초님 지금 서버의 형태가 web server인지 api서버인지 궁금합니다. 보통 웹서버가 클라이언트 요청이 들어왔을 때, html과 같은 페이지들을 제공하는 것이라고 알고 있고, api서버는 클라에서 들어오는 이벤트 같은 것을 처리하는 역할을 하는 서버인걸로 알고 있는데요.! 지금 서버 같은 경우, 페이지도 제공하고 이름 등록/수정과 같은 기능들도 처리하고 있는데,, 어떤 서버의 형태라고 정의할 수 있을까용..!
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
colab IPython.display Video 설치 관련
안녕하세요 선생님 opencv 실습 중에 video를 실행하려고 하는데 import 해오는 과정에서 아래와 같은 오류가 뜹니다 cannot import name 'Video' from 'IPython.display' (/usr/local/lib/python3.7/dist-packages/IPython/display.py) 답변 부탁드립니다. 감사합니다!
-
미해결Node.js 교과서 - 기본부터 프로젝트 실습까지
게시물 올리기 오류
글을 쓰고 올리는 버튼을 누르면 이런식으로 되는데 어떻게 해야하나요..
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
feature importace 그림에서 y축
선생님~ y축이 원래 feature name 으로 보이게 하려면 어떻게 해야 하나요..? 그리고 지금 y축에서 보여지는 f2.1, f1 , f1.3 ... 이런건 뭘 의미하는 건가요?
-
미해결Razor Pages 멤버십 서비스 초급과정(.NET5)
Guid에 관하여
안녕하세요. 강의 잘 듣고 있습니다. 완전 초보자여서 저에게는 용어들, 메소드 들 등이 생소하기에 난이도가 있습니다. ㅜㅠ Guid 가 어떤 역할을 하기에 이 부분에서 사용되는건지 궁금합니다. 그리고 더불어 생성자가 2개인데 위의 것은 왜 값이 null인지도 알려주시면 고맙겠습니다.^^
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
XGBoost의 여러학습기는 모두 트리기반인건가요~?
XGBoost에서 (GBM을 기반으로 하니)여러학습기는 모두 트리기반인건가요~?! 이점은 랜덤포레트스와 비슷하다고 볼 수 있겠네요..? 그리고 학습기가 돌아가는 방식이 다른점이.. 랜덤포레스트는 병렬구조로 돌아가서 수행이 빠르고, GBM은 학습기별로 순차적으로 학습-예측하면서 잘못예측한 데이터에 가중치 부여하면서 가서 수행속도가 느린거지요~?