묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
버전이 다른데 어떤 식으로 학습하는게 좋을까요?
Nextjs 버전을 내리고 강의 버전과 똑같이 맞춰서 사용할 지, 아니면 문법을 수정하여 학습해야 할 지 모르겠습니다.. index.tsx 구조 다른거부터 머리아프네요 ㅜㅜ... 강의에서 사용하신 버전도 알려주세요!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
섹션 1 관련 강의 노트는 없는지요?
안녕하세요. 강의를 듣고 있는 수강생 입니다. 강의 관련 기본 지식이 부족하다 보니, 여러 번 듣게 되는데요. 섹션 1에 대한 강의노트가 없는 것 같습니다. (draw.io diagram file)혹시 받을 수 있는지 문의 드립니다. 감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
노션 과제에 대한 해설을 볼 수 있는 곳이 있나요?
안녕하세요.이번 강의를 신청하고 듣고있는데요.과제를 풀어보려고 하는데 그에대한 정답이나 해설에 대해서 안내되어있는것이 있는지 궁금합니다.
-
미해결조코딩의 코딩 기초와 웹 풀스택 개발
애니메이트 css 질문입니다.
애니메이트 css에서class="animate__animated animate__bounce" 따서 불여넣기 했는데 바운스가 안걸립니다.조코딩님 강의에는 버튼 타입이 걸려있는데 이건 어떻게 적용하는지요,,?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
dialect: "mysql" 오타없이 잘 입력했고, mysql2도 node_modules 안에 잘 깔려 있는데 뭐가 문제일까요..
vim env 까지 진행 해서 password까지는 문제 없이 실행이 되어서, dialect: "mysql" 여기까지 실행이 되다가 에러가 뜬 거 같거든요..ubuntu@ip-172-31-15-69:~$ cd serverjs-nextproject/ ubuntu@ip-172-31-15-69:~/serverjs-nextproject$ npx sequelize db:create Sequelize CLI [Node: 14.21.3, CLI: 6.6.0, ORM: 6.28.0] Loaded configuration file "config/config.js". ERROR: Dialect undefined does not support db:create / db:drop commands ubuntu@ip-172-31-15-69:~/serverjs-nextproject$ ls app.js controllers models node_modules package.json routes config index.js mysql-apt-config_0.8.13-1_all.deb package-lock.json passport uploads ubuntu@ip-172-31-15-69:~/serverjs-nextproject$ cd node_modules/ ubuntu@ip-172-31-15-69:~/serverjs-nextproject/node_modules$ ls @mapbox encodeurl memoizee safe-buffer @types es5-ext merge-descriptors safer-buffer abbrev es6-iterator methods semver accepts es6-symbol mime send agent-base es6-weak-map mime-db seq-queue ansi-regex escalade mime-types sequelize ansi-styles escape-html minimatch sequelize-cli anymatch etag minimist sequelize-pool append-field event-emitter minipass serve-static aproba express minizlib set-blocking are-we-there-yet express-session mkdirp setprototypeof array-flatten ext moment side-channel at-least-node fill-range moment-timezone sigmund balanced-match finalhandler morgan signal-exit basic-auth forwarded ms simple-update-notifier bcrypt fresh multer sqlstring bignumber.js fs-extra mysql statuses binary-extensions fs-minipass mysql2 streamsearch bluebird fs.realpath named-placeholders string-width body-parser function-bind negotiator string_decoder brace-expansion gauge next-tick strip-ansi braces generate-function node-addon-api supports-color buffer-from get-caller-file node-fetch supports-preserve-symlinks-flag busboy get-intrinsic nodemon tar bytes glob nopt timers-ext call-bind glob-parent normalize-path to-regex-range chokidar graceful-fs npmlog toidentifier chownr has object-assign toposort-class cli-color has-flag object-inspect touch cliui has-symbols on-finished tr46 color-convert has-unicode on-headers type color-name http-errors once type-is color-support https-proxy-agent parseurl typedarray commander iconv-lite passport uid-safe concat-map ignore-by-default passport-local umzug concat-stream inflection passport-strategy undefsafe config-chain inflight path-is-absolute universalify console-control-strings inherits path-parse unpipe content-disposition ini path-to-regexp util-deprecate content-type ipaddr.js pause utils-merge cookie is-binary-path pg-connection-string uuid cookie-parser is-core-module picomatch validator cookie-signature is-extglob process-nextick-args vary core-util-is is-fullwidth-code-point proto-list webidl-conversions cors is-glob proxy-addr whatwg-url d is-number pseudomap wide-align debug is-promise pstree.remy wkx delegates is-property qs wrap-ansi denque isarray random-bytes wrappy depd js-beautify range-parser xtend destroy jsonfile raw-body y18n detect-libc lodash readable-stream yallist dotenv long readdirp yargs dottie lru-cache require-directory yargs-parser editorconfig lru-queue resolve ee-first make-dir retry-as-promised emoji-regex media-typer rimraf ubuntu@ip-172-31-15-69:~/serverjs-nextproject/node_modules$ mysql-apt-config_0.8.13-1_all.deb, mysql, mysql2 다 잘 깔려 있는데 도대체 모가 문제일까요...ㅠㅠ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
front pm2 에러
프론트로 sudo npx pm2 monit 하면 이런 에러가 뜨는데 PostCard에 문제가 있는걸까요? 지금 처음 데이터는 이런식으로 불러오고있습니다
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
[공유] Post 수정 취소 후 다시 수정시 이전 수정 값이 남아 있는 문제 해결
PostCardContent에서 취소 버튼을 클릭시 바로 onCancelUpdate()를 하게 되면 editText의 값이 리셋되지 않습니다.그래서 다시 수정 버튼을 클릭하면, TextArea에 postData가 보이는 것이 아닌, 이전에 수정을 하려다가 취소할 당시의 값이 남아있게 됩니다! (해당 내용은 제로초님 sleact 레파지토리에 pull request 하였습니다.) 취소 버튼 클릭시 editText를 리셋하고 onCancelUpdate를 실행할 함수를 만들어주면 됩니다!const onClickCancel = useCallback(() => { setEditText(postData); onCancelUpdate(); });<Button type="danger" onClick={onClickCancel}>취소</Button>
-
해결됨탄탄한 백엔드 NestJS, 기초부터 심화까지
Pipe와 middleware와의 차이가 무엇일까요 ?
Pipe와 Middleware 둘다 클라이언트로부터 데이터를 받는다면, 데이터를 중간중간 가공하여 처리하는것으로 이해하고있습니다.허나 Pipe는 주로 유효성검사같은 타당성 검사에 촛점을 맞춘것일까요 ?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
getResponse() 메소드 질문입니다.
해당 강의에서 'api broken' 메세지를 내보낼때, throw가 에러를 인위적으로 에러를 던지는것은 알고있으나, 여기서 던진 에러를 어떻게 받아서 'api broken'을 출력시키는지 감이 올듯 안올듯 한데,exception 안에 getResponse()라는 메소드가 그 던진 에러를 받아주는 역할을 하는게 맞는것일까요 ?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
안녕하세요 git 설치 오류입니다.
git 설치 이후 vscode에서 터미널 변환이 안될때 git 최신버전 설치 완료vscode 재실행 완료 터미널 1개 추가 후 git bash로 변환시 목록에 안보임
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
geolocation 메소드 사용 시 콘솔창 알림
지올로케이션으로 위치 나타내는 함수 배우는데콘솔창 맨 위에[Violation] Only request geolocation information in response to a user gesture. 이렇게라고 떠요. 해당 자바스크립트 번호 보니까 딱히 문제 될 것도 없고 강사님이랑 똑같이 적었는데 왜 저렇게 뜰까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
rerender
emotion에 props 던지기 및 setState의 작동원리강의 49분경 설명에서.... 작성자,제목,내용 인풋창에 q,q,q를 입력하는 과정에서최종적으로 내용인풋에 q입력할때 처음에는 contents값이 없는 상태로 렌더링이 일어나고 42번째 함수가 종료가 될때, (임시로 저장해두었던 q) contents를 q로 바꾸라고 알아들어서 바꾸면 한번더 리렌더링이 일어나서 contents 값이 q가되어 있으므로 44번째 if문이 실행이 되어서 45번째 setMycolor가 실행이 되고, 또 다시 setMycolor가 바뀌므로 리렌더링 일어나서 버튼색이 노란색으로 바껴야 하는거 아닌가요? 왜 내용에 qw를 입력하는 순간 이 일이 일어나나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
나의 상품 카운트 API 질문
안녕하세요. 언제나 좋은 강의 감사합니다! 다름이 아니라 section 14 과제인 마이페이지를 구현하는 중인데 나의 상품 페이지 pagination에 사용할 내 장터-나의 상품 count API는 어떤 걸 쓰면 될까요? 다른 페이지에서 사용할 count API는 모두 있는 것 같데 나의 상품만 없는 건지 제가 못 찾고 있는 건지 모르겠네요..
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
클라이언트와 서버를 Docker로 배포할 시 보안 관련 질문 드립니다.
강의에서 좀 더 나아가 클라이언트와 서버도 도커 환경으로 구축?을 해보려고 합니다.계획은 Docker hub private repo에 Dockerfile로 빌드된 이미지를 push하고 ec2인스턴스에서 docker-compose up으로 pull을 받으려고 합니다. 간단히 테스트를 해보니 제대로 실행은 되고 있으나 보안적인 부분에 있어 문제될 것이 있나 궁금하여 질문 드립니다.답변 주시면 감사하겠습니다.감사합니다~
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
s3 연결하기 강의 중에
안녕하세요 제로초님 항상 질문에 빨리 답변 달아주셔서 감사합니다. 백엔드에 문제가 있는거 같은 pm2 monit은 아래와 같이 뜹니다 const express = require("express"); const session = require("express-session"); const cookieParser = require("cookie-parser"); const cors = require("cors"); const app = express(); const postRouter = require("./routes/post"); const userRouter = require("./routes/user"); const postsRouter = require("./routes/posts"); const hashtagRouter = require("./routes/hashtag"); const db = require("./models"); const passportConfig = require("./passport"); const passport = require("passport"); const dotenv = require("dotenv"); const morgan = require("morgan"); const path = require("path"); const hpp = require("hpp"); const helmet = require("helmet"); dotenv.config(); db.sequelize .sync() .then(() => { console.log("db 연결성공"); }) .catch(console.error); passportConfig(); //모드변경 if (process.env.NODE_ENV === "production") { app.use(morgan("combined")); app.use(hpp()); app.use(helmet({ contentSecurityPolicy: false })); app.use( cors({ origin: "http://sansbook.co.kr", credentials: true, }) ); } else { app.use(morgan("dev")); app.use( cors({ origin: true, credentials: true, }) ); } // app.use( // cors({ // origin: [ // "http://localhost:3000", // "http://sansbook.co.kr", // "http://43.200.92.114", // ], // credentials: true, // }) // ); app.use("/", express.static(path.join(__dirname, "uploads"))); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(cookieParser(process.env.COOKIE_SECRET)); app.use( session({ saveUninitialized: false, resave: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, domain: process.env.NODE_ENV === "production" && ".sansbook.co.kr", }, }) ); app.use(passport.initialize()); app.use(passport.session()); app.get("/", (req, res) => { res.send("hello express"); }); app.use("/posts", postsRouter); app.use("/post", postRouter); app.use("/user", userRouter); app.use("/hashtag", hashtagRouter); app.listen(80, () => { console.log("서버실행중!"); });
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
기초공사 1에서 버튼 컴프의 클래스네임
MyButton이라는 새로운 CSS를 만들어서 버튼에만 적용하고 싶은데, 검사에서 클래스 네임이 다른 3개는 나오는데 UI상에서는 .MyButton은 효과가 적용되는데 포시티브, 네거티브, 디폴트에는 적용이 안되요! ㅠㅠApp.css에서도 동일하게 적용이 안되네요,오타도 없고, 검사에서 나온 값 그대로 복붙했는데..왜이러춍? 임포트를 해도, 가장위에있는 .MyButton만 효과가 적용된 상태(폰트 패밀리 등)
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
회원가입시 500 에러
{ "name": "sansbook-back", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "dev": "nodemon app", "start": "cross-env NODE_ENV=production pm2 start app.js" }, "author": "jangsan", "license": "ISC", "dependencies": { "bcrypt": "^5.1.0", "cookie-parser": "^1.4.6", "cors": "^2.8.5", "cross-env": "^7.0.3", "dotenv": "^16.0.3", "express": "^4.18.2", "express-session": "^1.17.3", "helmet": "^6.1.5", "hpp": "^0.2.3", "morgan": "^1.10.0", "multer": "^1.4.5-lts.1", "mysql2": "^3.2.0", "passport": "^0.6.0", "passport-local": "^1.0.0", "pm2": "^5.3.0", "sequelize": "^6.30.0", "sequelize-cli": "^6.6.0", "session": "^0.1.0" }, "devDependencies": { "nodemon": "^2.0.22" } } const express = require("express"); const session = require("express-session"); const cookieParser = require("cookie-parser"); const cors = require("cors"); const app = express(); const postRouter = require("./routes/post"); const userRouter = require("./routes/user"); const postsRouter = require("./routes/posts"); const hashtagRouter = require("./routes/hashtag"); const db = require("./models"); const passportConfig = require("./passport"); const passport = require("passport"); const dotenv = require("dotenv"); const morgan = require("morgan"); const path = require("path"); const hpp = require("hpp"); const helmet = require("helmet"); dotenv.config(); db.sequelize .sync() .then(() => { console.log("db 연결성공"); }) .catch(console.error); passportConfig(); //모드변경 if (process.env.NODE_ENV === "production") { app.use(morgan("combined")); app.use(hpp()); app.use(helmet()); } else { app.use(morgan("dev")); } app.use( cors({ origin: ["http://localhost:3000", "sansbook.com", "http://15.164.99.87"], credentials: true, }) ); app.use("/", express.static(path.join(__dirname, "uploads"))); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(cookieParser(process.env.COOKIE_SECRET)); app.use( session({ saveUninitialized: false, resave: false, secret: process.env.COOKIE_SECRET, }) ); app.use(passport.initialize()); app.use(passport.session()); app.get("/", (req, res) => { res.send("hello express"); }); app.use("/posts", postsRouter); app.use("/post", postRouter); app.use("/user", userRouter); app.use("/hashtag", hashtagRouter); app.listen(80, () => { console.log("서버실행중!"); }); 회원가입 할떄 마다 500에러가 나는데 프론트 문제인가요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
logoutUser 로그아웃 방법
로그인은 가능한데 로그아웃은 어떻게 하는지 모르겠습니다 ㅠlogoutUser mutation으로 해도 에러가 떠서 찾아봐도 강의에 나와있지 않아서글 남깁니다!!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Aborting
git 저장소를 불러오는중에 Aborting떠서git reset --hard를 해도 계속 최신 커밋이 안뜹니다 ㅠㅠHEAD is now at 95de5ce Update: back start script계속 이게 뜨면서 pull해도 Aborting이 계속 나오네요 ㅠㅠ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
mysql_secure_installation 정책에 관해
제가 다른게시물 보고 https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04이거까지 했는데 계속 새로운 비밀번호 입력 하라고 뜨네요 ㅠㅠ이런 경우 어떻게 해야할까요 비밀번호도 보안수준에 맞게 했는데 계속 뜨네요 ㅠㅠ