묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.
import { createParamDecorator, ExecutionContext } from '@nestjs/common'; //저장된 사용자 정보에 접근 가능 export const User = createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); console.log('사용자', request.user.id); return request.user; }, );위에있는것은 로그인을 하게되면 유저의 아이디값을 가져오는데 로그인가드쪽을 보면 여기서는 자꾸 false값이 나옵니다.다른쪽 로직도 작업하신 코드 그대로 사용을 했는데 왜자꾸 false값만 나올까요....import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; import { Request } from 'express'; import { Observable } from 'rxjs'; @Injectable() export class LoggedInGuard implements CanActivate { canActivate( context: ExecutionContext, ): boolean | Promise<boolean> | Observable<boolean> { const request = context.switchToHttp().getRequest() as Request; console.log('로그인햇니?????????', request.isAuthenticated()); return request.isAuthenticated(); } } 로그인 유지가 안되는거로 보이기는 하는데 해결법이 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
교재 내용 질문, 결측치 인코딩 관련
안녕하세요, 강의와 교재로 공부하고 있습니다.교재 작업형2 ch4 회귀 부분에서트레인 테스트 데이터를 합친 후범주형 데이터를 레이블 인코딩 한 후 다시 트레인 테스트로 쪼개고결측치를 채우는 최솟값, 최빈값으로 채우는 과정으로 진행이 되는데요, 레이블 인코딩 과정에서 범주형데이터의 결측치가 하나의 값으로 인코딩이 되어서결측치가 존재하지 않아 중앙값으로 결측치를 대체하는 과정이 불필요한 것 같은데 맞을까요? 또한 원핫 인코딩을 사용하려는 경우 결측치를 먼저 대체한 후에 인코딩을 해야 오류가 안나는게 맞을까요?일반적으로 결측치 처리를 인코딩 후에 하는지 전에 하는지 궁금합니다.감사합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Import
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 전 강의에서 @Configuration 파일은 하나의 파일에서 대부분 설정 한다고 하셨던거 같은데 @Import 를 사용하면 설정파일도 분리해서 사용 하는경우도 있을까요 ? 예를 들면 DB 부분, 인증부분 등등 .. 좀 큰 프로잭트에서 사용하는 방법인지 궁금합니다!
-
미해결개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
메모리맵 입출력과 고립형 입출력의 물리적 차이가 이게 맞나요?
"메모리 맵 입출력은 메모리에 접근하기 위한 주소공간과 입출력 장치에 접근하기 위한 주소공간을 하나의 주소공간으로 간주하는 방법입니다." 는 한마디로 같는 램 안에 섞여잇단 말씀인가요? 예시로 1024개의 주소를 나타내는 램에 반은 일반적인 메모리를 위해, 반은 입출력장치를 위해 사용된다는 말씀인가요?그렇다면 고립형 입출력에서 메모리에도 1024, 입출력장치도 1024개의 주소를 사용할수 잇다는 말씀은...램이 두배로 증가한것도 아닐테고...메모리를 위한 주소공간은 램에 표현되고 입출력장치를 위한 주소공간은 입출력장치 내의 레지스터나 입출력장치내의 램을 뜻하는게 맞을까요?좀 두서없어서 죄송합니다...정리하자면 메모리맵 입출력에서 메모리를 위한 주소공간과 입출력을 위한 주소공간은 램에 존재하는 것이고 고립형 입출력에서 메모리를 위한 주소공간은 램에, 입출력장치를 위한 주소공간은 장치 컨트롤러 내의 기억장치에 존재하는 것..이 맞을까요?
-
미해결
지식공유를 하려고 하는데요
수학강의로 지식공유를 하려고 하는데요교재료 사용할 문제집은 교과서나 시중에서 판매중인 교재를 사용해도 되는건가요?그게 저작권에 문제가 있다면 어떤방식으로 수학 강의를 하면 좋은지 알려주세요
-
해결됨얄코의 떠먹여주는 객체지향 디자인 패턴
빌더패턴 질문있습니다!
2분대에 나오는 PizzaBuilder static내부 클래스에 기본 생성자가 없으면 뒤에 나오는 main문에서 new Pizza.PizzaBuilder()가 가능한가요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ResponseBody나 HttpEntity를 사용하는 경우
@ResponseBody나 HttpEntity를 사용해서 뷰를 렌더링하지 않는 경우에도HandlerAdapter에서 DispatcherServlet으로 ModelAndView를 반환하나요?만약 반환한다면 ModelAndView에는 그냥 빈 값이 들어 있는건가요?빈 값이 들어 있으면 DispatcherServlet은 이게 View Path가 빈 값인지 아닌지에 따라 View를 렌더링 할지 말지 결정하는 건가요??
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
npm init 을 터미널에 입력하면 사진과 같은 오류가 납니다.
3.3)Node.js 사용하기강의 3분10초입니다.npm init 을 터미널에 입력하면 사진과 같은 오류가 납니다.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
checkedbox 다중에서 ref 대신 reactive를 쓰면 v-model이 작동 안되는 이유가 궁금합니다.
배열이나 객체를 사용할 때는 reactive()를 사용하는 것으로 알고있습니다. 해당 코드에서는 reactive([]) 대신 ref([])를 사용했더라구요.const checkboxValues = ref([]) reactive([])를 사용하니 checkbox에 v-model이 제대로 동작하지 않았습니다. 그 이유는 무엇인가요?
-
미해결
REQUIRES_NEW와 예외 핸들링의 상관 관계
REQUIRES_NEW를 올바르게 사용하기 위해선, 다시 말해 외부 트랜잭션과 내부 트랜잭션(신규 트랜잭션)을 제대로 분리하기 위해선 아래와 같이 이해했습니다.외부 트랜잭션의 로직은 REQUIRES_NEW 로직에서 발생될 수 있는 예외를 반드시 핸들링 해야 한다. 이렇게 이해한 이유는 아래와 같습니다.가정: 트랜잭션A는 외부 트랜잭션, 트랜잭션B는 내부 트랜잭션(신규 트랜잭션)상황: 트랜잭션 A는 성공, 트랜잭션 B는 실패 트랜잭션B에서 발생된 예외가 트랜잭션A까지 전파되면, 결론적으로 트랜잭션A까지 실패한 것으로 취급된다.결국 의도했던 트랜잭션 A는 성공 -> 커밋, 트랜잭션 B는 실패 -> 롤백이 되지 않고,트랜잭션 A 실패 → 롤백, 트랜잭션 B 실패 → 롤백 되어버린다. 따라서, REQUIRES_NEW 를 본래의 의도대로 사용하기 위해선, 반드시 예외 핸들링을 하여 예외 정상처리(예외를 catch하여 먹어버림)해주어야 한다고 이해하였는데, 제가 이해한게 맞을지 여쭤보고 싶습니다 🙂
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
연결 유지 상태에서의 이중화 노드 무중단 재기동 방법
안녕하세요.대외 통신 연계 업무를 맡고 있는 주니어입니다.네트워크 지식에 부족함을 느껴 강의를 수강하게 되었습니다.어렴풋이만 알고 있는 지식에 대해 살을 붙임에 있어 많은 도움이 되고 있습니다. 요즘은 거래량이 많이 급증함에 따라 연결 유지 세션(전용 망)으로 많은 대외 기관들과 연결되어 있습니다.노드는 이중화가 되어있으나, 연결 유지 세션에 대해서는 액티브-스탠바이로만 운영중입니다. 때문에 배포 등으로 재기동 시 순단이 발생하고 있어 이를 없애는게 주요 과업 중 하나입니다.대외기관 - L4 사이에는 연결유지 세션으로 유지한 상태로 무중단 재기동을 할 방법이 있을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
AxiosError {message: 'Request failed with status code 401/500', name: 'AxiosError', code: 'ERR_BAD_RESPONSE',
로그인 페이지에서 로그인을 하면 500, 커뮤니티 생성 페이지에서 생성을 하면 401 AxiosError가 뜹니다. <login.tsx>import axios from 'axios'; import InputGroup from '../components/InputGroup' import Link from 'next/link' import { useRouter } from 'next/router'; import React,{ FormEvent, useState } from 'react' import { useAuthDispatch } from '../context/auth'; axios.defaults.withCredentials = true; const Login = () => { let router = useRouter(); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [errors, setErrors] = useState<any>({}); const dispatch = useAuthDispatch(); const handleSubmit = async (event: FormEvent) => { event.preventDefault(); try{ const res = await axios.post("/auth/login", {password, username}, {headers: {'Access-Control-Allow-Origin': 'http://localhost:3000'}}) dispatch("LOGIN", res.data?.user); } catch(error: any){ //console.log(error); setErrors(error.response?.data || {}) } } return ( <div className='bg-white'> <div className='flex flex-col items-center justify-center h-screen p-6'> <div className='w-10/12 mx-auto md:w-96'> <h1 className='mb-2 text-lg font-medium'>로그인</h1> <form onSubmit={handleSubmit}> <InputGroup placeholder='Username' value={username} setValue={setUsername} error={errors.username} /> <InputGroup placeholder='Password' value={password} setValue={setPassword} error={errors.password} /> <button className='w-full py-2 mb-1 text-xs font-bold text-white uppercase bg-gray-400 border border-gray-400 rounded'> 로그인 </button> </form> <small> 아직 아이디가 없으신가요? <Link href="/register" legacyBehavior> <a className='ml-1 text-blue-500 uppercase'>회원가입</a> </Link> </small> </div> </div> </div> ) } export default Login<create.tsx>import axios from "axios"; import { GetServerSideProps } from "next"; import InputGroup from "../../components/InputGroup" import {useState, FormEvent} from "react"; import {useRouter} from "next/router" axios.defaults.withCredentials = true; const SubCreate = () => { const [name, setName] = useState(""); const [title, setTitle] = useState(""); const [description, setDescription] = useState(""); const [errors, setErrors] = useState<any>({}); let router = useRouter(); const handleSubmit = async (event: FormEvent) => { event.preventDefault(); try { const res = await axios.post("/subs", {name, title, description}, {headers: {'Access-Control-Allow-Origin': 'http://localhost:3000'}}) router.push(`/r/${res.data.name}`); } catch (error: any) { // console.log(error); setErrors(error.response?.data || {}); } } return ( <div className="flex flex-col justify-center pt-16"> <div className="w-10/12 mx-auto md:w-96"> <h1 className="mb-2 text-lg font-medium"> 그룹 만들기 </h1> <hr /> <form onSubmit={handleSubmit}> <div className="my-6"> <p className="font-medium">Name</p> <p className="mb-2 text-xs text-gray-400"> 그룹 이름은 변경할 수 없습니다. </p> <InputGroup placeholder="이름" value={name} setValue={setName} error={errors.name} /> </div> <div className="my-6"> <p className="font-medium">Title</p> <p className="mb-2 text-xs text-gray-400"> 주제를 입력해 주세요. </p> <InputGroup placeholder="주제" value={title} setValue={setTitle} error={errors.title} /> </div> <div className="my-6"> <p className="font-medium">Description</p> <p className="mb-2 text-xs text-gray-400"> 그룹에 대한 설명을 입력해주세요. </p> <InputGroup placeholder="설명" value={description} setValue={setDescription} error={errors.description} /> </div> <div className="flex jstify-end"> <button className="px-4 py-1 text-sm font-semibold rounded text-white bg-gray-400 border" > 그룹 만들기 </button> </div> </form> </div> </div> ) } export default SubCreate<subs.ts>import {Router, Request, Response} from "express"; import jwt from "jsonwebtoken" import { User } from "../entities/User"; import userMiddleware from "../middlewares/user" import authMiddleware from "../middlewares/auth" import { AppDataSource } from "../data-source"; import Sub from "../entities/Sub"; import { isEmpty } from "class-validator"; const createSub = async (req: Request, res: Response, next) => { const {name, title, description} = req.body; try { let errors: any = {}; if (isEmpty(name)) errors.name = "이름은 비워둘 수 없습니다."; if (isEmpty(title)) errors.title = "제목은 비워둘 수 없습니다."; const sub = await AppDataSource.getRepository(Sub) .createQueryBuilder("sub") .where("lower(sub.name) = :name", { name: name.toLowerCase() }) .getOne(); if (sub) errors.name = "서브가 이미 존재합니다."; if (Object.keys(errors).length > 0) { throw errors; } } catch (error) { console.log(error); return res.status(500).json({ error: "문제가 발생했습니다." }); } try { const user: User = res.locals.user; const sub = new Sub(); sub.name = name; sub.description = description; sub.title = title; sub.user = user; await sub.save(); return res.json(sub); } catch (error) { console.log(error); return res.status(500).json({ error: "문제가 발생했습니다." }); } }; const router = Router(); router.post("/", userMiddleware,authMiddleware, createSub); export default router; <server.ts>import express, { response } from "express"; import morgan from "morgan"; import { AppDataSource } from "./data-source"; import authRoutes from './routes/auth' import subRoutes from './routes/subs' import cors from 'cors'; import dotenv from 'dotenv'; import cookieParser from "cookie-parser"; const app = express(); const origin = process.env.ORIGIN; const corsOption = { origin: "http://localhost:3000", credentials: true } app.use(cors(corsOption)) app.use(express.json()); app.use(morgan('dev')); app.use(cookieParser()); dotenv.config(); app.get("/", (_, res) => {res.send("running")}); app.use("/api/auth", authRoutes) app.use("/api/subs", subRoutes) console.log(process.env.ORIGIN) let port = 4000; app.listen(port, async () => { console.log('server running at http://localhost:${port}'); AppDataSource.initialize().then(async () =>{ console.log("database initialized") }).catch(error => console.log(error)) })
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
Image의 src에 경로를 작성하는 것과 import로 이미지를 가져와서 넣는 것의 차이가 궁금합니다!
<Image src="/logo.png" alt="로고" width={100} height={100} /> import Logo from "@/public/logo.png"; <Image src={Logo} alt="로고" width={100} height={100} />이 두가지 접근 방식의 차이가 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
logit 모델 구성시 독립변수 교호작용은 안구해도 되는지요
logit 모델 구성시 독립변수 교호작용은 안구해도 되는지요?7회 1-2에서 강의에서는 주효과만 구해서 풀어주셔는데, 교호작용까지 하면 값이 좀 달라져서 문의드립니다
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
wrapper, bitstream 오류
안녕하세요 맛비님. 비트스트림을 완료해서 위에 ready가 떠도 초록색 바가 왔다갔다 하는게 안사라지고(generating hdl wrapper) 비트스트림도 write bitstream complete가 떠있는데 로딩창이 안사라집니다.뭐가 잘못된건지 궁금합니다
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
[4-0] 로그인하고 아무 반응이 없어요/axios.ts
❗질문 작성시 꼭 참고해주세요현재 문제(또는 에러)와 코드(또는 github)를 첨부해주세요. 맥/윈도우, 안드로이드/iOS, ReactNative, Node 버전 등의 개발환경을 함께 적어주시면 도움이 됩니다. 에러메세지는 일부분이 아닌 전체 상황을 올려주세요. (일부만 자르거나 복사하지말아주세요.) 개발환경/코드에 대한 정보가 없을경우 답변이 어렵습니다.axios.ts에서 BaseURL 바꿔도 로그인이 안됩니다...
-
해결됨친절한 블렌더 - [LV.1] 기초 모델링
랜더링 걸었을때 결과물이 이상하게 나옵니다.
안녕하세요. 열심히 수업을 듣고있는 수강생입니다.도넛스토어를 만든 후에 랜더링을 걸어보고 궁금한 부분이 있어서 질문드립니다.뷰포트와 랜더링 결과물을 같이 찍은 스크린샷입니다도넛 아이싱이 렌더링 했을때 이상하게 나옵니다. 혹시 버그인가 해서 파일을 저장해서 다시 불러왔는데요솔리디파이 오프셋에 녹색이 칠해져 있고 아이싱이 뒤집혀있습니다. 옵션값 1로 바꿔서 제대로 바꾸어놓고 찍었는데도 이상하게 나옵니다. 혹시 이게 원인일까요? 또 녹색은 왜 생기는지 궁금합니다.앞서 파일을 저장했다가 다시 열었습니다. 색이 이상한 부분이 있어 수정하고 렌더를 걸었는데 수정 전 색깔로 결과물이 나옵니다. (창문유리,화초,바닥,빵색)이상해서 세이브하고 다시 껏다 켰는데 수정한게 반영이 안된 채로 리셋되어 있습니다. 왜 잘 안되는지 궁금합니다.상세하고 알차게 강의해주셔서 재미있게 잘 공부하고 있습니다. 앞으로도 잘 부탁드립니다:D!
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
공식 문서 링크가 바뀐 것 같습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]6. 데이터 접근 기술 - 스프링 데이터 JPA.pdf (v20240526) 4페이지에 나온 두 링크를 눌러도 주소가 바뀌어서 원래 페이지로 이동하지 않습니다. https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html#jpa.query-methods.query-creation https://docs.spring.io/spring-data/jpa/reference/repositories/query-methods-details.html#repositories.limit-query-result 이 링크로 바뀐 것 같습니다.
-
미해결스프링 시큐리티 OAuth2
강의 수강신청하고 듣기 전입니다 질문있습니다.
제가 만든 두 서버 사이트끼리 sso 인증으로 로그인을 공유하려고 합니다. 이 강의에 그것에 관한 내용이 있나요? 있다면 몇강쯤에 있나요?없다면 이 강의를 어떤식으로 활용해야 구현할 수 있을까요 ?
-
미해결퍼블리싱 핵심이론 PDF 교재 및 예제파일(HTML+CSS+FLEX+JQUERY)
비주얼 스튜디오 코드 Bracket Pair Colorizar 설치
비주얼 스튜디오 코드 필수 앱 설치 및 사용법 영상을 보고 있는데'Bracket Pair Colorizar' 이라는 프로그램이 기능 제공을 더 이상 하지 않는다고 적혀있습니다. 해당 프로그램 외에 어떤걸 설치 해야 하나요???