묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Nuxt.js 시작하기
설치가 되지 않습니다..
npm init nuxt-app learn-nuxt를 입력했으나 에러가 뜨네요 ㅠ
-
미해결Slack 클론 코딩[실시간 채팅 with React]
Cannot read properties of undefined (reading 'map')
제로초님, 코드를 따라친 후에 로그아웃을 하고 다시 로그인 하면 이런 에러메세지가 뜹니다.그런데 네트워크 탭을 보면 로그인이 정상적으로 된거 같아서 새로고침을 하면 에러 메세지가 사라지고 슬랙에서 로그인된 화면이 제대로 뜹니다.근데 또 여기서 워크스페이스를 생성하려고 하면 콘솔에 axioserror메세지가 떠서 어떻게 해야될지 모르겠습니다..Workspace/index.tsximport axios from "axios"; import React, { FC, useCallback, useState } from "react"; import useSWR from 'swr'; import fetcher from "@utils/fetcher"; import { Navigate, Routes, Route } from "react-router-dom"; import { AddButton, Channels, Chats, Header, LogOutButton, MenuScroll, ProfileImg, ProfileModal, RightMenu, WorkspaceButton, WorkspaceName, Workspaces, WorkspaceWrapper } from "@layouts/Workspace/style"; import gravatar from 'gravatar'; import loadable from '@loadable/component'; import Menu from "../../components/Menu"; import Modal from "../../components/Modal"; import { Link } from "react-router-dom"; import { IUser } from "@typings/db"; import { Button, Input, Label } from "@pages/SignUp/styles"; import useInput from "@hooks/useInput"; import {toast} from 'react-toastify'; const Channel = loadable(() => import('@pages/Channel')); const DirectMessage = loadable(() => import('@pages/DirectMessage')); const Workspace: FC<React.PropsWithChildren<{}>> = ({children}) => { const [showUserMenu, setShowUserMenu] = useState(false); const [showCreateWorkspaceModal, setShowCreateWorkspaceModal] = useState(false); const [newWorkspace, onChangeNewWorkspace, setNewWorkspace] = useInput(''); const [newUrl, onChangeNewUrl, setNewUrl] = useInput(''); // revalidate = 서버로 요청 다시 보내서 데이터를 다시 가져옴 // mutate = 서버에 요청 안보내고 데이터를 수정 const {data: userData, error, mutate} = useSWR<IUser | false>('/api/users', fetcher, { dedupingInterval: 2000, }); const onLogout = useCallback(() => { axios.post('/api/users/logout', null , { withCredentials: true, }) .then(() => { mutate(false, false); }) }, []); const onClickUserProfile = useCallback((e: any) => { e.stopPropagation(); setShowUserMenu((prev) => !prev); }, []) const onClickCreateWorkspace = useCallback(() => { setShowCreateWorkspaceModal(true); }, []) const onCreateWorkspace = useCallback((e: any) => { e.preventDefault(); // 띄어쓰기도 검사해줘야됨 if(!newWorkspace || !newWorkspace.trim()) return; if(!newUrl || !newUrl.trim()) return; axios.post('http://localhost:3095/api/workspaces', { workspace: newWorkspace, url: newUrl, }, { withCredentials: true, }) .then(() => { mutate(); setShowCreateWorkspaceModal(false); setNewWorkspace(''); setNewUrl(''); }) .catch((error) => { console.dir(error); // 에러가 나면 사용자가 인지하게 해줌 toast.error(error.response?.data, { position: 'bottom-center' }) }) }, [newWorkspace, newUrl]) const onCloseModal = useCallback(() => { setShowCreateWorkspaceModal(false); }, []) if(!userData) { return <Navigate to="/login" /> } if(!userData) return null; return( <div> <Header> <RightMenu> <span onClick={onClickUserProfile}> <ProfileImg src={gravatar.url(userData.email, { s: '28px', d: 'retro' })} alt={userData.nickname} /> {showUserMenu && <Menu style={{ right: 0, top: 38 }} show={showUserMenu} onCloseModal={onClickUserProfile}> <ProfileModal> <img src={gravatar.url(userData.nickname, { s: '36px', d: 'retro' })} alt={userData.nickname} /> <div> <span id="profile-name">{userData.nickname}</span> <span id="profile-active">Active</span> </div> </ProfileModal> <LogOutButton onClick={onLogout}>로그아웃</LogOutButton> </Menu>} </span> </RightMenu> </Header> <WorkspaceWrapper> <Workspaces> {userData?.Workspaces.map((ws) => { return ( <Link key={ws.id} to={`/workspace/${123}/channel/일반`}> <WorkspaceButton>{ws.name.slice(0, 1).toUpperCase()}</WorkspaceButton> </Link> ); })} <AddButton onClick={onClickCreateWorkspace}>+</AddButton> </Workspaces> <Channels> <WorkspaceName>Sleact</WorkspaceName> <MenuScroll>menu scroll</MenuScroll> </Channels> <Chats> <Routes> <Route path="/channel" element={<Channel />} /> <Route path="/dm" element={<DirectMessage />} /> </Routes> </Chats> {/* Input이 들어있으면 별도의 컴포넌트로 빼는 것을 추천(input에 글자를 입력할 때마다 여기 있는 함수들이 다 리렌더링 되기 때문에 비효율적) */} </WorkspaceWrapper> <Modal show={showCreateWorkspaceModal} onCloseModal={onCloseModal}> <form onSubmit={onCreateWorkspace}> <Label id="workspace-label"> <span>워크스페이스 이름</span> <Input id="workspace" value={newWorkspace} onChange={onChangeNewWorkspace} /> </Label> <Label id="workspace-url-label"> <span>워크스페이스 이름</span> <Input id="workspace" value={newUrl} onChange={onChangeNewUrl} /> </Label> <Button type="submit">생성하기</Button> </form> </Modal> </div> ) } export default Workspace;Modal/index.tsximport React, { useCallback, FC } from "react"; import { CloseModalButton, CreateModal } from "./style"; interface Props { show: boolean; onCloseModal: () => void; children: React.ReactNode; } const Modal: FC<Props> = ({show, children, onCloseModal}) => { const stopPropagation = useCallback((e: any) => { e.stopPropagation() }, []); if(!show){ return null; } return( <CreateModal onClick={onCloseModal}> <div onClick={stopPropagation}> <CloseModalButton onClick={onCloseModal}>×</CloseModalButton> {children} </div> </CreateModal> ); }; export default Modal;swr2.0 버전, react v18, typescript v18swr을 최신버전 사용해서 revalidate대신 mutate를 사용했는데 제가 잘못 사용한건지 모르겠습니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
리눅스에서는 FPGA가 불가능한가요?
HDL 강좌를 듣고, FPGA 강좌도 듣는중인데, fpga 강좌는 리눅스 환경에서 진행할 수는 없는 걸까요?만들어 보니 프로젝트 에러가 발생하긴합니다.코드를 추가하여도 뜨진않네요..물론 윈도우에서는 되긴합니다.
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
pytorch custom layer
안녕하세요! pytorch library에 대한 질문이 있습니다.저희는 pytorch로 모델을 구현할 때, nn.Module 오버라이딩하여 사전에 존재하는 모듈을 사용하여 모델을 구축합니다. 예를들어 lstm 같은 경우, 파이토치에 이미 lstm block이 구현되어있어서 그대로 가져다 씁니다. 만약 제가 직접 파이토치 상에서 layer를 직접 구축하고 싶을 때, 어떻게 구축해야하는지 궁금합니다. 파이토치 상에서 구현되지 않은 알고리즘을 파이토치로 구현하고 싶습니다.혹시 참고할 만한 레퍼런스가 있다면 뭐든 너무 감사드립니다.
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
python 과 jupyter 질문
그렇다면 저희는 훗날 파이썬 사용을 대비해서return값을 변수로 지정하고print(변수) 하는 것까지 하는 것을 습관으로 가져야한다는 말씀이실까요?Print(변수)하는 것도 습관으로 가져야한다는 말씀이실까요
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
build 오류
안녕하세요.vivado 설치 이후 환경설정까지 완료했고 프로그램 실행이 잘 되는 것 까지 확인했습니다.테스트로 build 파일을 진행하니 다음과 같은 오류가 떠서 xvlog를 확인해봤는데 정상적으로 설치가 된 것 같습니다. 어떤 부분이 문제일까요?
-
미해결홍정모의 따라하며 배우는 C언어
14.5 구조체 dot 선언 오류
구조체 선언할 때, dot을 사용해서 선언하면 아래와 같이 오류가 납니다!주석된 부분에서 오류가 나타나는 이유를 알고 싶습니다!! --------------------------------------------------------------------------------------------------#define CRT_SECURE_NO_WARNINGS#include <stdio.h>#define LEN 41struct names { char given[LEN]; char family[LEN];};struct reservation { struct names guest; struct names host; char food[LEN]; char place[LEN]; int year; int month; int day; int hours; int minutes;};int main(void){ //struct reservation res { // .guest = { "Nick", "Carraway" }, // .host = { "Jay", "Gatsby" }, // .place = { "the Gatsby mansion" }, // .food = { "Escargot" }, // .year = 2022, // .month = 4, // .day=10, // .hours = 18, // .minutes=30 //}; struct reservation res { { "Nick", "Carraway" }, { "Jay", "Gatsby" }, { "Escargot" }, { "the Gatsby mansion" }, 2022, 4, 10, 18, 30 }; printf("\Dear %s %s \n\I would like to serve you %s.\n\Please visit the Gatsby mansion on %d/%d/%d at %d:%d.\n\Sincerely, %s %s\n", res.guest.given, res.guest.family, res.food, res.day, res.month, res.year, res.hours, res.minutes, res.host.given, res.host.family); return 0;}
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Order엔티티 생성시 Member엔티티 조회
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요OrderService의 order메서드에서 처음에 memberId로 Member엔티티를 조회합니다이부분을 DB에서 조회하지 않고 단순 pk만 넣어서 생성한 Member엔티티로 Order를 생성해도 되나요?Member member = Member.builder().id(memberId).build(); 감사합니다
-
해결됨실무자가 알려주는 CANoe (For CAN 통신)
15강 강의자료 확인 요청
안녕하세요~ 15강 강의의 자료 확인 요청드립니다. 15강 자료가 14강과 동일해서요 그럼 즐거운 하루되세요~!
-
미해결Node.Js 활용하기
최신 mysql 에 node.js 가 연결되지 않는 문제 해결 방법(session 9 - session store-mysql)
"mysql -u root -p"해서 mysql을 들어가고, 다음과 같은 명령어를 실행해봅니다.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '0000'그리고 app_session_mysql.js를 다시 실행하면 session table이 만들어진 것을 확인할 수 있습니다."왜 최신 mysql에서 저렇게 해야 sessions table이 자동으로 만들어 지는가?"는 인터넷에 찾아보면 나와있습니다!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
TableCalender 질문입니다..!
사진 올린것같이 state 에다 selectedDay값을 받고 onDaySelected함수에 setState를 실행시켰습니다.다하고 나서 에뮬레이터를 확인해보니 선택한 날짜에 동그라미가 안생기더라구요.. 그래서 print를 이용하여 this.selectedDay 가 파라미터의 selectedDay가 같은 지 확인을 해봤더니 다른 값으로 false가 나옵니다.onDaySelected란 함수가 달력의 날짜를 선택하면 selectedDay와 focusedDay의 값이 선택한 날짜가 되는것 아닌가요?? 문제의 원인이 뭔지 이해가 안됩니다 ㅠ확인해보니 selectedDay의 값이 바뀌지 않고 계속 null 인것으로 나옵니다.ㅜ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
props.data?.fetchBoard?.writer 와 props.data?.fetchBoard.writer 차이
BoardDetail.presenter.js 파일에서 데이터 가져올 때,props.data?.fetchBoard?.writer로 가져오시는 데,props.data?.fetchBoard.writer로 해도 오류 안 나고 잘 작동하는데 한 번 더 ?를 사용해서 확인하는 이유가 궁금합니다!
-
미해결함수형 프로그래밍과 JavaScript ES6+
return 있고 없고 차이 질문드립니다...!
const reduce = curry((f, acc, iter) => { if (!iter) { iter = acc[Symbol.iterator](); acc = iter.next().value; } else { iter = iter[Symbol.iterator](); } return (function recur(acc) { let cur; while (!(cur = iter.next()).done) { const a = cur.value; acc = f(acc, a); if (acc instanceof Promise) acc.then(recur); } return acc; })(acc); }); const go = (...args) => reduce((a, f) => f(a), args); go( 1, (n) => Promise.resolve(n + 10), (n) => n + 100, log );위와 같이 acc.then을 리턴하지 않는 경우 log에 값이 깨져 보여서 설연휴 동안 계속 왜이런지 고민해서 내린 답인데 글이 길지만 한번 제가 내린답이 맞는지 틀렸다면 어디부분이 잘못됐는지 확인좀 부탁드립니다...! 길어서 댓글로 남기겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
Error: error: Unexpected token `< (jsx tag start)`
수업 자료와 똑같이 코딩을 하였는데도 불구하고 해당 페이지로 접속을 하면 위와같은 오류가 출력됩니다. 무슨문제인지 알 수 있을까요..? ㅜㅠ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
_app.js 수정 이후 오류
위와 같이 수정하고 난 후 yarn dev로 실행시켰는데 버튼이 안나옵니다..ㅠㅠ뭐가 문제인지 모르겠습니다
-
미해결스프링 시큐리티
Method방식의 인가에서 궁금증이 있습니다.
안녕하세요.현재 지금 스프링 부트 2.6.14로 작성중에 궁금한 점이 있습니다. @Secured와 같은 메서드 방식에서 RoleHierarchy가 그대로 적용 되는지 궁금해서 질문드립니다. 혼자서 테스트 할때 ROLE_ADMIN > ROLE_MANAGER > ROLE_USER 구조로 RoleHierarchy를 구성하고 ROLE_ADMIN 권한을 지닌 아이디로 @Secured("ROLE_USER") 메서드를 호출하는데 인가가 안되는데 원래 안되는 것인지 아니면 되는 방향이 있는지 궁금하여 질문드리겠습니다. 감사합니다.
-
미해결애플 웹사이트 인터랙션 클론!
pageYOffset || scrollY
안녕하세요-!선생님께서 pageYOffset을 사용하셨는데, 그 이유가 IE에서도 호환되기하기 위함이 맞을까요?IE를 고려하지 않는다면 scrollY를 사용하는게 맞는지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:field="*{open}"에 의해 생성된 value 속성 관련
addForm.html의 일부 코드입니다. <form th:object="${item}"> <input type="text" id="itemName" th:field="*{itemName}"> <input type="checkbox" id="open" th:field="*{open}"> </form> 렌더링 후 첫 번째 input: <input type="text" id="itemName" name="itemName" value=""> 두 번째 input: <input type="checkbox" id="open" name="open" value="true"> <input type="hidden" name="_open" value="on"/>th:field에 의해 <input>에 name, value 속성이 생기는데, value에는 각각 itemName, open의 값이 들어갑니다.th:object="${item}"에서 넘긴 Item 객체는 빈 객체니까, 첫 번째 <input>에 value=""가 들어간 것은 알겠습니다.그런데, 왜 두 번째 <input>에는 value=""가 아닌 어떻게 true라는 값이 들어가는 것인가요?혹시 <input type="checkbox">일 때는 value에 들어가는 것이 달라지는 것인가요?
-
해결됨실전! Querydsl
세타조인 질문입니다.
@Test void theta_join() { em.persist(new Member("teamA")); em.persist(new Member("teamB")); em.persist(new Member("teamC")); List<Member> result = queryFactory .select(member) .from(member) .join(member.team, team) .where(member.username.eq(team.name)) .fetch(); System.out.println("result = " + result); // => result = [] assertThat(result).extracting("username").containsExactly("teamA","teamB"); }위와 같은 쿼리문의 결과는 빈 결과값이 나오는데 이유를 모르겠습니다. 바로 밑의 질문이랑 비슷한데 답변이 잘 이해가 되지 않아 질문을 올렸습니다.
-
미해결윤재성의 자바 기반 안드로이드 앱개발 Part 2 - 메뉴와 4대 구성요소
강의 자료 불일치
동영상 내용과 강의자료 PDF 내용이 일치 하지 않아요..