inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

리트윗 따로 관리 시 테이블 관계성 질문

미해결

[리뉴얼] React로 NodeBird SNS 만들기

안녕하세요 선생님. 제 프로젝트에서는 리트윗 기능이 일반 게시글과 분리되어 관리되거든요.(리트윗만 모아서 보여주고 게시글과 한꺼번에 렌더링해서 보여주지 않습니다) 그래서 처음에는 그냥 for문으로 리트윗 내용일 땐 렌더링 하지 않는 식으로 처리했다가 제 프로젝트에서 mainPosts로 map함수를 쓰는 컴포넌트가 몇 개 돼서 그냥 리트윗 테이블을 따로 만들어서 관리할까 하는데 이럴 때 post와의 관계성은db.Post .hasMany(db.Retweet); 이런 식으로 잡아주면 되나요?

  • react
  • node.js
  • redux
  • nodejs
  • next.js
  • express
  • Next.js
뉸뉴 댓글 1 좋아요 0 조회수 270

typeorm @Index()에 궁금한거 질문 드립니다!

미해결

따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)

export default class User extends BaseEntity{ ... @Index() @Column({ unique: true}) email:string; ... } 여기에서 다루는 이 코드와 @Unique(['email']) export default class User extends BaseEntity{ ... @Column() email:string; ... } 두가지가 어떤 차이가 있는걸까요...? 너무 궁금 합니다!

  • 클론코딩
  • node.js
  • Next.js
  • typescript
  • docker
  • react
  • 클론코딩
  • next.js
  • postgresql
  • nodejs
rhkdtjd_12 댓글 1 좋아요 0 조회수 775

예시 1번이 이해가 가지않습니다.

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

선생님께서 주신 1번 자료에서 [22,23]이라는 값이 있습니다. 이값때문에 [12,23], [21,23], [22,23]만 뽑히는거 아닌가요?? 어떻게 6개가 나오는지 이해가 되지않습니다.

  • 코딩-테스트
  • python
  • 코테 준비 같이 해요!
코딩코딩코딩코 댓글 2 좋아요 0 조회수 434

4092 Error

해결됨

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

8080으로 안되서 검색해서 이것저것 해봐도 안되길래 8090으로 하니까 되는데 8090을 써도 상관 없나요?

  • html/css
  • HTML/CSS
  • 머신러닝 배워볼래요?
  • tensorflow
  • node.js
  • react
  • nodejs
  • 머신러닝
  • react-native
  • javascript
  • express
exwhite 댓글 2 좋아요 1 조회수 577

페이지에 렌더링이 안됩니다 ..

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

선생님이랑 똑같이 작성했는데 왜 그럴까요...??

  • typescript
  • redux
  • react
  • next.js
  • tdd
  • Next.js
starbucks50 댓글 1 좋아요 0 조회수 379

게시판 리스트 최초 접속시 로딩시간이 너무 오래 걸립니다

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

최초 접속시 10초가 넘는 로딩시간이 걸립니다. 왜 그런지 알 수 있을까요? 그 이후로는 빠르게 동작합니다.

  • seo
  • node.js
  • graphql
  • nodejs
  • react
  • next.js
  • Next.js
김태진 댓글 1 좋아요 0 조회수 1427

npm i next@13

해결됨

[리뉴얼] React로 NodeBird SNS 만들기

강의를 보면서 잘 오다가 npm i next@9로 해야하는걸 아래 질문에서 13을 써도 된다고 하셔서 @13 이라고 했는데 저렇게 에러 3줄이 next@9을 할 때 도 저렇게 뜨고 13으로 해도 저렇게 뜹니다 package.json 뜨는 것 까진 잘 됐어요 어떻게 해야할까요? PS C:\Users\USER\Desktop\1080\react1> cd prepare PS C:\Users\USER\Desktop\1080\react1\prepare> cd front PS C:\Users\USER\Desktop\1080\react1\prepare\front> node -v v18.14.0 PS C:\Users\USER\Desktop\1080\react1\prepare\front> npm -v 6.9.0 PS C:\Users\USER\Desktop\1080\react1\prepare\front> npm init npm WARN npm npm does not support Node.js v18.14.0 npm WARN npm You should probably upgrade to a newer version of node as we npm WARN npm can't make any promises that npm will work with this version. npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11, 12. npm WARN npm You can find the latest version at https://nodejs.org/ This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See npm help json for definitive documentation on these fields and exactly what they do. Use npm install <pkg> afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (front) react-nodebird-front version: (1.0.0) description: entry point: (index.js) test command: git repository: keywords: author: license: (ISC) About to write to C:\Users\USER\Desktop\1080\react1\prepare\front\package.json: { "name": "react-nodebird-front", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } Is this OK? (yes) yes PS C:\Users\USER\Desktop\1080\react1\prepare\front> npm i next@13 npm WARN npm npm does not support Node.js v18.14.0 npm WARN npm You should probably upgrade to a newer version of node as we npm WARN npm can't make any promises that npm will work with this version. npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11, 12. npm WARN npm You can find the latest version at https://nodejs.org/ npm ERR! cb.apply is not a function npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\USER\AppData\Roaming\npm-cache\_logs\2023-02-14T14_50_16_126Z-debug.log PS C:\Users\USER\Desktop\1080\react1\prepare\front>

  • Next.js
  • node.js
  • express
  • react
  • redux
  • next.js
  • nodejs
lsw0810222 댓글 1 좋아요 0 조회수 684

node -v v.18.14.0

해결됨

[리뉴얼] React로 NodeBird SNS 만들기

node -v 쳤을 시 버전이 v18.14.0 으로 뜨는데 그대로 진행해도 괜찮은 건가요

  • Next.js
  • react
  • node.js
  • express
  • redux
  • next.js
  • nodejs
lsw0810222 댓글 1 좋아요 0 조회수 654

accessToken 만료시 어떻게 해야하나요..?

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

강의는 hydration 들으면서 실습하던중으로, 게시글 등록시 해당 에러가 발생하는데, 토큰 만료는 어느 부분을 놓친지 모르겠습니다. 짐작건데, accessToken store쪽을 잘못저장해놨나 싶어서 캡쳐해봤습니다.

  • nodejs
  • node.js
  • graphql
  • react
  • next.js
  • seo
  • Next.js
퍼튜 댓글 2 좋아요 0 조회수 577

API Routes 챕터 빌드시 에러

해결됨

Next.js 시작하기(feat. 지도 서비스 개발)

해당 챕터에서 빌드 시 문제가 발생했습니다. 1. getStaticProps 사용 시 발생한 에러입니다. FetchError: request to http://localhost:3000/api/stores failed, reason: connect ECONNREFUSED 127.0.0.1:3000 구글 검색해보니 getStaticProps 말고 getServerSideProps를 사용하라 하네요?? 아마 로컬 서버에 접근을 못해서 그런듯 하구요 getServerSideProps를 사용하니 TypeError: fetch failed 에러로 빌드 실패 Axios로 교체 후 시도해도 역시 실패 Node 18에서 위와 같은 문제가 발생한다는걸 발견함 Node 16으로 교체하니 빌드 성공 결론: 노드 LTS버전 말고 16버전 사용하면 이유는 모르겠지만 해결이 되긴 한다.

  • ssg
  • next.js
  • vercel
  • csr
  • csr
  • vercel
  • ssg
  • ssr
  • ssr
  • Next.js
  • seo
MinHyung 댓글 1 좋아요 1 조회수 861

Expected server HTML to contain a matching <header> in <div>.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

회원가입이나 로그인 후 주소가 http://localhost:3000/login ? 이나 http://localhost:3000/signUp ? 으로 이동해지며, url 뒤에 물음표가 붙습니다. 가끔 Failed to fetch 메시지가 뜨는것은 너무 많이 요청을 보내서 그런것같습니다만, 그것과 무관하게 아래의 이슈가 사라지지 않습니다. 지금 학습단계에서 임시로 사용하기로한 로컬스토리지때문에 발생한 이슈일까요? import React, { useEffect } from 'react'; import { ApolloLink, ApolloClient, ApolloProvider, InMemoryCache } from '@apollo/client'; import { createUploadLink } from 'apollo-upload-client' import { useRecoilState } from 'recoil'; import { accessTokenState } from '@/src/commons/store'; interface Props { children: JSX.Element; } const GLOBAL_STATE = new InMemoryCache() const ApolloSetting = (props: Props) => { const [accessToken, setAccessToken] = useRecoilState(accessTokenState) useEffect(() => { if (localStorage.getItem("accessToken")) { setAccessToken(localStorage.getItem("accessToken") ?? "") } }, []) const uplodLink = createUploadLink({ uri: "http://backendonline.codebootcamp.co.kr/graphql", headers: { Authorization: `Bearer ${accessToken}` } }) const client = new ApolloClient({ link: ApolloLink.from([uplodLink as unknown as ApolloLink]), cache: GLOBAL_STATE }); return <ApolloProvider client={client}>{props.children}</ApolloProvider>; }; export default ApolloSetting; import { Title } from '@/src/commons/styles/emotion' import * as S from './Login_styles' import React, { useEffect, useState } from 'react' import { useMutation } from '@apollo/client' import { type IMutation, type IMutationLoginUserArgs } from '@/src/commons/types/generated/types' import { LOGIN_USER } from './Login_query' import { Modal } from 'antd' import { useRouter } from 'next/router' import { useRecoilState } from 'recoil' import { accessTokenState } from '@/src/commons/store' const Login_presenter = () => { const [accessToken, setAccessToken] = useRecoilState(accessTokenState) const router = useRouter() const [input, setInput] = useState({ email: '', password: '', }) const onChangeInput = (e: React.ChangeEvent<HTMLInputElement>) => { setInput({ ...input, [e.currentTarget.id]: e.currentTarget.value }) } const [loginUser] = useMutation<Pick<IMutation, 'loginUser'>, IMutationLoginUserArgs>(LOGIN_USER); const onSubmitSignUp = async () => { if (!input.email.includes("@") || !input.email.includes(".")) { Modal.error({ content: "이메일이 유효하지 않습니다." }); return } if (input.email && input.password) { try { const result = await loginUser({ variables: { email: input.email, password: input.password } }); if (!result.data) { Modal.error({ content: "로그인에 실패하였습니다." }); return } const accessToken = result.data?.loginUser.accessToken if (setAccessToken) { setAccessToken(accessToken || "") // 3. 로그인 성공페이지로 이동하기 void router.push('/') localStorage.setItem("accessToken", accessToken) // 임시로 사용 나중에 지울예정 } } catch (error) { if (error instanceof Error) { alert(error.message) } } } } return ( <S.LoginForm> <Title style={{ color: '#fff', "textAlign": "center", "marginBottom": "20px" }}>로그인</Title> <S.InputContainer> <S.Label htmlFor='email'>이메일</S.Label> <S.Input id='email' placeholder='이메일을 입력해주세요.' onChange={onChangeInput} /> </S.InputContainer> <S.InputContainer> <S.Label htmlFor='password'>비밀번호</S.Label> <S.Input id='password' placeholder='비밀번호를 입력해주세요.' onChange={onChangeInput} autoComplete="on" type='password' /> </S.InputContainer> <S.SubmitButton onClick={onSubmitSignUp}>로그인</S.SubmitButton> </S.LoginForm> ) } export default Login_presenter import { accessTokenState } from '@/src/commons/store'; import { type IQuery } from '@/src/commons/types/generated/types'; import { gql, useQuery } from '@apollo/client'; import * as S from './Header_style' import { useRouter } from 'next/router'; import { useRecoilState } from 'recoil'; import { useEffect, useState } from 'react'; const FETCH_USER_LOGGED_IN = gql` query fetchUserLoggedIn { fetchUserLoggedIn{_id picture email name} } `; const Header = () => { const [accessToken] = useRecoilState(accessTokenState) const [isMounted, setIsMounted] = useState(false) const router = useRouter(); useEffect(() => { setIsMounted(true) }, []) const { data } = useQuery<Pick<IQuery, 'fetchUserLoggedIn'>>(FETCH_USER_LOGGED_IN); const onClickLogout = () => { if (localStorage) { localStorage.removeItem("accessToken") router.reload() } } return ( <S.Header> <S.Logo onClick={async () => await router.push(`/boards`)}> 🚢 FREE BOARD </S.Logo> {isMounted && <S.HeaderButtons> {!accessToken && <S.Login onClick={() => { void router.push(`/login`) }}>로그인</S.Login>} {!accessToken && <S.Signup onClick={async () => await router.push(`/signUp`)}>회원가입</S.Signup>} {accessToken && <S.Login onClick={onClickLogout}>로그아웃</S.Login>} {accessToken && <div>{data?.fetchUserLoggedIn.name}</div>} {accessToken && <div>{data?.fetchUserLoggedIn.email}</div>} {data?.fetchUserLoggedIn.picture && <img src={data?.fetchUserLoggedIn.picture}></img>} </S.HeaderButtons>} </S.Header> ); }; export default Header;

  • seo
  • node.js
  • nodejs
  • graphql
  • react
  • next.js
  • Next.js
이경석 댓글 1 좋아요 0 조회수 3719

4일차 장바구니에서 오류가 납니다.

해결됨

풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기

안녕하세요 4일차 공부를 하던중 willpay를 cart 에서 밖으로 꺼내 willpay-index.tsx 로 변경하게 되면서 이러한 오류가 뜨면서 장바구니가 담아지지 않습니다.(장바구니가 비어있을 때는 비어있다는 텍스트는 출력이됩니다) 코드상 오류 표시는 안나는데 해결이 안되서 여쭤봅니다. 감사합니다.

  • react
  • firebase
  • graphql
한재혁 댓글 1 좋아요 0 조회수 436

pandas 로 csv 읽어서 django model 에 저장하는데 속도 느려지는 이슈 있음. 질문드립니다.

해결됨

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

200여개의 csv 파일이 있습니다. (용량은 각각 1메가에서 120메가 - 최대 100만건 데이터 등등 ). 결측치 가 있어서 판다스 에서 불러들여서 정리하고 for 반복문으로 파일 개별적으로 읽어 들여와 장고 모델에 save() 로 입력시키는 작업을 진행하고 있습니다. 초반 10여개 파일까지는 제법 속도가 나오는데 (7만행 데이터 20분 소요) 이후로 속도가 급격하게 감소해서 24시간 돌려서 30메가 파일 겨우 저장 중입니다(1건에 1초씩 걸리네요 ㅠㅠ). 개발중이라 로컬에 있는 장고 내장 sqlite 사용 했습니다. 속도를 좀 더 빠르게 하는 방법이 있을까요? 3일째 검색 해봤는데 별다른 해결책이 보이지 않아서 질문 남겨 봅니다. app.py # new 폴더에 정리된 csv 파일을 읽어서 DB에 저장 import pandas as pd # django 프로젝트에 있는 settings.py 파일을 읽어서 환경변수로 설정 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dbking.settings") import django django.setup() #django 프로젝트에 있는 models.py 파일에서 BasicData 클래스를 읽어온다 from common.models import BasicData # new 폴더에 있는 파일명을 읽어서 product 변수에 리스트에 저장 product_list = os.listdir("./script/newdb") # product_list 에 csv 파일 정렬(오름차순) for x in product_list: # csv 파일 하나씩 읽어오기 df = pd.read_csv("./script/newdb/" + x, encoding="cp949") # 결측치를 0으로 채운다 df = df.fillna(0) for a in list_of_csv: # 파일마다 컬럼수가 달라서 remark1, remark2 라는 예비컬럼 2개 추가 # -> 인덱스 에러 나는 경우 0 으로 저장 if a[16] is None: a.insert(16, 0) a.insert(17, 0) elif a[17] is None: a.insert(17, 0) # DB에 저장 try: db_insert = BasicData( opnSvcId = a[2], opnSfTeamCode = a[3], mgtNo = a[4], fileNumber = fileNumber, businessType = businessType, opnSvcNm = a[1], apvPermYmd = a[5], confirmNumber = a[6], businessCondition = a[7], siteTel = a[8], sitePostNo = a[9], siteWhlAddr = a[10], rdnWhlAddr = a[11], rdnPostNo = a[12], bplcNm = a[13], latitude = a[14], longitude = a[15], remark1 = a[16], remark2 = a[17], ) i += 1 # print(i) except Exception as e: print("쿼리", e) continue #DB에 저장 입력 try: db_insert.save() except Exception as e: print("저장중에러",e) continue from django.db import models class BasicData(models.Model): # 개방서비스아이디 opnSvcId = models.CharField(max_length=100) #개방자치단체코드 opnSfTeamCode = models.CharField(max_length=10) # 관리번호 mgtNo = models.CharField(max_length=100) #파일번호 fileNumber = models.IntegerField() #업종명 businessType = models.CharField(max_length=100) #개방서비스명 opnSvcNm = models.CharField(max_length=100) #인허가일자 apvPermYmd = models.DateField() #영업상태구분코드(1-정상, 2-폐업, 3-휴업, 4-전환) confirmNumber = models.IntegerField() #영업상태명 businessCondition = models.CharField(max_length=100) #소재지전화 siteTel = models.CharField(max_length=100) #우편번호 sitePostNo = models.CharField(max_length=100) #주소 siteWhlAddr = models.CharField(max_length=100) #도로명주소 rdnWhlAddr = models.CharField(max_length=100) #도로명우편번호 rdnPostNo = models.CharField(max_length=100) #사업장명 bplcNm = models.CharField(max_length=100) # 위도 latitude = models.FloatField() # 경도 longitude = models.FloatField() #비고1 remark1 = models.CharField(max_length=100) #비고2 remark2 = models.CharField(max_length=100) # 생성시점 created = models.DateTimeField(auto_now_add=True) update = models.DateTimeField(auto_now=True) def save(self, *args, **kwargs): queryset = BasicData.objects.filter(mgtNo__exact=self.mgtNo) # 중복된 이름이 없을 때만 저장 if len(queryset) == 0: super().save(*args, **kwargs) print('> Created new category') # if '&' in self.addr: # self.addr = self.addr.replace('&', ' ') # self.save() # 중복된 카테고리 있을 시 저장 안함 else: print('> Cannot create category with existing name') def __str__(self): return self.name

  • django
  • docker
  • react
  • python
su hyun JIN 댓글 1 좋아요 0 조회수 756

Jupyter lab 대신 Colab 활용 가능성?

해결됨

문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!

안녕하세요. 어제부터 DeepingSauce님 로드맵을 갓 시작한 코린이 입니다. 금일 강의를 전부 결재하고 시작점에 섰는데 확인해보니 공부 환경상 Jupyter lab 활용이 불가능 하여 두가지 질문 드립니다. Colab 활용 가능성 수강 환경상 Jupyter Notebook은 쓸 수 있지만 Jupyter Lab의 사용이 불가능합니다. 그래서 Colab을 사용해볼까 하는데, 수업 진행에 무리가 없을런지 질문 드립니다. (수업내용을 보니 Jupyter에 Extention까지 설치해서 사용하던데 Colab이 해당 기능들을 다 지원할지 모르겠습니다.) Colab 설치 및 세팅방법 Colab이 활용 가능하다면 선생님 수업을 위해 (Jupyter Lab에서 했듯이) Colab의 설치 및 세팅방법도 알고 싶습니다. 혹시 가능하다면 안내 부탁 드립니다. 아는 지식이 짧아 있는 그대로 질문 드립니다.

  • python
wk 댓글 1 좋아요 0 조회수 503

ts2322 오류

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

안녕하세요 따라하며 배우는 리액트 A-Z 섹션2 6번째 강의를 수강하던 중 button 태그에 스타일을 줄 때 float가 undefined 된다는 오류가 잘 해결 되지 않아 방법을 여쭙니다.

  • Next.js
  • tdd
  • redux
  • next.js
  • react
  • typescript
dongbb00 댓글 1 좋아요 0 조회수 783

db 생성이 안됩니다

해결됨

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

db 등록이 안되네요 윈도우입니다. https://yamea-guide.tistory.com/entry/atlas-MongoError-user-is-not-allowed-to-do-action-find-on 이 글 참고해서 해봤는데도 안되요 ㅠ

  • 동시성
  • python
  • 동시성
  • FastAPI
gusdnr598 댓글 1 좋아요 0 조회수 484

PostHashtag테이블

미해결

[리뉴얼] React로 NodeBird SNS 만들기

PostHashtag(Post와 Hashtag 중간 테이블)에서 findAll을 해서 hashtag이름 까지 가지고 오는 방법이 있을 까요? 지금은 해쉬태그 Id까지밖에 가지고 오지 못해서요

  • redux
  • react
  • node.js
  • express
  • next.js
  • nodejs
  • Next.js
bs44108 댓글 1 좋아요 0 조회수 351

VS code 에디터로 사용해도 상관없나요?

해결됨

Next.js 시작하기(feat. 지도 서비스 개발)

vs code로 작업해도 상관없을까요? 그리고 npm 말고 yarn을 사용하시는 이유가 궁금합니다.

  • seo
  • next.js
  • vercel
  • Next.js
  • vercel
  • csr
  • ssg
  • csr
  • ssr
  • ssg
누리 댓글 1 좋아요 2 조회수 637

강사님 강의때 사용하신 강의자료나 그림같은건 어디 있을까요 ?ㅠ

해결됨

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

강의 내용에 도움이 될거같아서 주소나 첨부자료 보내주시면 강의 들을때 같이 활용해보도록 하겠습니다 감사합니다

  • FastAPI
  • 동시성
  • 동시성
  • python
gusdnr598 댓글 1 좋아요 0 조회수 353

인기 태그

인프런 TOP Writers

주간 인기글