inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

kubeadm init 실패(+join할 때도 참고)

해결됨

데브옵스(DevOps)를 위한 쿠버네티스 마스터

sudo kubeadm init 명령어를 입력했는데 다음과 같은 에러가 발생합니다. ttasjwi20240228@master-1:~$ sudo kubeadm init [init] Using Kubernetes version: v1.29.2 [preflight] Running pre-flight checks error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR CRI]: container runtime is not running: output: time="2024-03-04T06:52:20Z" level=fatal msg="validate service connection: validate CRI v1 runtime API for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService" , error: exit status 1 [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...` To see the stack trace of this error execute with --v=5 or higher 이런 문제가 발생하네요. 검색해보면 2020년 containerd github에 이런 증상에 관한 이슈가 올라와져있습니다. https://github.com/containerd/containerd/issues/4581 이 이슈의 답변에는 이런 내용이 있습니다. c ontainerd.io 패키지에 의해 설치된 config.toml 파일에는 disabled_plugins = ["cri"]라는 줄이 있는데, 이것이 문제를 일으킨 것으로 보입니다. 이 문제를 해결하려면 다음 명령을 실행하시면 됩니다. sudo rm /etc/containerd/config.toml sudo systemctl restart containerd sudo kubeadm init 혹시 워커노드에서 join할 때도 동일한 문제 생기면 sudo rm /etc/containerd/config.toml sudo systemctl restart containerd 이 명령을 워커노드에 입력해봅시다

  • docker
  • kubernetes
땃쥐 댓글 0 좋아요 2 조회수 1548

2024년 3월 4일 기준 설치

미해결

데브옵스(DevOps)를 위한 쿠버네티스 마스터

아래에 23년 당시 설치방법을 올리신 분의 것으로도 잘 안 되서... 그 사이에 또 바뀌었나 싶어서 노션 링크의 공식 문서를 보고 따라했습니다만 apt 명령으로 kubelet, kubeadm, kubectl이 설치가 안 되는 문제가 있습니다. 노션 링크의 공식문서는 한국어 문서였고, 최신화가 안 되어있던 것입니다. 영어 문서 를 봐야합니다. 현재 공식문서에서는 이런 말이 나와있습니다. Note: The legacy package repositories ( apt.kubernetes.io and yum.kubernetes.io ) have been deprecated and frozen starting from September 13, 2023 . Using the new package repositories hosted at pkgs.k8s.io is strongly recommended and required in order to install Kubernetes versions released after September 13, 2023. The deprecated legacy repositories, and their contents, might be removed at any time in the future and without a further notice period. The new package repositories provide downloads for Kubernetes versions starting with v1.24.0. apt.kubernetes.i and yum.kubernetes.io 레거시 패키지 리포지토리 deprecated apt.kubernetes.io and yum.kubernetes.io 2023년 8월 13일 이후 릴리즈되는 새로운 쿠버네티스 버전을 설치하기 위해서는 새로운 패키지 리포지토리를 써라 http://pkgs.k8s.io 새로운 패키지 리포지토리는 1.24.0 ~ 이후의 버전을 지원 이런 내용이 한국어 문서에는 반영이 안 됐습니다. 해당 문서에서는 1.29.0을 설치하기 위해 다음을 하라고 합니다. apt 패키지 인덱스를 업데이트하고 Kubernetes apt 저장소를 사용하는 데 필요한 패키지를 설치하십시오: sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gpg Kubernetes 패키지 저장소의 공개 서명 키를 다운로드하십시오. 모든 저장소에 동일한 서명 키가 사용되므로 URL에서 버전을 무시할 수 있습니다: (우분투 20.04에서는 sudo mkdir -p -m 755 /etc/apt/keyrings 명령어를 입력해야합니다) # If the folder `/etc/apt/keyrings` does not exist, it should be created before the curl command, read the note below. # sudo mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg 적절한 Kubernetes apt 저장소를 추가하십시오. 이 저장소에는 Kubernetes 1.29에 대한 패키지만 있으므로, 다른 Kubernetes 마이너 버전을 사용하는 경우 URL에서 Kubernetes 마이너 버전을 원하는 버전에 맞게 변경해야 합니다(설치할 Kubernetes 버전의 문서를 읽고 있는지도 확인해야 합니다). # This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list apt 패키지 인덱스를 업데이트하고 kubelet, kubeadm 및 kubectl을 설치하고 버전을 고정하십시오: sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl 결론 바로 위 내용을 그대로 적용하신다면 아래 내용을 복사 붙여넣기 하시면 돼요. cat <<EOF > kube_install.sh # /etc/apt/keyrings 폴더 생성 및 권한 부여 sudo mkdir -p -m 755 /etc/apt/keyrings # 1. apt 패키지 색인을 업데이트하고, 쿠버네티스 apt 리포지터리를 사용하는 데 필요한 패키지를 설치한다. sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gpg # 2. 구글 클라우드의 공개 사이닝 키를 다운로드 한다. sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg # 3. 쿠버네티스 apt 리포지터리를 추가한다. echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list # 4. apt 패키지 색인을 업데이트하고, kubelet, kubeadm, kubectl을 설치하고 해당 버전을 고정한다. sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl EOF sudo bash kube_install.sh kubeadm version 실행 후 버전 확인을 해보시면 됩니다 지금 자료는 2024.03.04 기준 공식문서(영어<- 중요) 자료고 내일 당장 바뀔 수도 있습니다. 제가 지금 올린 내용을 믿으시지 마시고 일단 먼저 공식문서 (영어 <- 중요) 를 참고하세요!

  • docker
  • kubernetes
땃쥐 댓글 2 좋아요 3 조회수 1619

회원가입-status 201 Ok- 리다이렉트 안되는 현상

미해결

Next + React Query로 SNS 서비스 만들기

일전에 동일한 문제로 질문 올렸는데, 혹시나 제 코드에 발견되지 않은 오타나 문제가 있을까하여 제로초님 깃에서 다운받은 ch4폴더로 실행해도 동일한 문제 발생합니다. MacOs: Ventura 13.6.4 크롬브라우저로 보고있습니다. DB연결문제는 Postgresql은 버전을 낮춰서 Homebrew로 설치하고, Username을 맥os 유저네임으로 변경하니까 다행히 연결이되었습니다. 그런데 여전히, 회원가입후 리다이렉트 안되는 현상과 심지어 회원가입 된 Postgresql 테이블에 User정보도 잘 들어가있고, 회원가입된 유저의 id,비번으로 로그인해도 로그인도 안됩니다. package.json 버전정보: 클라이언트에서 리턴받은 값: 서버에서 나오는 console: 무엇이 문제일까요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
라푼젤 댓글 5 좋아요 0 조회수 868

asyncio.run() cannot be called from a running event loop 에러 질문 드립니다

미해결

실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용

안녕하세요 선생님 강의 듣고 있는 이광희라고 합니다. 올려주신 강의로 텔레그램 자체 API를 써서 메세지 전송하기까진 했는데요 이미지를 전송하려고 보니 거의 모든 블로그, 유튜브 설명들이 파이썬 텔레그램봇으로 설명 하더라구요 근데 이 봇이 v20으로 바뀌면서 비동기 프로그래밍(?)이 된거 같습니다. 설명하고 있는 코드들이 다 과거 버전 코드들이네요. 그래서 위키에 직접 가서 코드를 보고 있는데요 import asyncio import telegram async def main(): bot = telegram.Bot("TOKEN") async with bot: print(await bot.get_me()) if __name__ == '__main__': asyncio.run(main()) 그냥 위키에 나오는 간단한 코드인데도 RuntimeError: asyncio.run() cannot be called from a running event loop 이런 에러가 계속 뜹니다. async 부터 공부하려고 다른 유튜브를 찾아서 import asyncio async def main(): await asyncio.sleep(1) print('hello') asyncio.run(main()) 이런 간단한 코드를 입력해도 똑같은 오류가 뜨네요... 이벤트 메인 루프가 실행되고 있는 동안에 함수가 작동할수 없다 그런 내용인거 같은데 위키에 있는 그대로 따라해도 에러가 나니 비전공자 입장에서는 어떻게 해야 좋을지 모르겠네요. 경영학과 출신 직장인이 실무에서 쓰려고 파이썬을 배우고 있는데 물어볼곳이 여기밖에 없어 여쭤봅니다ㅠㅠ 좀 도와주세요 깃헙? 말고 국내 파이썬 qna있는 커뮤니티라도 알려주시면 가서 좀 물어보고 싶은데 그게 어디인지도 모르겠네요.

  • python
  • 웹-크롤링
  • selenium
  • beautifulsoup
Kwanghee Lee 댓글 4 좋아요 0 조회수 3999

Create React App에서 Next.js로 마이그레이션하기 의 깃허브 소스도 npm i 하면 에러가 발생합니다.

해결됨

손에 익는 Next.js - 마이그레이션하기

Create React App에서 Next.js로 마이그레이션하기 의 깃허브 소스도 npm i 하면 에러가 발생합니다. $ npm install npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: react-scripts@5.0.1 npm ERR! Found: typescript@5.3.3 npm ERR! node_modules/typescript npm ERR! typescript@"^5.3.3" from the root project npm ERR! peer typescript@">= 2.7" from fork-ts-checker-webpack-plugin@6.5.3 npm ERR! node_modules/fork-ts-checker-webpack-plugin npm ERR! fork-ts-checker-webpack-plugin@"^6.5.0" from react-dev-utils@12.0.1 npm ERR! node_modules/react-dev-utils npm ERR! react-dev-utils@"^12.0.1" from react-scripts@5.0.1 npm ERR! node_modules/react-scripts npm ERR! react-scripts@"5.0.1" from the root project npm ERR! 1 more (tsutils) npm ERR! npm ERR! Could not resolve dependency: npm ERR! peerOptional typescript@"^3.2.1 || ^4" from react-scripts@5.0.1 npm ERR! node_modules/react-scripts npm ERR! react-scripts@"5.0.1" from the root project npm ERR! npm ERR! Conflicting peer dependency: typescript@4.9.5 npm ERR! node_modules/typescript npm ERR! peerOptional typescript@"^3.2.1 || ^4" from react-scripts@5.0.1 npm ERR! node_modules/react-scripts npm ERR! react-scripts@"5.0.1" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm ERR! npm ERR! npm ERR! For a full report see: npm ERR! C:\Users\Administrator\AppData\Local\npm-cache\_logs\2024-03-02T03_03_34_358Z-eresolve-report.txt 관련한 안내 좀 부탁합니다.

  • react
  • next.js
  • vitejs
억수 댓글 2 좋아요 0 조회수 426

Cannot find module 에러

해결됨

손에 익는 Next.js - 마이그레이션하기

vite 로 작성한 경우를 마이그레이션 하는데요. 강의에 따라서 진행하였는데 최종 아래처럼 에러가 발생합니다. Require stack: \node_modules\next\dist\server\dev\next-dev-server.js vite\node_modules\next\dist\server\dev\next-dev-server.js vite\node_modules\next\dist\server\next.js vite\node_modules\next\dist\server\lib\start-server.js package.json 은 아래와 같아요. { "name": "next-migration-02-vite", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "next dev", "build": "next build", "lint": "next lint", "start": "next start" }, "dependencies": { "next": "^14.1.1", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { "@types/node": "20.11.24", "@types/react": "^18.2.56", "@types/react-dom": "^18.2.19", "@typescript-eslint/eslint-plugin": "^7.0.2", "@typescript-eslint/parser": "^7.0.2", "@vitejs/plugin-react": "^4.2.1", "eslint": "^8.56.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.5", "typescript": "^5.2.2", "vite": "^5.1.4" } } 관련해서 안내좀 부탁드립니다. 좋은 주말 되세요~

  • react
  • next.js
  • vitejs
억수 댓글 2 좋아요 0 조회수 909

하나의 가상서버에 테스트 서버와 운영 서버를 관리하는 방법

해결됨

개발자를 위한 쉬운 도커

보통 운영 서버와 테스트 서버를 관리할 때, 실무에서는 어떤 방식으로 관리하는지 궁금합니다! 저도 팀 프로젝트를 하면서 테스트 서버와 운영 서버를 분리시켜서 CI/CD를 구축하고 싶은데 어떤 방법이 맞는건지 잘 모르겠어서요! 두 개의 EC2를 사용하는건 너무 부담되는데 그럼 하나의 EC2에서 컨테이너 2개(테스트용, 배포용)를 각각 운영하는 방법이 맞는걸까요?

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • container
cho766 댓글 2 좋아요 1 조회수 955

도커 컨테이너 run 명령어 실행할 때 질문 있습니다.

미해결

Jenkins를 이용한 CI/CD Pipeline 구축

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 개발환경은 Windows10 입니다. 도커 데스크탑을 사용하고 있는데요, docker run --privileged -itd --name ansible-server -p 20022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/ansible:latest /usr/sbin/init 강의노트에 적어주신 명령어를 보면 -v 옵션이 있습니다. 그런데 제 환경은 윈도우인데도 -v /sys/fs/cgroup:/sys/fs/cgroup 콜론을 기준으로 왼쪽이 호스트에 마운트될 경로로 알고 있는데 윈도우 경로로 바꾸면 에러가 나서 ssh 연결을 할 수가 없습니다. -v 옵션을 제거하고 해도 에러가 나구요. 반드시 저렇게 입력을 해야만 서버가 제대로 구동이 되는데 윈도우 환경인데도 되는 이유는 무엇이고 저렇게 경로를 작성하면 윈도우에서는 어디에 볼륨이 마운트 되는건가요? 강의에서는 -v 옵션에 대해서는 설명을 안하고 넘어가셔서 질문드립니다.

  • ansible
  • jenkins
  • ci/cd
  • docker
김진용 댓글 2 좋아요 0 조회수 401

결측값 채우지관련해서

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하십니까? 결측값 채우기 중 최빈값 관련해서,, m = X_train['workclass'].mode()[0] 여기서 mode()과 mode()[0]의 차이는 무엇인지요? 즉 [0]의 쓰임이 무엇인지? 다른 중앙값, 평균 등은 이런게 없는데 왜 최빈값만 이런게 뒤에 붙는지요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
kccjjang 댓글 2 좋아요 0 조회수 257

선생님 혹시 SSV 파일을 json으로 변환할 방법이 있을까요?

미해결

파이썬으로 뭘 만들지? 남박사의 파이썬 알쓸파잡

안녕하세요. 선생님 수업을 통해 크롤링까지는 성공했습니다. HTTP POST 요청으로 받아왔는데요. 다만 Response가 넥사크로에서 사용하는 "SSV"형식으로 왔습니다. SSV:UTF-8ErrorCode:string=0ErrorMsg:string=Dataset:ds_PageList_RowType_TAXNO:string(255)TAXIDX:string(255)MEMBNAM:string(255)TSDATE:string(255)TSTIME:string(255)ACQBID:string(255)CARD_NAME:string(255)HID:string(255)ACQHID:string(255)TERMID:string(255)MTRCNO:string(255)CDNO:string(255)AUTHNO:string(255)ISTMMON:string(255)CURRCODE:string(255)AMT1:bigdecimal(25)AMT2:bigdecimal(25)AMT3:bigdecimal(25)ACQDATE:string(255)DDCEDI:string(255)...... <생략> 이렇게 못생긴 데이터가 왔는데요. 이걸 json으로 파싱하고싶어서요. 이리저리 혼자서 아스키코드 찾아보고 US, RS 사용해서 어떻게든 파싱은 했는데, 제가 짠 로직이 맞나 싶어서요. (일단 작동은 되는데.. ) 혹시 선생님이라면 어떻게 하실까 싶어서요. 이런걸 잘 파싱하려면 알고리즘을 공부해야되는걸까요? 아! 그리고 깃헙에 혹시 라이브러리가 있나 찾아봤는데요. 안나오더라구요. 이게 제일 슬펐어요. 그나저나 저런거 만드는 사람들은 정말 괴물같네요.. 저런걸 도대체 어떻게 만드는 걸까요? (코드가 본문에 저렇게 붙여넣어지는 기능도 신기하네요.. 저런건 또 어떻게 만드나요?)

  • python
  • 웹-크롤링
  • gui
포포 댓글 2 좋아요 0 조회수 848

USER 명령어 질문

해결됨

개발자를 위한 쉬운 도커

도커파일에서 USER 명령어가 RUN과 CMD 사이에 와야하는 이유가 무엇인가요? 그리고 USER 명령어가 사용되는 이유에 대해 잘 이해가 가질 않아서 그런데 리눅스의 어떤 개념을 공부해야 하나요?

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • container
cho766 댓글 1 좋아요 1 조회수 252

DAY11 영상에 오타있네요

미해결

기초 알고리즘 코딩테스트 40일 완성 (by 하루코딩)

최댓값 문제 2566번인데 2556번(별 찍기 - 14)로 숫자가 잘못되어있습니다. 수정 부탁드립니다.

  • python
  • java
  • 코딩-테스트
kairs294702 댓글 2 좋아요 0 조회수 293

CMD 부분에 질문이 있습니다.

해결됨

개발자를 위한 쉬운 도커

CMD ["nginx" "-g" "daemon off;"] 이 부분이 잘 이해가 안가서 찾아보니foreground로 실행되게 변경하는것, 초기 프로세스가 종료되지 않고 컨테이너가 계속 실행된다.로 나와있던데 이게 잘 와닿지가 않습니다.. 우선 저 명령어는 생성한 nginx 컨테이너에서 실행되는거라고 이해했는데 foreground로 실행된다는게 정확히 어떤 뜻인가요? 컨테이너도 도커가 켜져있고 안건드리면 계속 돌아가지 않나요?

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • container
꼬랑쥐 댓글 2 좋아요 1 조회수 796

useQuery랑 queryClient.getQueryData랑 차이점이 있을까요??

해결됨

Next + React Query로 SNS 서비스 만들기

기본적으로 캐싱된 데이터가 있으면, 그 데이터를 가지고 오는 것으로 알고 있는데, const { data} = useQuery({ queryKey: ['posts', 'recommends'], queryFn: getPostRecommends}); const data = queryClient.getQueryData(['posts', 'recommends']); 두 가지 차이점이 있는지 궁금합니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
oct.wanga 댓글 2 좋아요 -1 조회수 1871

react-intersection-observer 무한스크롤페이지 중복호출문제

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 제로초님 강의 잘 보고 있습니다. 다름아니라 무한스크롤 부분 구현중(개인 프로젝트에 해당 부분만 먼저 적용중이라 jsonplaceholder API로 호출하고 있습니다) fetchNextPage가 2번씩호출이 되어서 delay도 조정해보았는데 계속 2번씩호출이 되서 로직에 혹시 문제가 있는지 봐주실수 있을지부탁드립니다. 0. 콘솔에 확인한 결과 처음 화면에 ref가 렌더되고 그 이후 data fetching이 완료되어 isFetcing이 false가 되었는데, data를 map으로 div로 뿌리는 렌더링 과정에 시간이 소모되어 inView는 true && isFetching도 false가 되어서 div가 화면에 나타나고 ref div를 가리기 전에 data fetching을 한번씩 더 하고 있는 상황입니다. 감사합니다

  • react
  • next.js
  • react-query
  • next-auth
  • msw
나무아르볼 댓글 3 좋아요 0 조회수 1370

kafka를 왜 사용하는지가 잘 이해가 안가서 질문 남깁니다!

해결됨

실습으로 배우는 선착순 이벤트 시스템

안녕하세요! 강의 잘 듣고 있습니다. 감사합니다. https://www.inflearn.com/course/lecture?courseSlug=%EC%84%A0%EC%B0%A9%EC%88%9C-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%8B%A4%EC%8A%B5&unitId=156125&category=questionDetail&tab=community&q=1029856 해당 질문과 답변을 보고 추가 질문 드리려고 합니다. 제가 kafka나 redis, 분산서버 등에 대해 이해도가 낮은 점 양해 부탁드립니다! 1. Kafka 미사용시 주문생성/회원가입요청의 타임아웃 및 10분뒤 실행에 대한 해결책으로 Kafka 를 선택한 이유는 배압조절(back pressure) 때문입니다. 이렇게 말씀을 해주셨는데요, 답변에서 말씀하신 예시에서 처럼 10000개 요청이 있고, 카프카를 사용한다면, 요청 100개가 쌓일때마다 db에 insert를 하고, 다시 요청 100개가 쌓일때까지 기다렸다가 insert 하기를 반복한다는 것으로 이해하면 될까요? 2. 그게 맞다면, 강의에서 구현한 apply 메서드에서 100개의 요청이 왔는지 확인하지 않고, kafka를 사용해서 다른곳에 전달하여 처리하는 이유는 무엇인가요? 예시로 apply 메서드 안에서 redis의 incr 값을 체크하면 요청이 몇개가 쌓였는지 알 수 있을테고, 데이터를 임시저장하다가 100개마다 처리할 수 있을거란 생각이 들었습니다. kafka로 다른 모듈로 전달하는 것과의 차이점이 무엇인가 궁금합니다. 3. 실제로 consumer에서 100개의 작업이 완료되었는지는 일반적으로 어떻게 확인하는 걸까요? db에 저장하기 전에 100개의 데이터는 어디에 임시저장을 하나요?

  • java
  • docker
  • spring-boot
  • kafka
  • redis
dunow 댓글 1 좋아요 1 조회수 1749

accounts/url 질의

미해결

장고 설계철학으로 시작하는 파이썬 장고 입문

화면과같이 include 부분 강좌와 다르게 저절로 세팅이 되고 서버 실행하면 계속 오류가나는데 어떻게해야하나요ㅜㅜ

  • python
  • django
동휘김 댓글 2 좋아요 0 조회수 260

빌드과정에서 USER 부분이 궁금합니다.

해결됨

개발자를 위한 쉬운 도커

강의중 해당부분에서 명령을 실행할 사용자를 변경한다고 하셨는데 그러면 궁금한게 해당 사용자에대한 생성과 권한 부여같은것들은 어디에서 진행이 되는것일까요??

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • container
잘열심히 댓글 1 좋아요 2 조회수 280

로그인 버튼 클릭시 500에러 발생

미해결

Next + React Query로 SNS 서비스 만들기

아이디, 비밀번호를 입력하고 로그인 버튼을 누르면 500에러가 발생합니다. 9090 서버 포트는 잘 켜져있다고 뜨고, 코드 올리겠습니다. <auth.ts> import NextAuth from "next-auth"; import CredentialsProvider from "next-auth/providers/credentials"; import KakaoProvider from "next-auth/providers/kakao"; export const { handlers: { GET, POST }, auth, signIn, } = NextAuth({ pages: { signIn: "/i/flow/login", newUser: "i/flow/signup", }, providers: [ CredentialsProvider({ async authorize(credentials) { // credentials 안에 id창에서 입력하는 정보다 담겨있음 const authResponse = await fetch(`${process.env.AUTH_URL}/api/login`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ id: credentials.username, password: credentials.password, //next-auth의 credentials에는 username, password로 고정되어 있어서 이를 바꿔줌 }), }); //로그인 실패시 if (!authResponse.ok) { return null; } const user = await authResponse.json(); return user; }, }), //kakao로그인을 사용할때 // KakaoProvider(), ], }); <LoginModal.tsx> "use client"; import style from "@/app/(beforeLogin)/_component/login.module.css"; import { signIn } from "next-auth/react"; import { useRouter } from "next/navigation"; import { ChangeEventHandler, FormEventHandler, useState } from "react"; export default function LoginModal() { const [id, setId] = useState(""); const [password, setPassword] = useState(""); const [message, setMessage] = useState(""); const router = useRouter(); const onSubmit: FormEventHandler<HTMLFormElement> = async (e) => { e.preventDefault(); setMessage(""); try { await signIn("credentials", { username: id, password, redirect: false, }); //kakao, naver로 바꿀 수 있음 //client 일때는 next-auth/react의 signIn을 사용 //server 일때는 @/auth의 signIn을 사용 router.replace("/home"); } catch (error) { console.log(error); setMessage("아이디와 비밀번호가 일치하지 않습니다."); } }; const onClickClose = () => { router.back(); }; const onChangeId: ChangeEventHandler<HTMLInputElement> = (e) => { setId(e.target.value); }; const onChangePassword: ChangeEventHandler<HTMLInputElement> = (e) => { setPassword(e.target.value); }; return ( <div className={style.modalBackground}> <div className={style.modal}> <div className={style.modalHeader}> <button className={style.closeButton} onClick={onClickClose}> <svg width={24} viewBox="0 0 24 24" aria-hidden="true" className="r-18jsvk2 r-4qtqp9 r-yyyyoo r-z80fyv r-dnmrzs r-bnwqim r-1plcrui r-lrvibr r-19wmn03" > <g> <path d="M10.59 12L4.54 5.96l1.42-1.42L12 10.59l6.04-6.05 1.42 1.42L13.41 12l6.05 6.04-1.42 1.42L12 13.41l-6.04 6.05-1.42-1.42L10.59 12z"></path> </g> </svg> </button> <div>로그인하세요.</div> </div> <form onSubmit={onSubmit}> <div className={style.modalBody}> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="id"> 아이디 </label> <input id="id" className={style.input} value={id} onChange={onChangeId} type="text" placeholder="" /> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="password"> 비밀번호 </label> <input id="password" className={style.input} value={password} onChange={onChangePassword} type="password" placeholder="" /> </div> </div> <div className={style.message}>{message}</div> <div className={style.modalFooter}> <button className={style.actionButton} disabled={!id && !password}> 로그인하기 </button> </div> </form> </div> </div> ); } <middleware.ts> export { auth as middleware } from "./auth"; export const config = { matcher: ["/compose/tweet", "/home", "/explore", "/messages", "/search"], }; <route.ts> export { GET, POST } from "@/auth"; 에러 내용 : TypeError: next_dist_server_web_exports_next_request__WEBPACK_IMPORTED_MODULE_0__ is not a constructor at reqWithEnvURL (webpack-internal:///(rsc)/./node_modules/next-auth/lib/env.js:15:12) at httpHandler (webpack-internal:///(rsc)/./node_modules/next-auth/index.js:139:139) at /Users/imhwarang/projects/zerocho/z-com/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:63815 at /Users/imhwarang/projects/zerocho/z-com/node_modules/next/dist/server/lib/trace/tracer.js:133:36 at NoopContextManager.with (/Users/imhwarang/projects/zerocho/z-com/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:7062) 너무 길어서 다 올릴수는 없네요 에러내용을

  • react
  • next.js
  • react-query
  • next-auth
  • msw
화랑 댓글 3 좋아요 0 조회수 1237

afterlogin beforelogin 로그인 분기처리 질문

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요. 디렉토리 구조를 afterlogin과 beforelogin구조로 나누어서 로그인을 분기치고 있고 auth.ts에서 서버로 부터 전달받은 토근값을 넣고 미들웨어에서 세션을 유무를 확인하여 login페이지로 리다이렉트 시키고 있습니다. afterlogin과 beforelogin으로 디렉토리가 어떤방식으로 나뉘는지 로직이 궁금합니다. 관련된 훅이 있는것인지?? 2. 실제 상용화된 서비스라고하면 로그인이 풀리는것을 방지하기 위해 BE로 토근값을 요청할텐데, 관련 로직은 어떤방식으로 구현하는게 좋은방법인지 요청드립니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
댓글 1 좋아요 0 조회수 424

인기 태그

인프런 TOP Writers

주간 인기글