묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
pgadmin4 질문입니다
현재 올려주신 pgadmin4 설정과 동일하게 값을 넣어도Undable to connect to server localhostfailed: 치명적오류: 사용자 "postgres"의 password인증을 실패했습니다라는 에러가 떠서 register server에서 방법을인터넷을 보고 제 ip주소도 넣어보고, pg_hba.conf에서 서버 확인하고 locahost, 127.0.0.1 두가지 모두 입력이 먹히지 않네요
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
이론강의 buttons 중에
앞 강의 중 gestureDetector를 배운적이 없는데배웠다고 표현하시는데, 어느부분에서 배웠는지 알 수 있을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
useSWR 사용시 타입 지정
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 커뮤니티 정보가져오는 useSWR에서는 다른 곳처럼 타입지정을 따로안했는데 원래는 [slug].tsx 에서 사용한 useSWR처럼 타입지정을 해줘야하나요??
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
headline에 줄이 쳐져요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 어떻게 해결해야 할지 모르겠습니다 ㅠ
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
Workspaces.map 함수가 제대로 작동하지 않습니다 ㅠ
워크스페이스에서 user정보들이 전부 불러오지 않고..하나씩만 담겨져서 보여집니다 ㅠㅠ아무리 찾아봐도 해결을 하지못해서 글을 남깁니다.프록시는 설정되어있습니다.무엇이 문제일까요.. Workspace 코드입니다.import { Channels, Chats, Header, ProfileImg, RightMenu, WorkspaceWrapper, WorkspaceName, MenuScroll, Workspaces, ProfileModal, LogOutButton, WorkspaceButton, AddButton, } from '@layouts/Workspace/styles'; import React, { FC, useCallback, useState } from 'react'; import useSWR from 'swr'; import fetcher from '@utils/fetcher'; import axios from 'axios'; import Menu from '@components/Menu'; import Modal from '@components/Modal'; import { IUser } from '@typings/db'; import { Redirect, Switch, Route, Link } from 'react-router-dom'; import loadable from '@loadable/component'; import gravatar from 'gravatar'; const Channel = loadable(() => import('@pages/Channel')); const DirectMessage = loadable(() => import('@pages/DirectMessage')); const Workspace: FC = ({ children }) => { const [showUserMenu, setShowUserMenu] = useState(false); 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(); }); }, []); const onClickUserProfile = useCallback(() => { setShowUserMenu((prev) => !prev); }, []); // 토글 함수 if (!userData) { return <Redirect to="/login" />; } 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.email, { 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/${1234}/channel/일반`}> <WorkspaceButton>{ws.name.slice(0, 1).toUpperCase()}</WorkspaceButton> </Link> ); })} {/* <AddButton onClick={onClickCreateWorkspace}>+</AddButton> */} </Workspaces> <Channels> <WorkspaceName>Sleact</WorkspaceName> <MenuScroll>menuscroll</MenuScroll> </Channels> <Chats> <Switch> <Route path="/workspace/channel" component={Channel} /> <Route path="/workspace/dm" component={DirectMessage} /> </Switch> </Chats> </WorkspaceWrapper> </div> ); }; export default Workspace;
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
callback
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1. 여기서 쓰인 callback 함수의 의미는 어떻게 될까요?? 간단하게 return으로 이해하면 될까요??next()가 없어도 다음 핸들러로 넘어가는 건가요??callback에서 첫번째 인자는 에러를 뜻하고, 두번째 인자는 위에 사진처럼하나는 filename이고하나는 acceptFile: boolean 을 뜻하는데그저 multer의 형식이라고 생각하면 될까요?? 그리고 upload =multer 저 부분이 실행되고 다음 핸들러인 uploadSubImage에서는 이미 파일이 업로드가 된 상태라고 했는데 그럼 upload= multer가 uploadSubImage로 request로 file정보를 보낸건가요?? 로그를 찍어보니까 req는 ownSub에서는 undefined였는데 uploadSubImage에서 생기더라구요...
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
iOS시뮬레이터에서 마이크 권한만 알림이 뜨고 카메라 권한 알림이 뜨지 않는 경우
안녕하세요! 강의 내용대로 코딩을 했는데, 시뮬레이터로 실행해보니 권한 설정이 제대로 되지 않아서 질문드립니다.init 함수를 강의 내용대로 코딩했는데 iOS 시뮬레이터에서 다음과 같이 마이크 허가 알림만 뜨고, 마이크 권한을 허가한 이후에도 카메라 권한에 대한 알림이 뜨지 않습니다.이 알림을 확인을 누르면 다음과 같이 바로 카메라 또는 마이크 권한이 없다는 창이 뜹니다.카메라 권한이 설정이 안돼서 이러한 화면이 나오는 것 같은데해결 방법을 알려주시면 감사하겠습니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
LocationPermission.denied관련 질문입니다
LocationPermission checkedPermission = await Geolocator.checkPermission(); if (checkedPermission == LocationPermission.denied) { checkedPermission = await Geolocator.requestPermission(); if (checkedPermission == LocationPermission.denied) { return '위치권한을 허가해주세요.'; }}권한요청 다이얼로그에서 한번허용을 누르고 앱을 종료시킨다음 재실행했을때 LocationPermission.denied가 되어 리퀘스트퍼미션이 다시 실행되는것같습니다.(위 코드 첫줄부터 실행) 그런데 리퀘스트퍼미션을 했는데도 다시 denied가되어 if (checkedPermission == LocationPermission.denied) { return '위치권한을 허가해주세요.'; } 해당 if문이 실행되는경우는 어떤게있을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
writeHead 부분
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Location에 /login만 해놓으니까 오류만 뜨고 로그인페이지로 안가고 커뮤니티 페이지로 들어가져서 경로를 아래처럼 바꿔더니 로그인페이지로 잘 가지긴 하는데 단순 경로 문제인가요??오류도 정상적으로 쿠키가 없다고 뜹니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
로그인페이지, 회원가입페이지 못들어가게하는 부분
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이 부분에서 axios.get으로 보내주는 쿠키가 없는데 어떻게 유저가 로그인을 했다는게 인증되는건가요??
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
강의에서 사용하고 있는 next.js 버전으로 설치는 어떻게 하나요?
현재 next.js를 설치하려고 하면 13.2버전으로 설치가 되고 딱히 특정 버전을 설치해주는 기능은 없는 듯 합니다. 13버전과 강의에서 쓰이는 12버전은 사뭇 다르다고 생각이 듭니다.해당 강의에서 쓰고 있는 버전이 정확히 뭔지. 그리고 해당 버전으로 다운그레이드 혹은 설치를 하려면 어떻게 해야하는지 알려주실 수 있나요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
[공유] react-mention 항상 커서 위에 나오게 수정
이전 질문을 보면 react-mention 추천이 커서 아래로 나온다고 해서 공식 문서를 확인해봤습니다.결론적으로는 forceSuggestionsAboveCursor을 사용하면 됩니다. 해당 내용은 제로초님 sleact 레파지토리에 pull request 하였습니다.allowSuggestionsAboveCursor는 아래 공간이 부족하면 위에 배치가 '가능'하도록, 즉 워크스페이스 사람이 적으면 아래로 배치forceSuggestionsAboveCursor는 항상 위로 배치allowSuggestionsAboveCursor: Renders the SuggestionList above the cursor if there is not enough space belowforceSuggestionsAboveCursor: Forces the SuggestionList to be rendered above the cursor
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
videocontrollor dispose
해당 비디오컨트롤러는 따로 dispose를 해주고있지않은데요.만약 원래 로고페이지로 돌아가는기능을 만들게되면 그때 dispose를해주면 되나요?또한 videocontroller state가 dispose될때 컨트롤러를 같이 dispose해주어야할텐데, 조건문으로 로고페이지로 돌아가면 state를 dispose하는 식으로 해주면될까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
user 과 auth에서 인증 부분
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.user.ts하고auth.ts에서이 부분이 같은데user.ts는 유저정보를 가져오기위한 미들웨어이고auth.ts는 인증을 위한 부분인데if(!user)이 둘다 있는 이유가 있을까요?그저 user.ts가 user정보를 가져오는데 조건에 해당하는 user정보가 없으면 안되니까(null) user.ts에 if(!user)이 있는건가요??제가 제대로 이해하고 있는지 헷갈려서요 ㅠㅠㅠ
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
onlogotap함수의 video nullable관련질문
void onLogoTap() async { final video = await ImagePicker().pickVideo(source: ImageSource.gallery, );if (video != null) {setState(() {this.video = video; });}}여기에서 if문을 안쓰고 setstate를 해줘도 동일하지 않나요?설명은 이미지피커에서 비디오를 고르지않고 빠져나오지않을경우 video가 null이 될수있다 라고하셨습니다.onLogoTap은 비동기 함수여서 pickvideo까지 기다린다음에 setstate가 실행될텐데 이미지를 고르지 않고 이미지픽커를 빠져나오면 await부분이 만족되지않아서 onlogotap안의 다음코드를 실행하지않기때문에, video가 null인 상황은 없지않을까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
채팅대화에서 시간이 중복될경우 안보이게 하는방법 문의.
안녕하세요. 복습중에 새로운 기능을 넣으려고 하는데 생각보다 잘 안되네요. 카카오톡 메신저처럼. 동일한 시간에 보낸 카톡시간을 안보이게 하려고합니다.서버에서 가져온 현재시간값과 이전 대화시간값(chat.createdAt) 을 비교하면 될것같은데useState 를 이용할때는 무한로딩으로 막혓고 (setState 로 현재값 저장) useRef 를 사용해서 값을 저장하여 비교하고 싶은데. 항상 현재시간값만 이용하게 되네요.어떻게 접근하는것이 좋을까요.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
쿠키에 대해서
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.로그인시 아이디와 비밀번호 → 서버(유저의 정보가 맞는지 확인 후 토큰 발급 → 쿠키에 저장 : 하지만 도메인 주소가 다르면 쿠키가 전송이안됨왜 쿠키는 도메인주소가 다르면 쿠키가 전송이 안될까요?과거 강의인 "노드 리액트 기초강의" 에서 Express에서 제공하는 cookie-parser을 이용해서 서버에서 토큰을 쿠키에 저장했었는데 이 방법도 사용해도 될까요?? - 이는 여기 강의에서 설치한 cookie모듈과 비슷한 건가요??토큰발급 후 클라이언트에 보내주고 클라이언트에서 쿠키에 저장하는 방법은?
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
next.js 버전이 12인건가요?
강의에서 사용하고 있는 next 버전이 궁금합니다.12버전인가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
findOneBy
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. findOneBy 명령어 혹시 자세하게 설명해주실 수 있을까요??User.ts를 이용해서 중복된 아이디와 이름을 찾는 원리가 어떻게 되는건가요??
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
setState 사용 차이
강의 잘 보고 있습니다.강의가 너무 좋아서 책도 함께 구매하려고 합니다.좋은 강의 감사합니다. 다름이 아니고 질문이 하나 있어 이렇게 글남깁니다. 플루터에서 setState는 화면을 갱신하는 용도로 사용하고 있다고 알고 있습니다.만약에 a= 10이라고 설정한다고 가정하면setState(() { a = 10; });a = 10; setState( () { } ) 1번 로직과 2번 로직이 내부에서 어떤 차이점이 있을까요?테스트 해본결과 1번, 2번 모두 정상 작동하더라구요 -----------------------------------------------공부하다 추가 질문이 있어 문의 드립니다.플루터에서 네임드 라우팅을 materialApp에 설정할때 특정 페이지에 필수 파라미터가 존재하면 어떤식으로 등록을 해야 할까요?예 )가정 : Two 페이지는 str값을 필수 파라미터로 받고 있습니다. routes: {"/": (context) => One(),"/two": (context) => Two(str : ??), },이게 안되면 아래와 같은 방법으로 파라미터를 설정해야 하는지 궁금합니다!var two = Two();two.str = "asdf";Navigator.of(context).push(MaterialPageRoute(builder: (_) => two));