묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
입력 값과 시간 복잡도 관해서 여쭙습니다!
다름이 아니라 이 입력값 N이 30인 경우,연산에 매우 오랜시간이 걸리더라구요!2중 반복문을 사용해서 구하는게 시간 복잡도상 이상적인 것인가요?아니면 DP를 사용하는 방법을 고려해야 되는건가여??
-
미해결몇 줄로 끝내는 인터랙티브 웹 개발 노하우 [초급편]
코드가 미리보기로 보여주는 확장프로그램이 뭔가요?
코드가 미리보기로 보여주는 확장프로그램이 뭔가요?
-
미해결
socket.io 실행
안녕하세요채팅을 구현하기위해 socket.io를 썼는데 통신이 안되는 것같습니다 io에 주소를 제대로 넣었고 서버 on 마다 클라이언트에서 emit으로 작성했는데 작동하지 않습니다 이유가 무엇일까요? // server 파일의 코드입니다 require('dotenv').config(); const { createApp } = require('./app'); const { appDataSource } = require('./models/index'); const startServer = async () => { const app = createApp(); const PORT = process.env.PORT; await appDataSource .initialize() .then(() => { const server = app.listen(PORT, () => { console.log(`🟢server is listening on ${PORT}🟢`); }); const io = require('socket.io')(server, { cors: { origin: true, credentials: true, }, }); const { socketMessage } = require('./middlewares/socket.io'); socketMessage(io); }) .catch((err) => { console.log(`❌Failed server connect❌`); appDataSource.destroy(); }); }; startServer(); // server의 socket 파일의 코드입니다 const jwt = require('jsonwebtoken'); const chatDao = require('../models/chatDao'); const { catchAsync } = require('../utils/error'); const socketMessage = (io) => { io.use((socket, next) => { const token = socket.handshake.headers.authorization; if (!token) { return next(new Error('Authentication error')); } jwt.verify(token, process.env.SECRET_KEY, async (err, decoded) => { if (err) { return next(new Error('Authentication error')); } userId = decoded.userId; next(); }); }); io.on('connection', (socket) => { console.log('A User Connected.'); socket.on( 'create_room', catchAsync(async (postId, callback) => { const room = await chatDao.createRoom(userId, postId); socket.join(room.raw.insertId); callback(room.raw.insertId); }) ); socket.on( 'enter_room', catchAsync(async (roomId, callback) => { socket.join(roomId); callback(roomId); }) ); socket.on('new_text', async (content, roomId, callback) => { await chatDao.createChat(userId, content, roomId); socket.to(roomId).emit('new_text', content); callback(content); }); socket.on('disconnect', () => { console.log('접속이 해제되었습니다', socket.id); clearInterval(socket.interval); }); socket.on('error', (error) => { console.error(error); }); socket.on('send', (data) => { console.log(data); socket.emit('reply', { data, }); }); socket.interval = setInterval(() => { socket.emit('news', 'Hello Socket.IO'); }, process.env.SOCKET_INTERVAL || 1000); }); }; module.exports = { socketMessage }; // client 코드입니다import React, { useState, useContext } from 'react'; import io from 'socket.io-client'; import './chat.css'; import { MenuContext } from '../../components/Nav/MenuProvider'; const Token = localStorage.getItem('accessToken'); const socket = io.connect('http://192.168.0.194:4000', { withCredentials: true, extraHeaders: {Authorization: `Bearer ${Token}` } appDataSource.destroy(); }), }); socket.on('connection', () => { console.log('Connected to server'); }); const Chat = () => { const [roomId, setRoomId] = useState([]); const [searchData, setSearchData] = useContext(MenuContext); const handleCreateRoom = event => { event.preventDefault(); socket.emit('create_room', searchData, ({ searchData, roomId }) => { console.log(`Joined room ${roomId}`); setRoomId(roomId); }); }; const handleJoinRoom = roomId => { socket.emit('enter_room', roomId, roomId => { console.log(`Joined room ${roomId}`); setRoomId(roomId); }); }; const handleNewText = content => { socket.emit('new_text', content, roomId, content => { console.log(`Sent message: ${content}`); }); }; const handleNewText = content => { socket.emit('new_text', content, roomId, content => { console.log(`Sent message: ${content}`); }); }; const onCheckEnter = e => {if (e.key === 'Enter') { handleNewText(); } }; return ( <div className="h-screen pt-36"> <button onClick={handleCreateRoom}>테스트</button> <button onClick={() => handleJoinRoom(roomId)}>테스트2</button> <input id="input-text" type="text" onKeyDown={onCheckEnter} /> <button onClick={handleCreateRoom}>제출</button> </div> ); }; export default Chat;
-
해결됨[코드캠프] 시작은 프리캠프
회원가입 과제 질문
선생님 강의 잘 보고 있습니다. 다름이 아니라 몇 가지 여쭤보고 싶어 글을 올리게 되었습니다. 정답코드를 따로 볼 수 있는 곳이 있을까요?제 위의 코드에서 문제점이 있을까요?button 기능이 활성화 되지 않는데 이유가 무엇인지 잘 모르겠습니다.<!DOCTYPE html> <html lang="ko"> <head> <title>Upgrade_sign_up_page</title> <style> #signup{ width: 1920px; height:1080px; background-color: #FFFFFF; /* border:1px solid red; */ display: flex; flex-direction: row; justify-content: center; align-items: center; } .main{ box-sizing: border-box; width : 670px; height : 960px; border : 1px solid #AACDFF; padding : 60px; box-shadow: 7px 7px 39px rgba(0,104,255,0.25); border-radius: 20px; display: flex; justify-content: center; } .main2{ width: 470px; height: 818px; /* border: 1px solid green; */ display : flex; flex-direction: column; align-items: center; } #introduce{ width: 466px; height: 94px; font-family: 'Noto Sans CJK KR'; font-style: normal; font-weight: 700; font-size: 32px; line-height: 47px; color : #0068FF } #group1{ width: 466px; height: 80px; /* border: 1px solid red; */ } #email{ width: 158px; height: 23.65px; font-family: 'Noto Sans CJK KR'; font-style: normal; font-weight: 400; font-size: 16px; line-height: 24px; color :#797979; } #vector1{ width: 466px; height: 0px; border: 1px solid #0068FF; } #sex{ width: 140px; height: 23.94px; display: flex; justify-content: space-between; font-family: 'Noto Sans CJK KR'; font-style: normal; font-weight: 400; font-size: 16px; line-height: 24px; color : #000000 /* border:1px solid #0068FF */ } #checkbox{ width: 454px; height: 21.06px; font-family: 'Noto Sans CJK KR'; font-style: normal; font-size: 13px; line-height: 21px; color : #000000 } #line{ width: 470px; height: 1px; background-color: #E6E6E6; } button{ width: 470px; height: 75px; background-color: #FFFFFF; border: 1px solid #0068FF; border-radius: 10px; display: flex; align-items: center; justify-content: center; } #button_text{ width: 70px; height: 27px; font-family: 'Noto Sans CJK KR'; font-style: normal; font-weight: 400; font-size: 17px; line-height: 27px; text-align: center; color : #0068FF } </style> </head> <body> <div id = "signup"> <div class = "main"> <div class = "main2"> <div id = "introduce"> 회원 가입을 위해<br>정보를 입력해주세요 </div> <br> <div id = "group1"> <div id = "email"> *이메일 </div> <input type ="text" style="border: none; width:200px;height: 50px;font-size: 30px;"> <div id = "vector1"></div> </div> <br> <div id = "group1"> <div id = "email"> *이름 </div> <input type ="text" style="border: none; width:200px;height: 50px;font-size: 30px;"> <div id = "vector1"></div> </div> <br> <div id = "group1"> <div id = "email"> *비밀번호 </div> <input type ="password" style="border: none; width:200px;height: 50px;font-size: 30px;"> <div id = "vector1"></div> </div> <br> <div id = "group1"> <div id = "email"> *비밀번호확인 </div> <input type ="password" style="border: none; width:200px;height: 50px;font-size: 30px;"> <div id = "vector1"></div> </div> <br><br> <div id = "sex"> <div> <input type = "radio" name = "gender">여성 </div> <div> <input type = "radio" name = "gender">남성 </div> </div> <br><br> <div id ="checkbox"> <input type = "checkbox"> 이용약관 개인정보 수집 및 이용, 마케팅 활용 선택에 모두 동의합니다. </div> <br><br> <div id = "line"></div> <br><br> <button> <div id = "button_text"> 가입하기 </div> </button> </div> </div> </div> </body> </html>
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
admin페이지에서 로그인이 안됩니다
예전에 로그인 됐었는데 로그아웃하고 다시 하려고 했더니 로그인이 안됩니다..
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
개발을 할 때 vue-til-server 에 있는 api 코드들은 백엔드 개발자가 프론트 개발자에게 작업해서 주게되나요?
개발을 할 때 vue-til-server 에 있는 api 코드들은 백엔드 개발자가 프론트 개발자에게 작업해서 주게되나요?만약 프론트개발자가 작업해야한다면 이부분은 어떤강의로 공부하면 될까요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
뒤죽박죽 올라가는 리스트 순서를 대비해 sort() API를 사용하라고 적어주셨는데 도저히 모르겠습니다..!
const storage = { fetch() { const arr = []; if(localStorage.length > 0){ for(let i = 0; i < localStorage.length; i++){ if(localStorage.key(i) !== 'loglevel:webpack-dev-server'){ arr.push(JSON.parse(localStorage.getItem(localStorage.key(i)))); } } } return arr; }, }; 답변 중 불러올 때 for 문을 돌리는데 순서 보장이 안된다고 하신 부분을 보고 위 쪽에 있는 for문을 말씀하신 건가 싶었고 그럼 이 부분에 있는 배열 arr에 sort()를 추가하는 건가? 싶었는데 제가 맞게 이해한 걸까요?sort라는 변수를 하나 추가한 뒤 arr.sort()를 넣은 후 return값에 arr대신 sort를 넣어보기도 했는데 잘못된 방 법인지 딱히 바뀌지 않더라구요.. 구글을 뒤져봐도 아직 못 찾아 좀 더 찾아보면서 질문도 함께 올려봅니다..
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
unexpected end of input
console.log("안녕하세요, 문자 인증번호 보내드립니다.") function createTokenOfPhone(myphone){ if(myphone.length !== 10 && myphone.length !== 11){ console.log("에러 발생! 핸드폰 번호를 제대로 입력해 주세요. ") return } const aaaa=6 if(aaaa === undefined){ console.log("에러 발생!!! 갯수를 제대로 입력해 주세요!!!") return } else if(aaaa <= 0){ console.log("에러 발생!! 갯수가 너무 적습니다!!") return }else if(aaaa > 10){ console.log("에러 발생!!! 갯수가 너무 많습니다!!!") return } const result = String(Math.floor(Math.random() * 10 ** aaaa)).padStart(aaaa,"0") console.log(result) console.log(myphone+ "번호로 인증번호" +result+ "를 전송합니다!!!") createTokenOfPhone("01012341234") 수업과 동일하게 코드를 작성했으나 아래와 같은 에러가 뜹니다. (base) c@Dui-c-G9C7V6620L 01-01-token % node index.js/Users/c/Desktop/codecamp-backend-03./class/01-01-token/index.js:25createTokenOfPhone("01012341234") SyntaxError: Unexpected end of input at internalCompileFunction (node:internal/vm:73:18) at wrapSafe (node:internal/modules/cjs/loader:1176:20) at Module._compile (node:internal/modules/cjs/loader:1218:27) at Module._extensions..js (node:internal/modules/cjs/loader:1308:10) at Module.load (node:internal/modules/cjs/loader:1117:32) at Module._load (node:internal/modules/cjs/loader:958:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47
-
미해결입문자를 위한 자바스크립트 기초 강의
수료 후 수업계획 문의드립니다.
강사님, 작년에 강의 듣다가 다시 듣게됐는데그때 놓쳤던 것들이 다시 보이기 시작했어요.뿌듯하게 입문 완료 했습니다!̆̈ .ᐟ 🎉🎉그런데 앞으로는 어떻게 공부하면 좋을지 모르겠습니다..쌤의 심화 강의가 있다면 듣고싶었는데자바스크립트는 기초밖에없는거 같아서요.. 🥲이후의 공부방법이나 강의 등등 추천 가능하실까요??
-
미해결Vue.js 시작하기 - Age of Vue.js
VUE CLI INSTALL 오류
안녕하세요 검색을 해도 아래와 같은 오류에 대한 가이드가 없어서 문의드립니다. verbose cli C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js 1 info using npm@8.19.3 2 info using node@v18.13.0 3 timing npm:load:whichnode Completed in 2ms 4 timing config:load:defaults Completed in 2ms 5 timing config:load:file:C:\Program Files\nodejs\node_modules\npm\npmrc Completed in 15ms 6 timing config:load:builtin Completed in 16ms 7 timing config:load:cli Completed in 2ms 8 timing config:load:env Completed in 2ms 9 timing config:load:file:C:\GitHubTemp\.npmrc Completed in 0ms 10 timing config:load:project Completed in 3ms 11 timing config:load:file:C:\Users\y1126.kim\.npmrc Completed in 0ms 12 timing config:load:user Completed in 1ms 13 timing config:load:file:C:\Users\y1126.kim\AppData\Roaming\npm\etc\npmrc Completed in 0ms 14 timing config:load:global Completed in 1ms 15 timing config:load:validate Completed in 0ms 16 timing config:load:credentials Completed in 1ms 17 timing config:load:setEnvs Completed in 1ms 18 timing config:load Completed in 30ms 19 timing npm:load:configload Completed in 30ms 20 timing npm:load:mkdirpcache Completed in 2ms 21 timing npm:load:mkdirplogs Completed in 1ms 22 verbose title npm i @vue/cli-service 23 verbose argv "i" "@vue/cli-service" 24 timing npm:load:setTitle Completed in 2ms 25 timing config:load:flatten Completed in 4ms 26 timing npm:load:display Completed in 7ms 27 verbose logfile logs-max:10 dir:C:\Users\y1126.kim\AppData\Local\npm-cache\_logs 28 verbose logfile C:\Users\y1126.kim\AppData\Local\npm-cache\_logs\2023-03-27T04_58_26_832Z-debug-0.log 29 timing npm:load:logFile Completed in 22ms 30 timing npm:load:timers Completed in 0ms 31 timing npm:load:configScope Completed in 0ms 32 timing npm:load Completed in 66ms 33 timing arborist:ctor Completed in 3ms 34 silly logfile start cleaning logs, removing 2 files 35 silly logfile done cleaning log files 36 timing arborist:ctor Completed in 0ms 37 timing idealTree:init Completed in 58ms 38 timing idealTree:userRequests Completed in 4ms 39 silly idealTree buildDeps 40 silly fetch manifest @vue/cli-service@* 41 silly placeDep ROOT @vue/cli-service@ OK for: want: * 42 timing idealTree:#root Completed in 133202ms 43 timing idealTree:node_modules/@vue/cli-service Completed in 0ms 44 timing idealTree:buildDeps Completed in 133203ms 45 timing idealTree:fixDepFlags Completed in 0ms 46 timing idealTree Completed in 133267ms 47 timing command:i Completed in 133306ms 48 verbose type system 49 verbose stack FetchError: request to https://registry.npmjs.org/@vue%2fcli-service failed, reason: connect ETIMEDOUT 104.16.19.35:443 49 verbose stack at ClientRequest.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\minipass-fetch\lib\index.js:130:14) 49 verbose stack at ClientRequest.emit (node:events:513:28) 49 verbose stack at TLSSocket.socketErrorListener (node:_http_client:496:9) 49 verbose stack at TLSSocket.emit (node:events:525:35) 49 verbose stack at emitErrorNT (node:internal/streams/destroy:151:8) 49 verbose stack at emitErrorCloseNT (node:internal/streams/destroy:116:3) 49 verbose stack at process.processTicksAndRejections (node:internal/process/task_queues:82:21) 50 verbose cwd C:\GitHubTemp 51 verbose Windows_NT 10.0.19042 52 verbose node v18.13.0 53 verbose npm v8.19.3 54 error code ETIMEDOUT 55 error syscall connect 56 error errno ETIMEDOUT 57 error network request to https://registry.npmjs.org/@vue%2fcli-service failed, reason: connect ETIMEDOUT 104.16.19.35:443 58 error network This is a problem related to network connectivity. 58 error network In most cases you are behind a proxy or have bad network settings. 58 error network 58 error network If you are behind a proxy, please make sure that the 58 error network 'proxy' config is set properly. See: 'npm help config' 59 verbose exit 1 60 timing npm Completed in 134110ms 61 verbose unfinished npm timer reify 1679893107628 62 verbose unfinished npm timer reify:loadTrees 1679893107659 63 verbose code 1 64 error A complete log of this run can be found in: 64 error C:\Users\y1126.kim\AppData\Local\npm-cache\_logs\2023-03-27T04_58_26_832Z-debug-0.log
-
미해결조코딩의 코딩 기초와 웹 풀스택 개발
이번에 새로 결제 했는데요. 강의자료 다운로드 링크 오류같습니다.
이번에 새로 결제 했는데요. 강의자료 다운로드 링크 오류같습니다 답변 부탁드려요
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한 재요청ㅡㅜ
초대장을 확인을 못해서 초대장이 소멸되었네요.ㅠㅠ 다시 부탁드립니다.인프런 아이디 : kik1611인프런 이메일 : kik1611@nate.com깃헙 아이디 : kik87827@gmail.com깃헙 Username : kik87827
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이것도 선택정렬이 맞는건가요?
function solution(arr) { let answer = arr; for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { if (answer[i] > answer[j]) { let tmp = answer[j]; answer[j] = answer[i]; answer[i] = tmp; } } } return answer; } let arr = [13, 5, 11, 7, 23, 15]; console.log(solution(arr));강의를 한번 다 보고 다시 안보고 푸는 중인데, 이렇게 해도 답은 나오더라구요, 이것도 선택정렬이 맞는건가요?
-
미해결Vue.js 시작하기 - Age of Vue.js
화면에 내용이 보이지 않는 오류 발생
<div id="app"> <app-header></app-header><app-content></app-content><app-footer></app-footer></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> //전역 컴포넌트 Vue.component('app-header',{ template:'<h1>Header</h1>' }); Vue.component('app-content',{ template:'<div>content</div>' }); 이렇게 적어서 live server로 확인해보면 화면에 아무것도 안뜨는데, script 코드 문제일까요..?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
graphql 접속문제
https://practice.codebootcamp.co.kr/graphql 는 사용을 못하는데 그럼 과제 연습은 못하나요?
-
해결됨[코드캠프] 입문자를 위한 Javascript 알고리즘 이론+실습
블로그 작성해도 되나요?
안녕하세요~혹시 학습 내용 바탕으로 블로그 작성해도 되나요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
3분 쯤 catch함수에 console.error가 안되네요
타이핑은 똑같이 했습니다.. catch함수 빼면 나머지는 동작됩니다
-
미해결처음 만난 리액트(React)
목소리 너무 좋습니다
마음이 안정 됩니다 너무 설명도 잘하고 쉽고 유료강의보다 5천억만배 최강으로 최고 입니다
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
리뷰 부탁드립니다.
function solution(a,b){ let answer=0 let n = a.length let m = b.length let len = lt = 0 let char='' let arr =[] let sH = new Map() for(x of b){ if(!sH.has(x)) sH.set(x,1) else sH.set(x, sH.get(x)+1) } for(let rt=0; rt<m; rt++){ char += a[rt] if(sH.has(a[rt])) { sH.set(a[rt], sH.get(a[rt])-1) } if(sH.get(a[rt])==0) { len++ } if(len == sH.size){ answer++ } if(!sH.has(a[rt])) sH.set(a[rt],1) else sH.set(a[rt], sH.get(a[rt])+1) } const copySh = sH console.log(copySh) for(let rt=m; rt<n; rt++){ lt++ char = a.substring(lt, rt) + a.substring(rt, rt+1) if(char.split('').sort().join('')===b){ answer++ } } return answer } let a="bacaAacba"; let b="abc"; console.log(solution(a, b)); 저는 첫번째만 문자열 3개 3개만 hash 사용하여 비교하고 나머지는 sort해서 같은지 비교하는데 이경우도 복잡도 O(n2)일지 궁금합니다..!잘듣고있습니다. 감사합니다
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
바로 res.json()을 리턴할 경우
안녕하세요 선생님 위의 코드는 잘 작동하지만 두번째 코드는 프로미스 객체자체를 반환하던데 어떤 차이가 있나요? 둘 다 res.json()을 콘솔에 띄우는 코드 아닌가요??let response = fetch("https://jsonplaceholder.typicode.com/posts") .then((res) => {return res.json();}).then((jsons) => {console.log(jsons);});==================================let responses = fetch("https://jsonplaceholder.typicode.com/posts").then( (res) => { console.log(res.json()); });