inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

미들웨어 관련 질문입니다.

해결됨

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

조현영님 강좌를 보던 중 express와 미들웨어 관련된 강좌를 보고 express를 사용해 서버를 만들던 도중에 막히는 부분이 있어서 질문해봅니다. (단순 에러 해결 질문은 아닙니다.) const axios = require ( " axios " ) ; const express = require ( " express " ) ; const path = require ( " path " ) ; const morgan = require ( " morgan " ) ; const app = express () ; const hostName = " 127.0.0.1 " ; const port = process . env . PORT || 5147 ; require ( " ./productServer1 " ) ; app . use ( morgan ( " dev " )) ; function getInfoWithAxios ( key ) { if (key === " 1 " ) { res . sendFile (path . join (__dirname , " ./productOne.html " )) ; } else if (key === " 2 " ) { res . sendFile (path . join (__dirname , " ./productTwo.html " )) ; } else { res . sendFile (path . join (__dirname , " ./productThree.html " )) ; } } app . set ( " func " , getInfoWithAxios ()) ; app . get ( " / " , ( req , res ) => { res . sendFile (path . join (__dirname , " ./expressAPI.html " )) ; } ) ; app . use ( " /product/:addr " , ( req , res , next ) => { console . log ( ` you connect on ${ req . params . addr } } ` ) ; next () ; } ) ; app . get ( " /product " , ( req , res ) => { res . write ( " <h1>Here is product information</h1> " ) ; res . send () ; } ) ; app . get ( " /product/product1 " , async ( req , res ) => { try { const result = await axios . get ( " http://127.0.0.1:3257 " ) ; const productID = String (result . data[ 0 ] . id) ; app . get ( " func " ) ; console . log ( " Request Type: " , req . method) ; } catch (err) { console . error (err) ; } } ) ; app . get ( " /product/product2 " , async ( req , res ) => { try { const result = await axios . get ( " http://127.0.0.1:3257 " ) ; const productID = String (result . data[ 1 ] . id) ; app . get ( " func " ) ; console . log ( " Request Type: " , req . method) ; } catch (err) { console . error (err) ; } } ) ; app . get ( " /product/product3 " , async ( req , res ) => { try { const result = await axios . get ( " http://127.0.0.1:3257 " ) ; const productID = String (result . data[ 2 ] . id) ; app . get ( " func " ) ; console . log ( " Request Type: " , req . method) ; } catch (err) { console . error (err) ; } } ) ; app . use ( ( err , req , res , next ) => { console . error (err) ; res . status ( 401 ) . send (err . message) ; } ) ; app . listen (port , () => { console . log ( ` server is running at http:// ${ hostName } : ${ port } ` ) ; } ) ; 위에 코드를 실행시키면 우선 코드 본문의 내용이 실행됨과 동시에 require()로 productServer1이라는 express를 사용한 상품 데이터 서버가 실행됩니다. (localhost를 사용하고 상품 데이터 서버 포트는 3257)입니다. /product/product(1~3)으로 get메서드를 보내면 같이 실행되는 상품 데이터 서버에서 id값을 받아오고 id값을 getInfoWithAxios(key)함수에 넣어서 html페이지를 id값에 맞게 상품별로 분기하게 됩니다. 이떄 문제는 getInfoWithAxios()함수에 res객체가 없어서 id에 맞게 html페이지를 분기 할 수가 없다는 것입니다. 미들웨어로 처리를 하고 싶지만 방법을 모르겠어서 질문해봅니다. 그리고 app.get() 함수에 있는 각각의 productID를 어떻게 하면 매개변수로 대입 할 수 있는지도 궁금합니다. 요약하자면 함수를 미들웨어로 만들려면 어떻게 작성해야 하고 만든 함수를 접근할때 매개변수는 어떻게 대입할수 있을까요? 조현영님의 이해를 돕기 위해서 전체 프로젝트에 대한 깃 주소를 남겨드리겠습니다. https://github.com/shere1765/node_server/tree/main/small_project 전체 프로젝트에 있는 expressAPI는 문제없이 잘 실행될겁니다. 하지만 제가 원하는 코드는 아닙니다. 그 밖에 문제점이 있다면 피드백 부탁드립니다.

  • express
  • nodejs
  • middleware
  • mongodb
  • node.js
  • javascript
  • mysql
  • Sequelize
이승훈 댓글 1 좋아요 0 조회수 221

amend commit 질문

미해결

모든 개발자의 실무를 위한 올인원 기본기 클래스

amend commit 실행하고 insert로 바꿨는데 수정모드 끄는건 어떻게하는건가요 나와지질않네요 insert랑 replace 상태여서 :wq를 입력못하고있습니다 ㅠ insert에서 못벗어나서 종료하고 reset하고 다시 했는데 아예 amend commit이 안되네요.. E325: ATTENTION Found a swap file by the name "C:/Users/user/PycharmProjects/git-tes/.git/.COMMIT_EDITMSG.swp" owned by: user dated: Thu Dec 30 09:41:32 2021 file name: ~user/PycharmProjects/git-tes/.git/COMMIT_EDITMSG modified: YES user name: user host name: DESKTOP-C2BR6PG process ID: 1916 While opening file "C:/Users/user/PycharmProjects/git-tes/.git/COMMIT_EDITMSG" dated: Thu Dec 30 10:00:55 2021 -- More --

  • docker
  • architecture
  • git
  • python
  • oop
  • tdd
  • 동시성
  • cicd
  • 소프트웨어-테스트
댓글 1 좋아요 1 조회수 488

revert 오류

미해결

모든 개발자의 실무를 위한 올인원 기본기 클래스

이런 상태에서 git revert하면 아래처럼 오류가뜹니다. $ git revert 7a6a52c error: Your local changes to the following files would be overwritten by merge: a Please commit your changes or stash them before you merge. Aborting fatal: revert failed a가 merge가 되있어서 revert가 안된다는뜻인가요?

  • git
  • python
  • tdd
  • docker
  • architecture
  • oop
  • 동시성
  • 소프트웨어-테스트
  • cicd
댓글 1 좋아요 1 조회수 1310

common js 방식으로 내보내기를 하던 도중 문제가 생겨 질문 드립니다!

미해결

웹 게임을 만들며 배우는 React

강의에서는 es6 방식을 사용하지만, common js도 알아두어야 할 것 같아서, 혼자 common js를 사용해보던 도중 문제가 발생하여 질문 드립니다! 문제 요약: common js 방식으로 내보내기 한 후, 같은 경로 상의 다른 파일에서 require를 했을 때, 빈객체가 required됩니다. 세부사항 1. 상황 TicTacToe.jsx에서 CLICK_CELL이라는 상수를 내보내어, Td.jsx라는 동일 경로의 다른 파일에서 그 상수를 받아 오려 하는데, 빈 객체가 required 되어 CLICK_CELL의 값이 undefined로 나타납니다. 해당 상수는 Td.jsx가 아닌 다른 경로에 있는 파일에서는 정상적으로 required됩니다! 2. 코드 # 파일 구조 # TicTacToe.jsx # Td.jsx console.log 결과 3. 추측 common js를 통해 같은 경로 상의 파일에서 모듈을 받아오는 경우에 문제가 생기는 것 같습니다. 다만 정확히 어떤 문제인지, 또 어떻게 해결할 수 있는지 해결 방법을 끝내 찾지 못해 질문 드립니다. *깃헙 주소: https://github.com/Parkhanyoung/React-zerocho-basic 항상 좋은 강의 감사드립니다! 덕분에 정말 즐겁게 공부하고 있습니다 ㅎㅎ

  • commonjs
  • react
일단하자 댓글 1 좋아요 0 조회수 236

파이썬 FinanceDataReader 질문

미해결

코드와 에러는 붙임과 같습니다. 1. 한국주식은 가격데이터가 불러와지나 미국주식은 에러 출력(no tables found) 2. 다른 사람 PC에서는 동일코드 정상 동작 확인 에러의 원인과 해결책을 알고 싶습니다.

  • python
훈훈한 치타 댓글 0 좋아요 0 조회수 308

목차 활성화가 안나옵니다.

미해결

파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기

알려주신 두가지 방법으로 설치를 실행했지만, 목차 활성화 창이 뜨지 않습니다. 왜 그럴까요? 알려주시면 감사하겠습니다.

  • numpy
  • 웹-크롤링
  • pandas
  • python
  • seaborn
  • matplotlib
  • plotly
  • 웹 스크래핑
윤경주 댓글 2 좋아요 1 조회수 731

무한스크롤 관련

해결됨

풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)

무한스크롤 구현시 < div ref ={ fetchMoreEl } / > 이부분이 화면스크롤시 제대로 감지가 안되는 건지 useEffect 에서 intersecting 이 계속 false 더군요 제가 해결한 방법은 < div ref ={ fetchMoreEl } style ={{ border: ' 1px solid white ' }} ></ div > 이렇게 입력해서 정상작동하는 것을 확인했습니다. 비슷한 문제 발생시 참고용~

  • 무한스크롤
  • graphql
  • react
  • rest-api
임채영 댓글 1 좋아요 0 조회수 347

Router node v.6 바뀐 부분

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

이렇게 적으면 v6에서 작동합니다. 앞에 분들이 여럿 글을 적어 주셨지만 정리된 게 없는 것 같아서 이렇게 올립니다. 공식문서에 나와있지만 영어가 어려우신 분들이나 처음 공부하시는 분들은 이거 참고 하시면 될 겁니다. 그리고 Link부분은 아직 안 나왔는데 적혀있어서, 오류떠서 주석 처리 했습니다. ```js import { BrowserRouter , Route , Routes , //Link } from "react-router-dom" ; import LandingPage from './components/views/LandingPage/LandingPage' import LoginPage from './components/views/LoginPage/LoginPage' import RegisterPage from './components/views/RegisterPage/RegisterPage' function App () { return ( < BrowserRouter > < Routes > < Route exact path = "/" element = { < LandingPage /> } /> < Route exact path = "/login" element = { < LoginPage /> } /> < Route exact path = "/register" element = { < RegisterPage /> } /> </ Routes > </ BrowserRouter > ); }

  • react
  • nodejs
Kwon Minju 댓글 2 좋아요 10 조회수 450

jest와 @testing-library/jest-dom

미해결

따라하며 배우는 리액트 테스트 [2023.11 업데이트]

너무 기초적인 질문인 것 같아 걱정이지만 질문드립니다~! 1. jest와 @testing-library/jest-dom는 어떤 차이가 있고 각각의 역할이 궁금합니다. 2. @testing-library와 함께 사용하는 이유와 jest만 따로 사용하지는 않는 이유가 궁금합니다.

  • 웹앱
  • react
  • React-Context
  • jest
Leo 댓글 1 좋아요 1 조회수 1168

8분 19초에 gst는 왜치는건가요?

미해결

모든 개발자의 실무를 위한 올인원 기본기 클래스

gst 치는이유 알고싶습니다.

  • git
  • docker
  • python
  • architecture
  • tdd
  • oop
  • 동시성
  • 소프트웨어-테스트
  • cicd
댓글 1 좋아요 1 조회수 396

git init 오류

미해결

모든 개발자의 실무를 위한 올인원 기본기 클래스

0 git init 부터 막혔는데 해결법 계속 찾고 있는데 뭐가 문제일까요..? git : 'git' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + git init + ~~~

  • architecture
  • git
  • tdd
  • oop
  • docker
  • python
  • cicd
  • 동시성
  • 소프트웨어-테스트
댓글 2 좋아요 1 조회수 1127

라우트 이동 및 새로고침시 각 컴포넌트별 state 유지

해결됨

[리뉴얼] React로 NodeBird SNS 만들기

안녕하세요 제로초님 포트폴리오를 nextjs로 새로만들면서 작업중인데 라우트 이동 및 새로고침시에도 각 컴포넌트별 state를 유지하는 효율적인 방법을 좀 알고싶습니다. url : https://dv-node-portfolio.herokuapp.com/ git : https://github.com/dvisign/new-next-portfolio 전에 리액트로 할때는 useHistory를 이용한 커스텀 훅스 route state에 저장하였는데 nextjs에서는 사용할수가 없어서 useRouer로 저장이 가능한가 확인해보았는데 안되더라구요 그래서 다음으로 알아본것이 redux-persist 라이브러리였는데 리뉴얼된 강좌에서 ssr때문에 HYDRATE 액션때문에 사용은 해보지 않았고 리액트로 redux-persist 라이브러리를 사용했을때 로컬스토리지에 담는것같아 이용하지 않았습니다(개인적으로 localstorage를 신뢰하지 않는 개인적 성향때문에 그렇습니다.) 예를들어서 사이드 네비게이션이 열려있는것을 닫았다가 다른 라우트로 이동했을때 다시 열려있는 현상입니다. 스크린샷을 첨부합니다. 부단 이 부분 뿐만 아니라 나중에 더 만들다보면 이런 state유지 할것들이 더 많아질텐데 어떻게 유지 시키는것이 가장 효율적인 방법일까요?

  • state유지
  • react
  • nodejs
  • redux
  • express
  • redux
  • Next.js
정문채 댓글 1 좋아요 0 조회수 4202

비동기 방식에 대해 질문올려봅니다.

미해결

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

안녕하세요. 그랩님 그랩님 강좌를 잘 보고 있는 한 수강생입니다. 다름이아니라 강의 내용과는 별개의 내용이지만 그랩님을 통해 자바스크립트를 배우고 여러가지 배웠기 때문에 그랩님께 질문 남겨봅니다. const getData = async () => { try { const result = await axios . get ( " https://b2ef45f8-e166-41d7-bd35-9ad159028fbf.mock.pstmn.io/test " ) ; const products = result . data . products ; console . log (products) ; console . log ( ` status:( ${ result . status } ) 통신을 성공했습니다! ` ) ; const data = JSON . stringify (products) ; return data ; } catch (err) { console . error (err) ; console . log ( " 결과를 가져오지 못했습니다. " ) ; return err ; } }; console . log ( getData ()) ; 위에 코드는 프로미스 형식의 axios객체를 async, await을 이용해 then과 catch등을 축약해서 제가 만든 포스트맨 목서버의 데이터를 get메서드로 불러와서 결과값을 확인하는 코드입니다. 실행에는 문제가 전혀 없습니다. 그런데 제가 궁금한 것은 getData 함수 표현식이 async로 감싸져 promise객체를 받아 비동기 처리가 되어서 console.log(getData())가 먼저 실행된 뒤에 getData 함수가 실행된다는것은 알고있습니다. 허나 만약에 비동기 함수에서 리턴값을 받아 출력을 하고 싶을 때는 어떤 처리를 해야 하는지가 궁금합니다. 만약 코드가 실행되면 console.log(getData())가 실행될 때 Promise { <pending> }가 출력이 되었습니다.

  • node.js
  • 자바스크립트
  • HTML/CSS
  • express
  • 비동기
  • react-native
  • axios
  • async
  • nodejs
  • react
  • await
  • 머신러닝 배워볼래요?
  • tensorflow
  • javascript
이승훈 댓글 1 좋아요 1 조회수 261

coef와 그래프 모습에서 보이는 회귀선 간의 관계 문의

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요. 아래와 같이 13개 feature 모두 그래프로 그려보았습니다. 그런데 하단을 보면 AGE, B, INDUX, TAX feature는 price와의 회귀 직선이 음의 상관관계로 나오는데, 강의에서 coef를 보면 0으로 나옵니다. 그리고 RAD는 그래프로 보면 음의 상관 관계인데 coef는 0.4가 나옵니다. 개별 feature들과 price간의 관계를 보면 음의 상관관계인데 모든 feature들을 이용해 linear regression을 만들어봤을 때의 coef는 각 개별 상관관계와는 다르게 될 수도 있는 것인지요?

  • 통계
  • python
  • 머신러닝 배워볼래요?
Abraham 댓글 1 좋아요 0 조회수 381

API 파이썬 connection error 발생 , 클라이언트 인증서 , CA인증서, 클라이언트 개인키 관련 옵션 코드 작성

미해결

파이썬으로 API 호출하는 과정에서 SSL 핸드쉐이크 오류가 발생하여 관련 기관에 물어보니 아래와 같은 답변을 받았습니다. SSL 핸드쉐이크 오류가 발생한 이유는 클라이언트 인증서, CA인증서, 클라이언트 개인 키 등의 정보를 옵션으로 사용하여야 하는데 이러한 옵션들이 없어 상호 인증에 실패 하였다고 합니다. 쿼리문 으로 curl -k --tlsv1.2 --cacert ./ca-chain.crt --cert ./client.crt --key ./client.key -H 위와 같은 설정이 있어야 한다고 합니다. 맨 처음에 tlsv1.2 부분은 알아보니 파이썬에서 import ssl context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) 구문을 추가하면 된다고 배웠습니다. 그다음 cacert ./ca-chain.crt --cert ./client.crt --key ./client.key 이 부분은 어떻게 파이썬으로 코드로 구현해야 할지 몰라서 질문을 올리게 되었습니다. 긴글읽어주셔서 감사합니다. 항상배움의 자세를 갖추어 열심히하고자합니다. 도움주시면 정말 너무감사하겠습니다.

  • python
  • 파이썬
  • api
  • connectionerror
  • 인증서
  • ssl
김현준 댓글 0 좋아요 0 조회수 349

React.memo 관련 질문이 있습니다.

해결됨

실전 리액트 프로그래밍

React.memo 가 props 비교를 통해 리렌더링을 막아줄 수 있는 유용한 기능이라는 것을 알게되었는데요, 그렇다면 리액트에서는 왜 React.memo 적용을 모든 컴포넌트에 default로 제공하지 않는지 궁금합니다. 제가 구글링을 해본 결과 2년 전에 Dan Abramov가 트위터에 이런 글을 올렸더라구요.. ``` Ask yourself: Why don&rsquo;t you put Lodash memoize() around every function? Wouldn&rsquo;t that make all functions faster? Do we need a benchmark for this? Why not? ``` 저는 React.memo가 특정 컴포넌트의 이전 상태의 props를 기억하고 있다가 새로 렌더되어야할 상황에 전달된 props와의 비교를 통해 선택적으로 렌더링을 결정하는것이라고 생각했는데, 저 트위터를 보면 마치 React.memo가 컴포넌트 전체를 메모리 어딘가에 기억해야하고 이 작업이 오히려 성능에 악영향을 줄 수 있다는 뉘앙스로 들렸습니다. 횡설수설 서론이 길어진 것 같아서 죄송합니다. React.memo를 왜 모든 컴포넌트에 적용하면 안좋은지 궁금합니다!

  • redux
  • react
jotace 댓글 1 좋아요 0 조회수 394

코드 실행할 때, 유니코드 오류가 생깁니다.

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb0 in position 6: invalid start byte 비주얼 스튜디오로 코드 실행 시, 위와 같은 오류가 뜹니다. 유니코드에 대한 에러라고 뜨는데 , 해결방법이 궁금합니다. 제가 작성한 코드는 다음과 같습니다. # K 번째 약수 풀이 import sys sys.stdin = open("input.txt", "rt") # 1. 내 풀이 n, k = map(int, input().split()) var = list() for i in range(1, n + 1): if n % i == 0: var.append(i) if len(var) >= k: print(var[k - 1]) else: print(-1) ''' # 2. 강의 풀이 n , k = map(int, input().split()) cnt = 0 for i in range(1, n + 1): if n % i == 0: cnt += 1 # 약수의 개수 저장 if cnt == k: # k 번째 약수일 때, i 출력 print(i) break # 약수 출력 후, 반복문 탈출 # for ~ else 구문 : 반복문이 탈출되지 않고 정상적으로 모두 돌고 종료된 경우, else 구문 실행 else: # for 문이 정상 종료, 즉 약수의 개수가 K개 미만일 경우 실행 print(-1) '''

  • syntaxerror
  • 코테 준비 같이 해요!
  • python
이창주 댓글 1 좋아요 0 조회수 472

제로초님! Worksapce/channel 에서 새로고침 시, data가 undefined가 되는 문제 질문드립니다~!

미해결

Slack 클론 코딩[실시간 채팅 with React]

안녕하세요 제로초님! 그라바타 적용하다가 data.email 이 새로고침 시에 오류가 나서 질문 드립니다.!!! 먼저, 오류나 경고 메시지들 보고 라우터 문제인가 싶어서 (라우터 v6 사용 중입니다. ) 라우터 관련해서만 구글링 하다가, data.email가 아닌 data만 사용하면 새로고침 시에도 문제 없다는 걸 알았는데요.. data를 콘솔로 찍어보니 두번 출력이 되면서, 첫번째는 undefined로 나오고 두번째는 정상으로 나오는데data가 undefinde일 때 랜더링이 되서 그런 건가?? 하는 생각이 들긴했는데 이게 왜 저렇게 되는 건지 navigate로 페이지 이동되면서 저렇게 되는 건지 data가 언디파인드 인데도 login으로 페이지도 안넘어가는 상황입니다 에러 원인에 대한 판단이 잘 안서서 해결을 못하고 있습니다ㅠㅠ 혹시 해결 방향을 잡아주실 수 있을까요??? < 컴포넌트에서 data.email이 사용될 때 새로고침 > < data만 사용할 때 새로고침 > 제 코드 입니다! import axios from "axios" ; import React , { FC , useCallback , useEffect } from "react" ; import { useNavigate } from "react-router" ; import useSWR from "swr" ; import fetcher from "@src/utils/fetcher" ; import { Channels , Chats , Header , MenuScroll , ProfileImg , RightMenu , WorkspaceName , Workspaces , WorkspaceWrapper , } from "./style" ; import gravatar from "gravatar" ; const Workspace : FC = ({ children }) => { const { data , error , mutate } = useSWR ( "http://localhost:3095/api/users" , fetcher , { dedupingInterval : 100000 , loadingTimeout : 900000 , } ); const onLogout = useCallback (() => { axios . post ( "http://localhost:3095/api/users/logout" , null , { withCredentials : true , }) . then (() => mutate ( false , false )); }, []); const navigate = useNavigate (); if ( ! data || data === undefined ) { navigate ( "/login" ); } console . log ( "@@@data" , data ); return ( <> < Header > < RightMenu > < span > { /* <ProfileImg src={gravatar.url(data, { s: "28px", d: "retro" })} alt={data} ></ProfileImg> */ } </ span > </ RightMenu > </ Header > < button onClick ={ onLogout } > 로그아웃 </ button > < WorkspaceWrapper > < Workspaces > test </ Workspaces > < Channels > < WorkspaceName > Clone </ WorkspaceName > < MenuScroll > MenuScroll </ MenuScroll > </ Channels > < Chats > Chats </ Chats > </ WorkspaceWrapper > { children } </> ); }; export default Workspace ;

  • Socket.io
  • typescript
  • react
  • 웹팩
  • babel
  • 클론코딩
댓글 1 좋아요 0 조회수 264

인기 태그

인프런 TOP Writers

주간 인기글