묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
next()가 없는 (불필요한) 경우에도, middleware 함수라고 볼 수 있나요??
안녕하세요~ 좋은 강의 넘 잘 듣고 있습니다~ 감사합니다 :) 이 에러 핸들링을 하는 함수를 middleware라고 언급해주셨는데, 저는 조금 헷갈려서 질문 드립니다! app.use((req: express.Request, res: express.Response, next: express.NextFunction) => { console.log('this is error middleware'); res.send({ error: '404 not found error' }); }); 미들웨어는 하려는 일의 중간에서, 개발자가 원하는 무언가를 할 수 있도록 하는 것을 말하는거니까 express 에서는 next() 가 있는 경우를 middleware 로 본다 는 것으로 이해했습니다. 그런데 위 코드는 다음으로 넘기는 것 없이 바로 404를 반환해서, next가 꼭 필요하지 않은 것 같은데... 이 경우에도 이 함수를 middleware 함수라고 볼 수 있나요~?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
http-exception.filter.ts 파일 내용 중 질문이 있습니다.
const error = exception.getResponse() as | string | { error: string; statusCode: number; message: string | string[] }; 강의 중에 http-exception.filter.ts 파일에서 error 변수를 위와 같이 할당을 하는데 as | string 뒤에 있는 타입을 { error: string, statusCode: number; message: string | string[] };로 받는데 객체의 속성들을 특별하게 넣어준 이유가 있나요? 단순히 { error: string }로만 처리해도 다른 속성 값들이 자동으로 들어오기 때문에 출력할 때는 문제가 없는 것 같은데 정확한 타입을 제공하기 위해서 라던가 등 특별한 이유가 있는지 궁금합니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
42초에서 말씀하신 서버사이드 렌더링에 대해 질문
0:38 초가량 부근에서 서버사이드렌더링은 defaultandserver?에서 html을 데이터와 합쳐서 그려준다고 그랬죠? 라고 하신 부분이 이해가 잘되지 않아서요 styledcomponent는 style을 컴포넌트로 꾸며주는 라이브러리고 렌더링할떄 작동하므로 서버에서 렌더링 하고 내려오는 SSR의 동작원리상 서버쪽에서 적용이 안됐다고 보면 되는거 같은데요 (맞나요?) 렌더링이라는거 자체가 브라우저에서 렌더링 엔진이 코드를 읽고 DOM, CSSOM하고 렌더트리로 합친다음에 리플로우 리페인트하는 과정이라고 알고 있습니다. 그럼 무조건 호스트쪽 컴퓨터의 브라우저에서 렌더링하는게 아닌가 싶은데 서버쪽에서 '렌더링'을 미리 해준다는 것이 무슨 말인지 이해가 잘되지 않습니다. 말씀하시는 '렌더링'은 화면을 구성할 코드를 만들어줬다는 말인가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
getServersideProps session 질문
안녕하세요! 강좌를 바탕으로 블로그를 제작하는 중에, 방문자 수를 counting 하는 기능을 구현하는데 막혀 질문드립니다. front server에서 getServerSideProps에 있는 export const getServerSideProps = wrapper.getServerSideProps(async (context) => { const cookie = context.req ? context.req.headers.cookie : ''; axios.defaults.headers.Cookie = ''; if (context.req && cookie) { axios.defaults.headers.Cookie = cookie; } context.store.dispatch({ type: LOAD_MY_INFO_REQUEST, }) context.store.dispatch({ type: LOAD_POSTS_REQUEST, }); context.store.dispatch(END); await context.store.sagaTask.toPromise(); }); LOAD_MY_INFO_REQUEST와 LOAD_POSTS_REQUEST를 이용해 back server에 요청을 날리면 back server에서는 app.js의 최상단에 존재하는 let count = 0; app.use((req,res,next) => { var date = new Date(); var today=date.getYear()+" "+date.getMonth()+" "+date.getDate(); console.log("lastvisit : " + req.session.lastVisit); if(req.session.lastVisit != today){ req.session.lastVisit = today; count++; } next(); }); 다음 함수를 이용해 방문자 수를 count할려고합니다! 문제는 front에서 먼저, LOAD_MY_INFO_REQUEST로 요청을 보내, session과 함께 응답을 받고 다시 LOAD_POSTS_REQUEST요청을 하면, 요청에는 첫번째 요청의 응답으로 넣어주었던 session이 존재하지 않는다는 점입니다. 몇일동안 잡고 있어도 도저히 해결책을 모르겠어 질문드립니다.
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
소켓 연결관련 질문입니다.
강의에서 socket.id는 계속 유지되다가 연결이 끊기거나 새로고침되면 바뀐다고 나오는데요 즉, 새로고침하면 소켓연결이 끊긴다는 뜻인데 이걸 막을 방법이 있나요? 예를 들어서 제가 웹 상에서 멀티플레이가 가능한 카드게임을 구현한다고 하면 게임 플레이 도중 사용자가 실수로 새로고침을 누르면 끊겨버릴텐데 이런 상황에서는 어떤식으로 처리를 하나요? 또 질문이 하나 있는데 강의와는 조금 벗어난 질문이긴한데.. 소켓연결에 더해서 redis까지 이용해서 만들어보려고 하는데 구글에 nestjs redis 이렇게 검색하면 나오는 공식문서가 Microservice 어쩌고 하면서 redis랑 같이 나오더라구요. 제가 구현하고 싶은 기능은 웹상에서 방을 만들고, 사용자들이 해당 방에 들어가면 사용자들의 정보를 redis에 담고 redis pub/sub과 소켓을 이용하여 같은 방안에 사용자들끼리 통신하는 그런걸 만들어보고 싶은데 이 경우에 공식문서에 나와있는 Microservice.. 를 쓰면 되는게 맞는건지 잘 모르겠어서 질문드립니다.
-
미해결Nuxt.js 시작하기
nuxt.js 초기 세팅시 폴더 구조가 강의와 다르게 구성됩니다
프로젝트 생성시의 설정값을 강의에서와 동일하게 했는데, 말씀하신 것과 폴더구조가 다르게 설정되고 있습니다. (프로젝트 이름을 동일하게 설정하고 설치해도 저렇게 폴더구조가 잡힙니다) npm run dev를 실행하면 첫 화면도 강의와 다르게 나오고 layouts, middleware, plugins와 같은 폴더가 빠졌는데 create-nuxt-app 버전이 강의에서는 v3.6.0이고 지금 설치하면 v3.7.1으로 나오는데 버전이 달라지면서 생기는 차이인걸까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
emotion SSR 적용 질문있습니다!
안녕하세요 현영님! styled-components 대신에 emotion 사용해서 실습하고 있는데, emotion 공식문서에서 10버전 이상부터는 next에서 SSR 적용이 된다고 나와있는데요. (현재 11버전 사용중입니다.) 그렇다면, pages/_document.js의 코드에서 import React from "react"; import Document, { Html, Head, Main, NextScript } from "next/document"; // import {ServerStyleSheet} from "styled-components" export default class MyDocument extends Document { static async getInitialProps(ctx) { // const sheet = new ServerStyleSheet(); const originalRenderPage = ctx.renderPage; try { // ctx.renderPage = () => // originalRenderPage({ // enhanceApp: App => props => sheet.collectStyles(<App {...props} />) // }); const initialProps = await Document.getInitialProps(ctx); return { ...initialProps, styles: ( <> {initialProps.styles} {/* {sheet.getStyleElement()} */} </> ) }; } catch (err) { console.error(err); } finally { // sheet.seal(); } } render() { return ( <Html> <Head /> <body> <script src="https://polyfill.io/v3/polyfill.min.js?features=default%2Ces2015%2Ces2016%2Ces2017%2Ces2018%2Ces2019" /> <Main /> <NextScript /> </body> </Html> ); } } styled-components 관련 부분만 제외하고 입력하면 될까요?
-
해결됨탄탄한 백엔드 NestJS, 기초부터 심화까지
프론트 코드는 어디서 받나요?
https://github.com/amamov/teaching-nestjs-a-to-z 에 있는 frontend 디렉토리가 프론트코드인가요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
Filter도 결국 middleware에서 처리할 수 있을거 같은데 나누는 이유가 있을까요?
Filter도 결국 middleware에서 처리할 수 있을거 같은데 나누는 이유가 있을까요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
CSR에서 로그인 정보 불러오기
안녕하세요 제로초님 강의 정말 잘 듣고 있습니다. [내 로그인 정보 매번 불러오기] 강의 파트에서 애초부터 서버에서 데이터를 받아올 때 로그인이 되어 있게 하려면 서버 사이드 렌더링(SSR)을 해주어야 한다고 말씀해주셨는데 그렇다면 CSR로 react-nodejs에서는 아예 불가능한 부분인가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
초기 로딩할 때 SSR 방식이라면
초기 로딩할 때 SSR 방식으로 불러오면 UX 관점에서 어떤 이유로든 혹시나 로딩이 오래걸릴 경우 로딩 화면조차 안나오면 사용자들의 이탈률이 CSR보다 높지 않나요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
제로초님 질문하나만 하겠습니당 ssr 관련
A 페이지 SSR 하는 페이지 B 페이지 그냥 페이지(SSR안하는 페이지) A에서 B로 이동 후 B에서 뒤로가기 하면 A로 이동 이 때 뒤로가기 시 A로 이동되면서 ssr 이 되면서 페이지가 아예 리렌더링 되더라고요.. 그냥 일반적인 웹사이트에서는 캐싱되는데 ssr 페이지에서 뒤로가기시 화면전환없이 캐싱되는 방법이 있을까요?
-
미해결
Next getServerSideProps context.params에 favicon이 왜.. 때문일까요..?
브라우저 창 주소 - localhost:3000/nickname 컴포넌트 내부 import { useRouter } from 'next/router'; const MyPost = () => { const router = useRouter(); const { pagename } = router.query; console.log(pagename); // 결과 - nickname 정확히 출력 }; getServerSideProps 내부 export const getServerSideProps = wrapper.getServerSideProps(async (context) => { console.log(context.params); // 결과 - { pagename : 'favicon.ico' } ?? }); useRouter의 query와 context의 params가 같은 역할을 하는걸로 배웠는데... getServerSideProps에서 왠 'favicon.ico'가 ?? 출력이 되는걸까요...? 당황쓰...
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
서버 사이드 렌더링에 대해 질문이 있습니다
안녕하세요 제로초님~ 강의에 내용에 막힌 것이 있어 드리는 질문은 아니구 SSR 관련되어 궁금한 것이 있어 질문 올립니다. 질문의 요건을 먼저 말씀드리자면 NextJS 없이 커스텀 서버로 SSR를 제공하는 것에 장점이 무엇이 있는지 여쭤보고 싶습니다. SSR을 공부하면서 Next.js 없이 Express(or Koa) 같은 커스텀 서버에 react-router-dom 을 사용하는 방법이 있다고 알고 있는데요. 실제 제 회사의 유관 부서들 중 NextJS 없이 SSR로 서비스를 제공하는 곳이 있습니다. 제가 공부하면서 느낀 것은 SSR을 구현하면서 라우팅 방식을 제외하면, 구조가 NextJS를 따라가게 되는 것 같습니다. 비록 서비스에 프로젝트 구성을 도입한 개발자들이 저마다의 이유가 있어 세팅을 그렇게 한 것이겠지만, 대중적으로 생각하자면 직접 세팅을 다하면서 초기 개발의 overhead가 들어가는것, 프로젝트를 인수 인계할 때의 소통 비용 등을 제치고 사용할 큰 장점이 있는지 궁금합니다. 예를 들어 퍼포먼스 상승의 이유인지, File-based structure 가 싫어서 그런건지 답변을 듣고 싶습니다.
-
미해결Vue로 Nodebird SNS 만들기
trough, as
제로초님 강의 잘 보고 있습니다. 문서를 봐도 이해가 잘안되서 그러는데여.. sequlize associate부분에서 through,as가 무슨 역할인지 알려주실수 있을가요?? 강의 돌려봐도 좀 어렵네여 ㅠ