inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

django-component==0.139 실행 시 오류

해결됨

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

질문을 온전히 이해할 수 있도록, 모든 맥락을 전달해주세요. 질문은 질문자가 번거로워야 보다 좋은 답변을 얻으실 수 있습니다. 시행착오를 알려주시면 곧바로 원하는 문제에 집중할 수 있습니다. 오류 메시지는 일부만 알려주시기보다 전체 오류 메시지를 캡처해서 주시면, 오류 파악에 도움이 됩니다. 당신의 파이썬/장고 페이스메이커가 되겠습니다. ;-) 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. runserver 실행 시 하기의 오류가 발생합니다. Exception ignored in : <function Componentregistry.__del__ at 0x2af53d0bf9a0> Traceback (most recent call last): File " .venv/lib/python3.10/site-packages/django_components/component_register.py", line 267, in __del__ AttributeError: 'NoneType' object has no attribute 'on_registry_deleted' Watching for file changes with StatReloader #... 일단 겉으로 보기에는 문제 없이 작동은 합니다. settings.py는 django-components 설치 - 파이썬사랑방 튜토리얼 ( pyhub.kr ) 과 documentation을 보고 수정하였는데 위와 같은 문제가 발생하는 이유를 모르겠어서 혹시 아실까 싶어 질문드립니다. from email.utils import getaddresses import os, sys from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent from django.urls import reverse_lazy from environ import Env env = Env() ENV_PATH = Path(env.str("ENV_PATH", default=str(BASE_DIR / ".env"))) if ENV_PATH.exists(): with ENV_PATH.open(encoding="utf-8") as f: env.read_env(f, overwrite=True) SECRET_KEY = env.str( "SECRET_KEY", default="django-insecure-k-7_h!2*)6jefsxn6k^2@o%jb5tozyd*6^ga+ded==osow#%!!", ) # SECURITY WARNING: don't run with debug turned on in production! DEBUG = env.bool("DEBUG", default=True) ALLOWED_HOSTS = env.list("ALLOWED_HOSTS", default=[]) CSRF_TRUSTED_ORIGINS = env.list("CSRF_TRUSTED_ORIGINS", default=[]) # Application definition INSTALLED_APPS = [ # django apps "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", # third apps "crispy_forms", "crispy_bootstrap5", "django_bootstrap5", "django_components", "django_extensions", "django_filters", "django_htmx", "formtools", # will be deprecated, form wizard "imagekit", "taggit", "template_partials", # local apps "accounts", "board", "core", "pao", "simater", "dvmt", # Django clenup should be placed last "django_cleanup.apps.CleanupConfig", ] CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5" CRISPY_TEMPLATE_PACK = "bootstrap5" TAGGIT_CASE_INSENSITIVE = env.bool("TAGGIT_CASE_INSENSITIVE", default=True) if DEBUG: INSTALLED_APPS += [ "debug_toolbar", ] AUTH_USER_MODEL = "accounts.User" # Load customized user from accounts app LOGIN_REDIRECT_URL = "/" LOGIN_URL = reverse_lazy("accounts:login") from django.core.exceptions import ImproperlyConfigured EMAIL_HOST = env.str("EMAIL_HOST", default=None) if DEBUG and EMAIL_HOST is None: # EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend" else: try: EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend" EMAIL_PORT = env.int("EMAIL_PORT") EMAIL_USE_SSL = env.bool("EMAIL_USE_SSL", default=False) EMAIL_USE_TLS = env.bool("EMAIL_USE_TLS", default=False) EMAIL_HOST_USER = env.str("EMAIL_HOST_USER") EMAIL_HOST_PASSWORD = env.str("EMAIL_HOST_PASSWORD") DEFAULT_FROM_EMAIL = env.str("DEFAULT_FROM_EMAIL") SERVER_EMAIL = env.str("SERVER_EMAIL", default=DEFAULT_FROM_EMAIL) except ImproperlyConfigured as e: print("ERROR:", e, file=sys.stderr) EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", "django_htmx.middleware.HtmxMiddleware", "csp.middleware.CSPMiddleware", ] if DEBUG: MIDDLEWARE = [ "debug_toolbar.middleware.DebugToolbarMiddleware", ] + MIDDLEWARE ROOT_URLCONF = "config.urls" TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [ BASE_DIR / "core" / "templates", # BASE_DIR / "core" / "src-django-components", ], # "APP_DIRS": True, "OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", ], "loaders": [ ( "django.template.loaders.cached.Loader", [ # Default Django loader "django.template.loaders.filesystem.Loader", # Including this is the same as APP_DIRS=True "django.template.loaders.app_directories.Loader", # Components loader "django_components.template_loader.Loader", ], ) ], }, }, ] WSGI_APPLICATION = "config.wsgi.application" # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases DEFAULT_DATABASE_URL = f"sqlite:///{BASE_DIR / 'db.sqlite3'}" DATABASES = { "default": env.db(default=DEFAULT_DATABASE_URL) } # Password validation # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", }, { "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", }, { "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", }, { "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", }, ] # Internationalization # https://docs.djangoproject.com/en/4.2/topics/i18n/ LANGUAGE_CODE = env.str(var="LANGUAGE_CODE", default="ko-kr") TIME_ZONE = "Asia/Seoul" USE_I18N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/4.2/howto/static-files/ STATIC_URL = env.str("STATIC_URL", default="static/") STATICFILES_DIRS = [ # BASE_DIR / "core" / "static", # BASE_DIR / "core" / "src-django-components", ] STATIC_ROOT = env.str("STATIC_ROOT", default=BASE_DIR / "staticfiles") # django-components # - context variable를 resolve하는 방식이 변경 from django_components import ComponentsSettings COMPONENTS = ComponentsSettings( dirs=[ Path(BASE_DIR) / "core" / "src-django-components", ], ) # COMPONENTS = { # "dirs": [ # # BASE_DIR / "components", # default # BASE_DIR # / "core" # / "src-django-components", # ], # # "context_behavior": "django", # default # } STATICFILES_FINDERS = [ # Default finders "django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder", # Django components "django_components.finders.ComponentsFileSystemFinder", ] MIDDLEWARE += [ "django_components.middleware.ComponentDependencyMiddleware", ] # Media files MEDIA_URL = env.str("MEDIA_URL", default="media/") MEDIA_ROOT = env.str("MEDIA_ROOT", default=BASE_DIR / "mediafiles") # Default primary key field type # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" from django.contrib.messages import constants as messages_constants if DEBUG: MESSAGE_LEVEL = messages_constants.DEBUG INTERNAL_IPS = env.list("INTERNAL_IPS", default=["127.0.0.1"]) if DEBUG: # FORM_RENDERER = "core.forms.renderers.NoCacheDjangoTemplates" INSTALLED_APPS += [ "django.forms", ] DEFAULT_FILE_STORAGE = "django.core.files.storage.FileSystemStorage" ADMIN_PREFIX = os.environ.get("ADMIN_PREFIX", "might/") ## django default loggings : django.utils.logs.DEFAULT_LOGGING ## LOGGING settings LOGGING = { #... } ADMINS = getaddresses([env.str("ADMINS", default="")]) # Django-csp settings CSP_FRAME_ANCESTORS = env.list("CSP_FRAME_ANCESTORS", default=[]) CSP_DEFAULT_SRC = [ "'self'", ] CSP_SCRIPT_SRC = ["'self'", "'unsafe-inline'", "'unsafe-eval'"] + CSP_FRAME_ANCESTORS CSP_STYLE_SRC = [ "'self'", "'unsafe-inline'", ] + CSP_FRAME_ANCESTORS CSP_IMG_SRC = [ "'self'", "data:", ] + CSP_FRAME_ANCESTORS if not CSP_FRAME_ANCESTORS: CSP_FRAME_ANCESTORS = ["'self'"]

  • react
  • python
  • django
  • web-api
  • htmx
pplkjh2 댓글 2 좋아요 0 조회수 192

react-hook-form handleSubmit이 동작하지 않습니다

해결됨

아바타 커뮤니티앱 만들기 (React Native Expo)

❗ 질문 작성시 꼭 참고해주세요 에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다. 질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github 을 첨부해주세요. 개발중인 OS, ReactNative, Node 버전 등의 개발환경 을 알려주셔야합니다. 에러메세지는 일부분이 아닌 전체 상황 을 올려주세요. 일부만 보여주시면 답변이 어렵습니다. 에러 잘라서 올리시면 안됩니다! (에러 일부만 자르거나 일부만 복사하지말아주세요) function EmailInput() { const { control } = useFormContext() return ( <Controller name="email" control={control} render={({ field: { onChange, value } }) => ( <InputField label="이메일" value={value} onChangeText={onChange} placeholder="이메일을 입력해주세요." /> )} /> ) } // signup 페이지 마크업 부분입니다 const signupForm = useForm<FormValues>({ defaultValues: { email: '', password: '', passwordConfirm: '' } }) async function onSubmit(data: FormValues) { console.log(data) } return ( <FormProvider {...signupForm}> <View style={styles.container}> <EmailInput /> <PasswordInput /> <PasswordConfirmInput /> </View> <FixedBottomCTA label="회원가입하기" onPress={() => { console.log('onPress::::') signupForm.handleSubmit(onSubmit) }} /> </FormProvider> ) export default function FixedBottomCTA({ label, onPress }: FixedBottomCTAProps) { const inset = useSafeAreaInsets() return ( <View style={[styles.fixed, { paddingBottom: inset.bottom || 12 }]}> <CustomButton label={label} onPress={onPress} /> </View> ) } function CustomButton({ label, size = 'large', variant = 'filled', ...props }: CustomButtonProps) { return ( <CustomPressable style={({ pressed }) => [ styles.container, styles[size], styles[variant], pressed && styles.pressed ]} {...props} > <Text style={styles[variant]}>{label}</Text> </CustomPressable> ) } export const CustomPressable = ({ children, ...props }: PressableProps) => { const pressHandlerProps = Platform.OS === "android" ? { onPressIn: props.onPress || props.onPressIn } : { onPress: props.onPress }; // console.log('pressHandlerProps:::::', pressHandlerProps) return ( <Pressable {...props} {...pressHandlerProps}>{children}</Pressable> ) } node 20v hookform 7.55v ios android 동일 증상 react-native 0.76.9v 버전입니다. 하위 버튼 컴포넌트들에서 onPress 함수만 별도 분리하여 console 찍어봐도 동작하지 않고 signupForm.handleSubmit(onSubmit) 윗부분 console 만 실행되고 있습니다 차라리 터미널에 에러 코드라도 나타나면 좋은데 아예 아무런 반응이 없어서 해결에 애를 먹고 있습니다

  • javascript
  • react
  • react-native
  • typescript
  • react-query
댓글 1 좋아요 0 조회수 195

12.13) New 페이지 구현하기 1. UI 마지막 부분 관련 질문

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

26분 50초 경에 메인 컨테이너가 화면 끝까지 안 내려온다는 이유로 index.css의 body에 display: flex;를 설정해주셨는데 제 화면에서는 display: flex;를 안 적어줘도 메인 컨테이너가 끝까지 내려오고 display:flex; 를 쓴 것과 안 쓴 것의 차이가 없습니다. 지금 React의 버전이 올라가서 달라진 걸까요? 노트북은 LG gram 쓰고 있습니다. display: flex; 체크 되어 있는 버전 display: flex; 체크 안 된 버전

  • javascript
  • react
  • node.js
코린이 댓글 2 좋아요 0 조회수 115

인스펙터가 웹뷰 내부의 웹을 못잡습니다.

해결됨

웹 개발자의 연봉을 올려주는 하이브리드앱 with Expo 프레임워크

안녕하세요 시뮬레이터 실습하고 있는 수강생입니다. 아래 사진처럼 시뮬레이터로 사파리에 접속하면 맥북의 사파리 인스펙터에서 시뮬레이터 속 웹을 인지하는데요, 엑스포 앱을 통해 웹뷰 내부의 웹은 읽지 못하는 것 같아요 따로 설정해야하는 것이 있을까요 ?

  • react
  • react-native
  • next.js
  • expo
경이 댓글 3 좋아요 0 조회수 469

git init에서 오류 발생

미해결

Git & GitHub, 원리부터 차근차근 - 근본깃

바탕화면에서 project란 파일을 만들어서 그 파일 우클릭한 다음에 open git bash로 하니깐 파일 주소까지 입력돼서 나와서 바로 git init을 입력했는데 emfor@DESKTOP-UB0UVDK MINGW64 ~/Desktop/project $ git init error: could not write config file C:/Users/emfor/Desktop/project/.git/config: I nvalid argument fatal: could not set 'core.repositoryformatversion' to '0' 이렇게 떠요 gpt한테 물어보니깐 원드라이브 어쩌고 하길래 원드라이브를 삭제하고 삭제한 이후에 혹시 모를 동기화 문제도 없애려고 저 파일을 지우고 다시 만들어서 해봤는데도 계속 저렇게 오류 메시지가 떠서 수업진도가 나가지지 않아요..어떻게 해야 할까요??

  • git
  • github
김원영 댓글 2 좋아요 0 조회수 334

풀 라우트 캐시 관련 Dynamic Page 조건에 대해 궁금한 점 있습니다.

해결됨

한 입 크기로 잘라먹는 Next.js

풀 라우트 캐시 조건에 http 요청에서 쿠키나, 헤더값등을 얻어오는 동적함수를 사용하거나 props에서 searchParams 를 꺼내오는 등의 조건들이 동적 페이지로 선정되는 기준이라고 하셨는데요. components/searchbar.tsx 에서 useSearchParams() 훅 사용도 같은 맥락인것 같은데, 이친구는 왜 빌드시에 체크된걸까요? 빌드 과정 중 정적 코드 분석을 통한 경고성 오류일까요? (with-searchbar)/page.tsx 가 static page로 선정되어, 그 내부에 포함되어 있는 컴포넌트이기 때문에 components/searchbar.tsx 까지 빌드하려다가 발생한 오류일까요? useSearchParams() 훅은 dynamic page 선정조건에 포함되지 않은걸까요? 궁금합니다! 만약 수업 내용 중 있었는데, 제가 놓친거라면 죄송합니다~

  • react
  • typescript
  • next.js
dlsrksrhk 댓글 2 좋아요 0 조회수 149

document.getElementById("aa")

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

여기에서 document.getElementById("aa")말고 document.getElementById(aa) 라고 적으면 안되나요? aa는 id설정이 끝난 변수 아닌가요?

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
H Hun 댓글 1 좋아요 0 조회수 58

얕은복사와 깊은복사 질문

미해결

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

안녕하세요. 얕은복사와 깊은복사에 대해 질문합니다. 제가 알기론 지금 예시를 든 let person1 = {firstName:'짐', lastName:'코딩'}; let person2 = {...person1}; person1.firstName = 'GYM' console.log('person1: ', person1); console.log('person2: ', person2); 이거를 깊은 복사라고 하셨는데 얕은 복사 아닌가여?? 값이 원시값이라서 참조 공유 문제가 안생기는거 아닌가요?? 깊은 복사는 모든 깊이까지 값 자체를 완전하게 복사해야되는걸로 알고 있어서 cloneDeep이나 JSON.parse(JSON.stringify(person1)) 이런식으로 써야되는걸로 알고 있거든여. const items = [...todos] 도 얕은 복사지만 새로운 배열 주소를 만들어서 리액트에서는 변화가 생겼다고 판단하고 리렌더링이 되는걸로 알고 있는데 아닌가요??

  • react
  • React-Context
  • react-router
  • tailwindcss
  • react-query
얄라차개발자 댓글 2 좋아요 1 조회수 149

리퀘스트 메모이제이션을 끄려면?

해결됨

한 입 크기로 잘라먹는 Next.js

🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의 듣다가 궁금해진게 리퀘스트 메모이제이션이 자동으로 작동하는데 특정 요청만 끄려면 어떻게 해야 하나요? 예제 프로젝트에서 추천 도서를 랜덤으로 가져오는데 동일 컴포넌트를 여러개 호출 해보니 메모이제이션이 작동해서 모두 똑같이 나오더라고요 일반적이진 않지만 이런 랜덤성(?)있는 데이터는 메모이제이션을 적용하고 싶지 않을 수도 있을 것 같은데 이런 경우는 어떻게 하나요

  • react
  • typescript
  • next.js
cwnsgur13579 댓글 2 좋아요 0 조회수 156

CSR 방식 관련 문의 사항

해결됨

한 입 크기로 잘라먹는 Next.js

CSR 방식과 관련하여 궁금한 점이 있습니다. CSR 방식에서, 서버에서 처음부터 번들링된 JavaScript 파일을 보내주지 않고, 빈 껍데기 HTML 파일을 먼저 보내는지 이유가 궁금합니다. 빈 껍데기 HTML 파일이라 Next.js에서처럼 Hydration도 이루어지지 않을 텐데, 빈 껍데기 HTML 파일을 왜 보내는지 아무리 생각해 봐도 용도를 모르겠습니다.

  • react
  • typescript
  • next.js
춘식이 댓글 2 좋아요 0 조회수 147

수업내용에 궁금한 점

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

지금 섹션 [입 중급] CSS&JS 마스터 섹션 01 강의는 다 듣고 섹션 02 강의를 들어야 합니다. 그런데 강의 순서대로 듣는게 맞는건지 아니면 css 부분 부터 다 듣고 다시 올라와서 js 강의를 듣는건지 알고 싶습니다.

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
skykwj0422 댓글 3 좋아요 0 조회수 119

궁금한 점이 있어서 여쭈어봅니다!

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요, 강사님! 강의 잘 보고 있습니다! 이번 강의를 들은 뒤에 다른 수강생분들의 질문도 보면서 따로 정리를 하며 문득 든 궁금점이 있어 여쭈어봅니다. 각 페이지 별로 최초 접속할 때에 사전 렌더링이 진행되는 건가요? ex.) index페이지, search 페이지(/search), book 페이지(/book) 등 각각 처음 접속할 때 사전렌더링이 진행되는지 1번이 맞다면 프리페칭과 부딪히는 게 아닌지 궁금합니다! ex.) index 페이지에 최초 접속할 때, index 페이지에서 이동할 가능성이 있는 페이지의 JS Bundle을 미리 불러오니까 처음 search 페이지로 이동한다면 사전 렌더링 방식으로 해야 되는데(1번이 맞다면), 이미 JS Bundle을 불러와 준비해두었기 때문에 CSR 방식으로 렌더링이 되지 않나요? 프리페칭이 진행되어서 index 페이지가 렌더링될 때 search 페이지의 JS Bundle이 같이 렌더링되어 CSR 방식으로 search 페이지를 요청 받았는데, 만약 search 페이지에서 미리 렌더링되지 않은 페이지로 이동하게 되면 다시 사전 렌더링 방식을 거쳐 이동하게 되는 건가요? 혹은 search 페이지로 이동할 때 CSR 방식으로 브라우저에서 바로 화면에 노출되게 하고, 내부에서 따로 브라우저-서버 사이에 렌더링되지 않았던 페이지의 JS 코드를 렌더링하는 건가요?

  • react
  • typescript
  • next.js
고은 댓글 1 좋아요 0 조회수 126

업로드 파일 보여주기(교재 191~199) 관련 질문

미해결

코드로 배우는 React 19 with 스프링부트 API서버

위 그림은 교재 195페이지 내용입니다. localhost:8080으로는 교재의 내용대로 잘 실행이 되었습니다. 그래서, 지금은 aws beanstalk에서(localhost:8080이 아니 aws 서버)에서 윗 부분을 실행 시켜볼려고 하니, 3가지에 부딪혔는데... 당장 내 서버(aws서버)의 upload폴더는 어디에서 볼 수 있으며, 어떻게 upload 폴더에 aaa.jpg를 올리며, 'localhost:8080/api/products/view/aaa.jpg 대신에 "beanstalk도메인/api/products/view/내파일이름"으로 위의 사진 처럼 실행시킬 수 있는지 위 3가지에 대해서 정중히 질문드립니다. (수정 추가) 지금 aws RDS 의 CRUD는 원활히 이루어지고 있습니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
hee woong Yoo 댓글 1 좋아요 0 조회수 151

Streaming 관련 질문

미해결

Next.js App router 기반 Chat GPT 만들기

Loading UI & Streaming 강의 수강 중 강의 내용대로 따라 했는데 잘 안되는 부분이 있어서 질의드립니다! dashboard/page 에서의 page loading...은 정상적으로 나오는데 Card 컴포넌트 각각의 loading도 page loading 이후 한번에 로드되면서 각각의 loading이 나오지 않습니다. 혹시 어떤 문제가 있는지 알려주실 수 있으실까요? 아래에는 해당 깃허브 링크와 이미지 첨부했습니다! https://github.com/holdn2/NextJS-Inflearn-Chatgpt

  • react
  • typescript
  • next.js
  • tailwindcss
  • zustand
  • chatgpt
Uch0 댓글 2 좋아요 0 조회수 131

layout tab 설정 문의.

해결됨

아바타 커뮤니티앱 만들기 (React Native Expo)

탭 설정 관련 문의 드립니다. 현재 디렉토리는 아래 이미지와 같은 구조이고, 하단의 스크립트처럼 Tab 설정에는 Home / Profile / setting 3가지가 명시 된 상태인데 이전 미션에서 작성한 mission.tsx가 하나의 탭으로 잡히고 있습니다. RN 구조상 (tabs) 디렉토리 하단에 파일들이 자동으로 탭으로 잡히는 구조인지, 별도의 설정으로 뺄 수 있는지 알수 있을까요?? export default function TabLayout() { return ( <Tabs screenOptions={{ tabBarActiveTintColor: "black", headerShown: false, }} > <Tabs.Screen name="index" options={{ title: "Home", }} /> <Tabs.Screen name="my" options={{ title: "Profile", }} /> <Tabs.Screen name="setting" options={{ title: "setting", }} /> </Tabs> ); }

  • javascript
  • react
  • react-native
  • typescript
  • react-query
dev.edchoi 댓글 2 좋아요 0 조회수 146

querydsl QTodo관련 문의

미해결

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요. 강의를 듣다가 QTodo 사용하는 시점에서 문제가 발생하여 문의드립니다. gradle 빌드시점에 QTodo 클래스를 생성하는 것 까진 확인을 하였는데 search1 메소드에서 QTodo를 사용하려고 하니 클래스 인식 자체를 못하고 있습니다.(import도 안됨) 강의 내용상으로 봤을 때 build 디렉토리에서 인위적으로 복사한 것 같진 않은데 해당 클래스를 어떻게 import해서 사용해야 할지 몰라서 문의드립니다. springboot 버전은 3.3.10입니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
김종민 댓글 3 좋아요 0 조회수 157

궁금한 점 질문 드립니다!

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요. 질문 있습니다. userAgent에 있는 값을 사용하고 싶습니다. 서버 측에서는 next/header 함수를 통해서 클라이언트 측에서는 네비게이터의 userAgent 객체를 사용하면 될 것 같은데 이 값을 사용하는 함수는 클라이언트, 서버 양쪽에서 실행됩니다. 서버인지 클라이언트인지 분기 처리 후 값을 가져오고 싶었는데 next/header를 사용하는 파일을 import 하기만 해도 클라이언트 측에서는 에러가 나더라고요. 이런 상황에서는 어떻게 해결해 나가는게 좋을까요? 감사합니다.

  • react
  • typescript
  • next.js
Milkyway 댓글 2 좋아요 0 조회수 93

todo list 검색 기능 문의

해결됨

코드로 배우는 React 19 with 스프링부트 API서버

todo list 에서 검색어를 입력하여 검색된 결과를 화면에 출력하려면 어떻게 구현해야 하는지요? 예제에는 이런 것이 없는 거 같은데 제가 대충봐서 잘못 이해하고 있는 건가요? 전체적인 흐름으로 설명해주시면 감사하겠습니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
Link 댓글 2 좋아요 0 조회수 75

travel seller가 캐싱되지 않습니다.

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

fetchTravelproducts에서 클릭으로 상세 페이지로 들어가면 fetchTravelproduct 의 data 값을 보여주는데 API 요청에서 data 값을 확인하면 seller 값이 들어있는데 data.fetchTravelproduct.seller를 콘솔에 찍으면 null 이 뜹니다. (다른 데이터는 정상적으로 불러옵니다.) fetchTravelproducts에서는 판매자 이름이 잘 출력이 되는데 상세페이지에 들어가면 해당 fetchTravelproduct API 요청으로 가져와도 판매자 데이터가 없는 상태로 뜨는데 문제가 뭘까요? 여기서 상세페이지에서 새로고침을 하면 정상적으로 판매자가 보여집니다. fetchTravelproducts에서 캐싱하는 과정에 문제가 있는 걸 까요? // 상세 페이지 import { Query } from "@/entities/api/graphql"; import { gql, useQuery } from "@apollo/client"; export const TRAVEL_PRODUCT = gql` query fetchTravelproduct($travelproductId: ID!) { fetchTravelproduct(travelproductId: $travelproductId) { _id name remarks contents price tags images pickedCount travelproductAddress { zipcode address addressDetail lat lng } seller { _id name picture } createdAt } } `; export const useFetchTravelProduct = ({ travelId }: { travelId: string }) => { const result = useQuery<Pick<Query, "fetchTravelproduct">>(TRAVEL_PRODUCT, { variables: { travelproductId: travelId }, }); return result; }; // 목록 페이지 import { Query } from "@/entities/api/graphql"; import { gql, useQuery } from "@apollo/client"; const TRAVEL_PRODUCTS = gql` query fetchTravelproducts($isSoldout: Boolean, $search: String, $page: Int) { fetchTravelproducts(isSoldout: $isSoldout, search: $search, page: $page) { _id name remarks contents price tags images pickedCount travelproductAddress { zipcode address addressDetail lat lng } buyer { _id name picture } seller { _id name picture } createdAt } } `; interface UseFetchTravelProductsArgs { isSoldout: boolean; search: string | null; page: number; } export const useFetchTravelProducts = ({ isSoldout, search, page, }: UseFetchTravelProductsArgs) => { const result = useQuery<Pick<Query, "fetchTravelproducts">>(TRAVEL_PRODUCTS, { variables: { isSoldout, search, page, }, }); return result; };

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
초무 댓글 2 좋아요 0 조회수 75

Docs 추가한 게 자꾸 사라져요

미해결

Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)

안녕하세요 선생님! 친절한 설명과 함께 강의 잘 듣고 있습니다. 강의교안에 링크로 남겨주신 것들 Cursor AI 설정에 Docs로 추가시에 add 한 것들이 자꾸만 사라지는 오류가 있습니다. 이전 강의에서도 사라지는 오류가 있을 때 재시도 하면 괜찮다고 하셔서 여러 번 시도했는데, 자꾸만 사라지네요 ㅠㅠ 뭔가 설정상의 문제가 있을까요?

  • react
  • 블로그
  • next.js
  • cursor
  • cursorai
유예지 댓글 1 좋아요 0 조회수 216

인기 태그

인프런 TOP Writers

주간 인기글