묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결처음 만난 리덕스(Redux)
안녕하세요! RTK Query 에 대해 궁금합니다
RTK Query 에 대한 강의도 추후에 올려주실 생각 있으신가요 ??RTK Query 에 대한 한국어 자료가 별로 없네요 ㅠ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
useEffect()의 window에 관한 콘솔은 계속 찍히는 이유가 무었인가요?
useEffect(() => { function onScroll() { console.log( window.scrollY, document.documentElement.clientHeight, document.documentElement.scrollHeight ); if ( window.scrollY + document.documentElement.clientHeight === document.documentElement.scrollHeight ) if (hasMorePost) { const dummypost = generateDummpyPost(10); dispatch(loadPost({ dummypost })); } } window.addEventListener("scroll", onScroll); return () => { window.removeEventListener("scroll", onScroll); }; }, [hasMorePost]);useEffect를 이런 식으로 작성하면 hasMorePost의 값이 변경되기 전까지 useEffect는 처음 단한번만 실행된후 그후에는실행되지 않아야 하는데 왜 계속 console.log가 실행되는건가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
댓글부분 구현시 Comment가 적용되지 않는 부분
댓글 구현하기 수강 중에 제로초님께서 antd의 <Comment />를 import 하여 적용하는데 안 되시는 분들은 List.Item과 List.Item.Meta를 이용해서 만들어보세요. 제 경우 antd를 최신버전으로 사용하고 있는데 공식문서를 보니 Comment는 없습니다. 대신 List 컴포넌트에 List.Item과 List.Item.Meta가 있는데 이걸 이용해 댓글 컴포넌트를 만들 수 있습니다. {commentFormOpened && ( <div> <CommentForm post={post} /> <List header={`${post.Comments.length}개의 댓글`} itemLayout="horizontal" dataSource={post.Comments} renderItem={(item) => ( // 강의에서는 <li></li>로 사용하고 있습니다. <List.Item> {/* 강의에서는 <Comment />로 사용하고 있습니다. */} <List.Item.Meta // author => title로, content => description으로 적용하면 강의에서 보는 UI와 똑같아요. title={item.User.nickname} avatar={<Avatar>{item.User.nickname[0]}</Avatar>} description={item.content} /> </List.Item> )} /> </div> )}
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
자유게시판 로그인 유저 전용 작성하기
강사님 안녕하세요, 혹시 로그인 유저가 자유게시판 작성하기 할때작성자, 비밀번호등... 필요하잖아요근데 비밀번호는 로그인 유저가 한 비밀번호를 가져와야 하는데 이걸 localStorage, session에해버리면 보안상 문제가 생기지않나요? 지금은 그냥 localStroage, session 이런곳에 유저 비밀번호를 저장해놓을까요?
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
admin 에 나타나지 않는 몇몇 필드들
안녕하세요, 강의를 잘 듣고 있습니다. 모델 필드에 있는 몇몇 필드들이 admin에 나타나지 않더군요예를 들면, updated_at, created_at 같은 필드들이요 이를 위해서 admin 페이지에 일일히 모델 필드를 list_display에 등록해줘야 하는게 맞나요? from django.contrib import admin# Register your models here.from .models import *admin.site.empty_value_display = "-empty-"admin.site.register(Product)admin.site.register(CartProduct)class OrderAdmin(admin.ModelAdmin):list_display = ['customer', 'transaction_id', 'total_price']admin.site.register(Category)admin.site.register(UserProfile)admin.site.register(Order)admin.site.register(OrderedProduct)admin.site.register(ShipmentInfo) 그럼 제가 직접만든 모델의 경우에는 그렇다 쳐도..allauth에 있는 site domain 부분이 나오질 않는거에요 ㅠㅠ...제가 뭘 잘못 건드렸는 지 모르겠는데, 맨처음 프로젝트할 때에는 allauth의 소셜 어플리케이션 부분에 사이트 도메인을 입력할 수 있는 커다란 박스가 있었는데, 그것만 또 안난옵니다. 제가 뭘 잘못한건지 ㅠㅠ 원래 잘 나오던건데... 이번에 파이참 커뮤니티 에디션에서 유료버전으로 바꾸고, 프로젝트를 만들고 나니 admin에 몇몇 모델의 필드들이 잘 보이지 않습니다.verbose name을 설정된것들이 특히 그런 거 같은데 무엇이 문제인지 도통 모르겠습니다. 그렇다고 allauth를 제가 admin에 등록해야하는걸까요?2.제가 모르는 무언가가 있는걸까요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
rangepicker를 쓰려고 하는데요
레인지피커의 값을 받아오려는데 e.target.value를 하면 Cannot read properties of undefined (reading 'value')이런 오류가 떠요구글링도 해봤는데 어떻게 알수 있는 방법 없을까요?레인지피커는 파란색 박스에요
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
new aws.S3 version 확인
"multer-s3": "^2.10", "@types/multer-s3": "^2.7.12", 버전은 위처럼 깔아주셔야 강의와 호환될것같습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
밑에도 같은 질문이 있지만..
로그인 된 상태가 아닐 때 (로그인하면 안뜸) alert창: {"response":{"errors":[{"message":"","locations":[{"line":2,"column":3}],"path":["restoreAccessToken"],"extensions":{"code":"INTERNAL_SERVER_ERROR","exception":{"stacktrace":["Error"," at RestoreAccessTokenService.createAccessToken (/codecamp_backend_api/dist/api/token/services/mutation/restoreAccessToken.service.js:45:19)"," at runMicrotasks (<anonymous>)"," at processTicksAndRejections (internal/process/task_queues.js:93:5)"," at async target (/codecamp_backend_api/node_modules/@nestjs/core/helpers/external-context-creator.js:76:28)"," at async /codecamp_backend_api/node_modules/@nestjs/core/helpers/external-proxy.js:9:24"]}}}],"data":null,"status":200,"headers":{"map":{"content-length":"654","content-type":"application/json; charset=utf-8"}}},"request":{"query":"mutation restoreAccessToken {\n restoreAccessToken {\n accessToken\n }\n}"}} 이런 문구가 뜨는데 다른 분 질문에서 프론트딴에서는 무시해도 된다고 하셨는데 화면딴에서 이게 안뜨게는 못하는걸까요?할 수 있다면 어떻게 해야하나요?
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
Custom User Model 관련 권한 Field 추가
안녕하세요.기본 유저 모델로는 다 포용하지 못하는 부분이 있어 커스텀 유저 모델을 만드려고 하고 있습니다. 기본 유저 모델의 경우 staff, superuser 두 개의 권한이 있는 것으로 알고 있는데, manager 권한을 한 개 더 부여해야 하는 상황입니다.아래와 같이 코드를 구현하여 보았는데, 부족한 부분이나 잘못된 부분이 있는지 봐주시면 감사합니다.from django.db import models from django.contrib.auth.models import PermissionsMixin from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager from django.contrib.auth.validators import UnicodeUsernameValidator from django.core.mail import send_mail from django.utils.translation import gettext_lazy as _ from django.utils import timezone class UserManager(BaseUserManager): use_in_migrations = True def _create_user(self, username, email, password, **extra_fields): if not email: raise ValueError("Email을 입력해주세요.") email = self.normalize_email(email) username = self.model.normalize_username(username) user = self.model(username=username, email=email, **extra_fields) user.set_password(password) user.save(using=self.db) return user def create_user(self, username, email, password=None, **extra_fields): extra_fields.setdefault('is_staff', False) extra_fields.setdefault('is_manager', False) extra_fields.setdefault('is_superuser', False) return self._create_user(username, email, password, **extra_fields) def create_staff(self, username, email, password=None, **extra_fields): extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_manager', False) extra_fields.setdefault('is_superuser', False) if extra_fields.get('is_staff') is not True: raise ValueError('is_staff=True일 필요가 있습니다.') return self._create_user(username, email, password, **extra_fields) def create_manager(self, username, email, password=None, **extra_fields): extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_manager', True) extra_fields.setdefault('is_superuser', False) if extra_fields.get('is_staff') is not True: raise ValueError('is_staff=True일 필요가 있습니다.') if extra_fields.get('is_manager') is not True: raise ValueError('is_manager=True일 필요가 있습니다.') return self._create_user(username, email, password, **extra_fields) def create_superuser(self, username, email, password, **extra_fields): extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_manager', True) extra_fields.setdefault('is_superuser', True) if extra_fields.get('is_staff') is not True: raise ValueError('is_staff=True일 필요가 있습니다.') if extra_fields.get('is_manager') is not True: raise ValueError('is_manager=True일 필요가 있습니다.') if extra_fields.get('is_superuser') is not True: raise ValueError('is_superuser=True일 필요가 있습니다.') return self._create_user(username, email, password, **extra_fields) class User(AbstractBaseUser, PermissionsMixin): username_validator = UnicodeUsernameValidator() username = models.CharField(_("username"), max_length=50, validators=[username_validator]) email = models.EmailField(_("email_address"), unique=True) is_staff = models.BooleanField(_("staff_status"), default=False) is_manager = models.BooleanField(_("manager_status"), default=False) is_active = models.BooleanField(_("active"), default=False) date_joined = models.DateTimeField(_("date_joined"), default=timezone.now) created_at = models.DateTimeField(_("create"), auto_now_add=True) updated_at = models.DateTimeField(_("update"), auto_now=True) objects = UserManager() USERNAME_FIELD = "email" EMAIL_FIELD = "email" REQUIRED_FIELDS = ['username'] class Meta: verbose_name = _("user") verbose_name_plural = _("users") def clean(self): super().clean() self.email = self.__class__.objects.normalize_email(self.email) def email_user(self, subject, message, from_email=None, **kwargs): send_mail(subject, message, from_email, [self.email], **kwargs)
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
antdesign 적용안됨 오류
안녕하세요 제로초님 강의 잘 듣고 있습니다 .제가 댓글 구현하기까지 잘 진행하던중 Comment가 antd에서 지원을 안해준다는 error가 발생하여 antd 버전을 강의와 맞게 다운그레이드 (npm i antd@4.16.1) 했습니다.근데 그 때 이후로 화면에 antd가 제대로 적용이 되지않은 상태가 되었습니다 . 다시 원래버전을 설치해도 같은 결과입니다 . Comment문제보단 화면에 antd가 다시 제대로 적용됬으면 합니다 . 혹시 해결방안이 있을까요?화면이 이런형식으로 바뀌였습니다. 코드는 지금까지 강의와 똑같이 진행하였습니다package.json
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
개발자도구에 payload가 안보여요
강사님이 예시로 보여줄땐 보이는데왜 제가 하면 payload 탭이 안보일까요ㅠ
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
async/await 적용 성공 ㅎㅎ
async/await 적용한다고 저를 위해 AI들이 욕봤네요 ㅎㅎㅎ 성공~
-
해결됨웹 게임을 만들며 배우는 React
webpack 오류가 발생합니다.
위 사진이 에러 내용입니다.제 생각에는 webpack.config,js파일에서 extensions에서 에러가 발생한 것 같은데 뭐가 잘못된지 모르겠습니다.
-
미해결처음 만난 리액트(React)
12강 실습 (섭씨 화씨)
안녕하세요 12강 실습코드를 그대로 작성했는데 섭씨온도를 적었을때 화씨온도로 자동으로 변환되어 나타나지 않습니다. 화씨온도를 먼저 적었을때도 마찬가지고요. 코드 한번 봐주실 수 있나요? 감사합니다. Calculatorimport React, {useState} from "react"; import TemperatureInput from "./Temperatureinput"; function BoilingVerdict(props){ if(props.celsius >= 100){ return <p>물이 끓습니다.</p>; } return <p>물이 끓지 않습니다.</p>; } function toCelsius(fahrenheit){ return ((fahrenheit-32)*5)/9; } function toFahrenheit(celsius){ return (celsius*9)/5+32; } function tryConvert(temperature,convert){ const input = parseFloat(temperature); if(Number.isNaN(input)){ return ""; } const output = convert(input); const rounded = Math.round(output*1000)/1000; return rounded.toString(); } function Calculator(props){ const [temperature, setTemperature] = useState(""); const[scale,setScale]=useState("c"); const handleCelsiusChange = (temperature) => { setTemperature(temperature); setScale("c"); }; const handleFahrenheitChange = (temperature) => { setTemperature(temperature); setScale("f"); }; const celsius = scale === "f" ? tryConvert(temperature, toCelsius):temperature; const fahrenheit = scale === "c" ? tryConvert(temperature, toFahrenheit):temperature; return ( <div> <TemperatureInput scale="c" temperatrue = {celsius} onTemperatureChange={handleCelsiusChange}/> <TemperatureInput scale="f" temperatrue = {fahrenheit} onTemperatureChange={handleFahrenheitChange}/> <BoilingVerdict celsius={parseFloat(celsius)} /> </div> ); } export default Calculator;Temperatureinputconst scaleNames = { c:'섭씨', f:'화씨', }; function TemperatureInput(props){ const handleChange = (event) => { props.onTemperatureChange(event.target.value); }; return ( <fieldset> <legend> 온도를 입력해주세요(단위:{scaleNames[props.scale]}); </legend> <input value={props.temperature} onChange={handleChange} /> </fieldset> ); } export default TemperatureInput;
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
SSR을 적용해야하는 부분과 그렇지않은 부분에 대해
강좌에서 알려주신대로 페이지의 getServerSideProps로 초기로드를 SSR하는 방식을제 프로젝트에서도 적용을 했는데요. 모든 페이지에 SSR을 진행하다보니막상 배포해서 돌려보면 첫페이지 로드를 빨리 보여주는 장점보다,서버에서 렌더링을 기다려야하는 단점이 눈에 띄게 보였습니다.사실 모든 페이지에서 SSR을 적용하면 기존의 전통적인 웹과 다를바가 없지않나라는생각들 들고, SEO vs SPA 둘 중의 하나의 고민으로 오게되는데 제로초님은 이런경우에어떤 기준으로 판단을 하시나요?getStaticProps() 가 SSG(static site generation)에 해당하고 getServerSideProps() 가 SSR(server side rendering)에 해당하는것이 맞나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
설치 과정 중 질문
안녕하세요 선생님맨 처음 설치 과정에서 막히는 부분이 있어 질문 남깁니다!class 폴더를 만들고, apollo, emotion등 것들을 분명 설치를 했는데 package.json에는 확인되지 않는 이유가 뭘까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기
npm run start 오류
npm run start를 하면chatbot-app-master\node_modules\grpc\src\grpc_extension.js:57throw e;^Error: Cannot find module 'D:\Chatbot-app-master\node_modules\grpc\src\node\extension_binary\node-v115-sin32-x64-unknown\grpc_node.node'오류가 나는데 어떻게 해결하나요?강의 처음부터 다시 시작하고 npm을 삭제 후 다시 install해도 같은 오류가 생깁니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
addPostToMe createSlice()로 처리하기
제가 redux toolkit으로 제로초님 강의를 따라가고 있는데 제로초님이 올려주신 toolkit 깃허브 코드에는 addPostToMe에 대해 reducers로 선언만 다른 코드에서 사용하는건 안보이는데 그래서 제가 강의내용과 비슷하게 수정을 했습니다user.js const userSlice = createSlice({ name: "user", initialState, reducers: { addPostToMe(draft, action) { draft.me.Posts.unshift({ id: action.payload }); }, removePostOfMe(draft, action) { draft.me.Posts = draft.me.Posts.filter((v) => v.id !== action.payload); }, }, }) export const { addPostToMe, removePostOfMe } = userSlice.actions;PostForm.js import { addPostToMe } from "../reducers/user"; const onSubmit = useCallback(() => { const id = shortId.generate(); dispatch(addPost({ id, text })); dispatch(addPostToMe()); }, [text]);이렇게 코드를 수정했는데 혹시 제로초님은 다른 방식으로 addPostToMe를 사용했는데 제가 발견을 못한걸까요?아니면 제가 작성한 코드에 뭔가 다른 문제가 생길 수도 있나요?
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
javascript 연습문제
javascript 연습문제를 더 풀어보고 싶은데 연습문제만 있는 곳이 있나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
pagination - next 캐싱문제
강의 코드를 작성하다가 중간에 잘못 작성한 부분이 있었는지다음페이지를 눌렀을때 11 , 21, 31페이지로 넘어가지 않고계속 1 ~ 10페이지만 작동을 해서좀 이상하길래 재수정을 하고 재빌드를 했는데 코드의 이상이 없음에도 똑같이 작동하길래.next 폴더를 삭제하고 재빌드를 했더니정상작동 하는 것을 보았습니다..next 폴더가 캐싱 정보를 가지고 있어서 그랬던 건가요?만약에 .next 폴더를 건드리고 싶지 않다면 브라우저에서 캐시된 것들을 지우면 되는 건가요?