묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
로그인 api 요청 이후 getAccessToken ( /auth/refresh ) api 401 error
안녕하세여 강사님 강의 잘 듣고 있습니다.다름이 아니라 회원가입 및 로그인 api 요청 성공시 onSuccess 함수 로직에 있는queryClient.refetchQueries({ queryKey: [queryKeys.AUTH, queryKeys.GET_ACCESS_TOKEN], });이 코드로 getAccessToken ( /auth/refresh ) api 를 요청하고 있습니다. 여기서 문제는 getAccessToken 요청시 401 error 가 발생하고 있습니다. DB 에 회원가입으로 생성된 유저 데이터는 잘 생성된 상태이고 오타는 없어보입니다. ㅠㅠ 도와주세여 아래 이미지는 log 이미지입니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
NestJS, 섹션35. 모듈 네스팅. Paginate Comments API 만들기 강의 잘림
안녕하세요.강의: NestJS REST API 백엔드 완전 정복섹션: 35 모듈 네스팅동영상: Paginate Comments API 만들기위에 적은 강의 동영상의 끝부분이, 의도치 않게 잘린 것 같습니다. 마지막인 5:56 시간에서, 말씀하는 도중에 강의가 끝나버립니다. 확인해 주시면 감사하겠습니다.
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
colors[theme]을 못읽는 이유
import React, {ReactNode} from 'react'; import { Pressable, StyleSheet, Text, PressableProps, Dimensions, View, StyleProp, ViewStyle, TextStyle, } from 'react-native'; import {colors} from '../../constants'; import useThemeStore from '@/store/useThemeStore'; import {ThemeMode} from '@/types/common'; interface CustomButtonProps extends PressableProps { label: string; variant?: 'filled' | 'outlined'; size?: 'large' | 'medium'; inValid?: boolean; style?: StyleProp<ViewStyle>; textStyle?: StyleProp<TextStyle>; icon?: ReactNode; } const deviceHeight = Dimensions.get('screen').height; function CustomButton({ label, variant = 'filled', size = 'large', inValid = false, style = null, textStyle = null, icon = null, ...props }: CustomButtonProps) { const {theme} = useThemeStore(); const styles = styling(theme); // 여기서는 제대로 출력이 됩니다. 값이 제대로 읽힙니다. console.log(colors[theme].PINK_700); return ( <Pressable disabled={inValid} style={({pressed}) => [ styles.container, pressed ? styles[`${variant}Pressed`] : styles[variant], inValid && styles.inValid, style, ]} {...props}> <View style={styles[size]}> {icon} <Text style={[styles.text, styles[`${variant}Text`], textStyle]}> {label} </Text> </View> </Pressable> ); } const styling = (theme: ThemeMode) => StyleSheet.create({ container: { borderRadius: 3, justifyContent: 'center', flexDirection: 'row', }, inValid: { opacity: 0.5, }, filled: { backgroundColor: colors[theme].PINK_700, }, outlined: { borderColor: colors[theme].PINK_700, borderWidth: 1, }, filledPressed: { backgroundColor: colors[theme].PINK_500, }, outlinedPressed: { borderColor: colors[theme].PINK_700, borderWidth: 1, opacity: 0.5, }, large: { width: '100%', paddingVertical: deviceHeight > 700 ? 15 : 10, alignItems: 'center', justifyContent: 'center', flexDirection: 'row', gap: 5, }, medium: { width: '50%', paddingVertical: deviceHeight > 700 ? 12 : 8, alignItems: 'center', justifyContent: 'center', flexDirection: 'row', gap: 5, }, text: { fontSize: 16, fontWeight: '700', }, filledText: { color: colors[theme].WHITE, }, outlinedText: { color: colors[theme].PINK_700, }, }); export default CustomButton; console.log(colors[theme].PINK_700); 이렇게 출력할 경우, 제대로 아래와 같이 출력이 됩니다만 스타일은 제대로 읽어오지 않습니다. 이 부분에 대해서 알고 싶습니다. BUNDLE ./index.js LOG Running "MatzipApp" with {"rootTag":171,"initialProps":{"concurrentRoot":false}} LOG light LOG #C63B64 LOG #C63B64 LOG #C63B64 ERROR TypeError: Cannot read property 'PINK_700' of undefined This error is located at: in CustomButton (created by ErrorBoundary) in RCTView (created by View) in View (created by ErrorBoundary) in ErrorBoundary (created by RetryErrorBoundary) in RetryErrorBoundary (created by RootNavigator) in RootNavigator (created by App) in EnsureSingleNavigator in BaseNavigationContainer in ThemeProvider in NavigationContainerInner (created by App) in _QueryClientProvider (created by App) in App in RCTView (created by View) in View (created by AppContainer) in RCTView (created by View) in View (created by AppContainer) in AppContainer in MatzipApp(RootComponent), js engine: hermes ERROR TypeError: Cannot read property 'WHITE' of undefined This error is located at: in RetryErrorBoundary (created by RootNavigator) in RootNavigator (created by App) in EnsureSingleNavigator in BaseNavigationContainer in ThemeProvider in NavigationContainerInner (created by App) in _QueryClientProvider (created by App) in App in RCTView (created by View) in View (created by AppContainer) in RCTView (created by View) in View (created by AppContainer) in AppContainer in MatzipApp(RootComponent), js engine: hermes ERROR TypeError: Cannot read property 'WHITE' of undefined This error is located at: in RetryErrorBoundary (created by RootNavigator) in RootNavigator (created by App) in EnsureSingleNavigator in BaseNavigationContainer in ThemeProvider in NavigationContainerInner (created by App) in _QueryClientProvider (created by App) in App in RCTView (created by View) in View (created by AppContainer) in RCTView (created by View) in View (created by AppContainer) in AppContainer in MatzipApp(RootComponent), js engine: hermes ERROR TypeError: Cannot read property 'WHITE' of undefined https://github.com/dydals3440/MatZip좀더 정확히 판단을 위하여 제가 커밋한 레포 남겨드립니다!!!
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
배포 환경 DB 연결 질문 있습니다.
안녕하세요. 배포를 하고 있는 중 에러를 만났는데 도저히 이해가 가지 않아서 여쭤봅니다.[Nest] 1 - 05/23/2024, 2:56:25 PM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)... Error: Access denied for user '유저'@'호스트 서버 IP' (using password: YES)제가 지금 만난 에러인데요. 현재 배포하고 있는 서버와 DB로 켜놓은 서버가 각각 다른 서버입니다.데이터베이스 사용자에 당연히 프로젝트에서 연결 해둔 유저를 추가해두었고, 배포하고 있는 서버의 접근도 허용해뒀습니다. 또한, GRANT ALL PRIVILEGES ON . TO '유저'@'호스트 서버 IP' IDENTIFIED BY '비밀번호'; flush privileges;이렇게 모든 권한도 주었습니다. 그런데 계속 위의 에러가 발생하는데 이유를 도통 모르겠습니다. 어떻게 접근해야 할까요?
-
미해결따라하며 배우는 NestJS
강의 자료 관련해서 글 남깁니다.
아마 해당 강의에서 다루는 주 내용이 아니라 그런 것 같긴한데, 강의자님 영상에서는 #10 프론트 엔드단 만들기와 #12 배포하기 강의자료가 존재하는데, 강의자료를 다운 받는 아래 링크에 존재하지 안흔데, 강의가 생성된 이후 의도적으로 제거하신 건가요?https://drive.google.com/drive/folders/1SbVMMPXVhEomuCJl-2fWAcTW4Do1OqJ2
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
AWS S3 : 버킷에 사진이 업로드가 안됩니다(2)
[Nest] 27666 - 2024. 05. 23. 오후 12:23:25 ERROR [ExceptionsHandler] ENOENT: no such file or directory, stat '/Users/제이름/MatzipApp/server/uploads/index.html'Error: ENOENT: no such file or directory, stat '/Users/제이름/MatzipApp/server/uploads/index.html' 아까 올린 문제는 제가 지역을 잘못봐서 .env 파일에서 수정해서 해결했습니다. 다시 실행해보니 이번엔 저런 오류가 뜨는데욥실제로 저런 디렉토리랑 파일이 서버 하위에 없긴 합니다.. 구글링해도 도저히 답이 안나와서 다시 한번 질문 드립니다!
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
S3 실행시 버킷에 사진이 업로드가 안됩니다
기존에 있는 문제는 해결됐습니다!(개인정보가 있어서 삭제합니다ㅜㅜ)
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
회원가입 오류입니다!
일단 회원가입시 400 에러가 발생 합니다 ! 리퀘스트 인터셉터 에러 내용 {"adapter": ["xhr", "http", "fetch"], "baseURL": "http://localhost:3030", "data": {"email": "ajrfysd@naver.com", "password": "gsas22sgda"}, "env": {"Blob": [Function Blob], "FormData": [Function FormData]}, "headers": {"Accept": "application/json, text/plain, */*"}, "maxBodyLength": -1, "maxContentLength": -1, "method": "post", "timeout": 0, "transformRequest": [[Function transformRequest]], "transformResponse": [[Function transformResponse]], "transitional": {"clarifyTimeoutError": false, "forcedJSONParsing": true, "silentJSONParsing": true}, "url": "/auth/signup", "validateStatus": [Function validateStatus], "withCredentials": true, "xsrfCookieName": "XSRF-TOKEN", "xsrfHeaderName": "X-XSRF-TOKEN"}리스폰스 인터셉터 [AxiosError: Request failed with status code 400]email, password로그도 잘 찍히고 하는데 왜 400이발생하는지 모르겠습니다..ㅠㅠ 서버쪽 같기도 한데 잘 모르겠네요..postgresql에 테이블도 잘 생성 되어 있고 npm run start:devApplication] Nest application successfully started +2ms http://localhost:3030 크롬에서 3030 으로 요청시 로그에 내줄 index.html없다고 하는거 보니 작동 하는것 같긴 한데...이상하게 Postman 에서는 couldnot send 나오고.../auth/signup도 마찬가지고... 다른 부분은 confirmPassword를 제가 rePassword로바꾸었는데 보내는 쪽에서도 비밀번호확인은 안보내는것 같고 받는 쪽에서도 아예 안받는것 같은데..혹시 위 내용으로 추측 가능한 부분이 있을까요??
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
로그인/회원가입 오류 질문 드립니다.
const postLogin = async ({ email, password, }: RequestUser): Promise<ResponseToken> => { console.log('postLogin'); const {data} = await axiosInstance.post('/auth/signin', {email, password}); console.log('data', data); return data; };회원가입에서 오류가 발생해서 db를 봤는데 db에 데이터는 들어가 있습니다. 그래서 로그인을 진행해 봤는데 로그인이 되질 않아 postLogin에 console을 찍어 보았더니 axios post 에서 아무런 값도 받아오질 못하고 있었습니다. 오류 코드는 뜨지 않구요. 시뮬레이터를 껏다 켜보기도 하고 서버를 껏다 켜보기도 했는데 이제는 회원가입 시 db에 저장도 되질 않습니다.환경은 윈도우/안드로이드 입니다.https://github.com/ghgfhfg2/react-native-base
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
room 활용하기 수업중에 가끔씩 receive_message가 두번 연달아 나옵니다.
요청은 한번밖에 보내지 않았는데 두번씩 반환을 받는데 코드를 잘 못 작성한 걸까요? 아니면 가끔씩 있는 오류인가요?? 어떤 때는 한번 받고 어떤 때는 두번 받고 규칙성이 안보입니다
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
사용자 입력값을 ILIKE에 집어넣었는때 보안적으로 어떤가요?
ILIKE와 같은 유틸함수에 직접적으로 사용자 입력값을 받을때 sql 인젝션이 방어되는지 궁금합니다. 검색해서 찾아보니 파라매터 바인딩하는 방법이 있는것 같은데 queryBuilder를 해야하는 것 같더라구요 sql injection 방어를 위해서 유틸함수를 쓰지 못하고 queryBuilder를 해야하는 거면 typeorm을 사용했을때 장점이 줄어드는 것 같아서 고민됩니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
coolsms.default에서 에러가 발생합니다. //sdk 가져오기
import coolsms from 'coolsms-node-sdk'const mysms = coolsms.default 에서 default에 빨간줄이 생기고, "typeof CoolsmsMessageService' 형식에 'default' 속성이 없습니다" 라는 에러가 계속 뜨는데 어떻게 해야하나요?import * as coolsms from 'coolsms-node-sdk' 로 임포트하면 해결되는데, 이러면 또 const messageService = new mysms(SMS_KEY, SMS_SECRET) 부분에서 문제가 터지네요ㅠㅜ..
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
main에서 적용 vs app.modules에서적용
main에 ValidationPipe를 적용 했었는데요! app.module에서도 app전반적으로 사용되는 Pipe를 적용 할 수 있어 보이는데 두 적용 방식의 차이는 무엇일까요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Transform 적용시 슬래시가 //개로 표기 되는데 괜찮은걸까요?
응답에서 슬래시가 // 두개로 표기되고 슬래시// 두개가 포함된 image 값을 그대로 복사해서 웹에서 테스트했을때 이미지는 정상적으로 확인됩니다. //두개 표기되는게 문제있는건 아닌걸까요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
VS코드 확장 질문
마우스 갖다올리면 정의 나오는 익스텐션이 어느건가요? 전 계속 loading...이라고만 나오네요 ㅠ.ㅠ
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
해결했습니다!
해결했습니다!
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
안드로이드에서만 테마별 색상이 적용안되는 이유
안드로이드 기기에서, 테마에 해당하는 색상을 못읽는 에러가 발생합니다!!iOS 같은 경우는 정상적으로 다크모드가 잘 동작합니다!!! 어떤 부분이 문제인지 알고 싶습니다. https://github.com/dydals3440/MatZip
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
useEffect 의존성 배열 문제
해당 강좌 그대로 진행하다가, 의존성 배열 문제로 인해 무한 렌더링이 발생했습니다.강사님의 깃허브 코드를 바탕으로, 강좌와 다르게 전역 상태로 관리를 진행하여 해결을 하긴 했습니다.어떠한 문제로 인해, 무한 렌더링이 발생되고, 이럴 경우에 어떤 방식으로 접근해서 해결하는지에 대한 접근 방식에 대해 알고 싶습니다!!!web과 다르게 RN은 디버깅하기가 생각보다 쉽지않네요... ㅠㅠ
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
의존성 배열에 filterItems를 넣으면 무한렌더링이 발생합니다.
import {useEffect, useState} from 'react'; import {queryKeys, storageKeys} from '@/constants'; import type {Marker} from '@/types'; import {getEncryptedStorage, setEncryptedStorage} from '@/utils'; import queryClient from '@/api/query-client'; const initialFilters = { RED: true, YELLOW: true, GREEN: true, BLUE: true, PURPLE: true, '1': true, '2': true, '3': true, '4': true, '5': true, }; function useMarkerFilterStorage() { const [filterItems, setFilterItems] = useState<Record<string, boolean>>(initialFilters); const set = async (items: Record<string, boolean>) => { queryClient.invalidateQueries({ queryKey: [queryKeys.MARKER, queryKeys.GET_MARKERS], }); await setEncryptedStorage(storageKeys.MARKER_FILTER, items); setFilterItems(items); }; const transformFilteredMarker = (markers: Marker[]) => { return markers.filter(marker => { return ( filterItems[marker.color] === true && filterItems[String(marker.score)] === true ); }); }; useEffect(() => { (async () => { const storedData = (await getEncryptedStorage(storageKeys.MARKER_FILTER)) ?? initialFilters; setFilterItems(storedData); })(); }, [filterItems]); return {set, items: filterItems, transformFilteredMarker}; } export default useMarkerFilterStorage;의도대로 items의 값을 set으로 변경하면 필터링이 정상적으로 동작하지만 무한렌더링이 발생합니다.무한 렌더링을 막기 위해 의존성 배열을 지우고 쿼리키를 무효화하는 방법등 많은 시도를 해봤지만 제대로 동작하지 않네요. 혹시 현재 진행된 강의에서 무한 렌더링을 해결할 수 있는 방법이 있을까요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Part 1
Part1 수강중인데 혹시 이까지만 해도 초기에 나온 로드맵을 다 다루게 되는건가요? Part1은 어느 범위까지를 다루게 되는건지요 @.@?