묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
실전문제풀이 6 19번
'서버가 완전히 활용되고 허용되지 않는다'라는 말이 모호하게 느껴집니다. 개발/테스트 환경이고, 비용을 줄이는 -> 온디맨드 아니면 스팟인데, 이 문제의 정답이 스팟이 아닌 이유가 뭔가요?
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
마지막 관문에 대한 궁금증
마지막 관문의 요구사항을 한번에 다 수행하면 좋겠지만 시간 관계상 하루에 다 못하거나 이것저것 헤매다보면 시간을 하루만에 다 못 끝낼수도 있을 거 같은데 그럴 경우ec2,rds,https,s3,cloudFront등 서비스의 요금이 어떻게 부과될까요?? 각 서비스 생성 후 사용을해야 부과가 되는건지 아니면 그냥 시간만 지나도 부과가 되는건지 궁금합니다..! 다른 질문 답변에서 보았던 내용중 cloudFront를 사용하면 ELB를 안써도 된다는 답변을 보았는데 이유가 무엇일까요? cloudFront는 cdn의 기능을 하는 서비스이고ELB는 로드밸런서의 기능을 하는 서비스인데단순 정적 웹사이트만 배포하는게 아닌 백엔드까지 배포하게되면 ELB도 연결을 해야되는게 아닌가요?
-
미해결인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
[auth][error] JWTSessionError: Read more at...
강의25. [BE] 백엔드 Auth Guard 구현 시작. Auth Guard로 유저 아이디 가져오는 부분 작업타임라인 19:55여기까지는 정상적으로 진행됩니다.쿠키에서 "authjs.session-token" 확인이 가능합니다. import NextAuth from "next-auth"; import { PrismaAdapter } from "@auth/prisma-adapter"; import { prisma } from "@/prisma"; import CredentialsProvider from "next-auth/providers/credentials"; import { comparePassword } from "@/lib/password-utils"; import * as jwt from "jsonwebtoken"; import { JWT } from "next-auth/jwt"; export const { handlers, auth, signIn, signOut } = NextAuth({ useSecureCookies: process.env.NODE_ENV === "production", trustHost: true, adapter: PrismaAdapter(prisma), secret: process.env.AUTH_SECRET, providers: [ CredentialsProvider({ name: "credentials", credentials: { email: { label: "이메일", type: "email", placeholder: "이메일 입력", }, password: { label: "비밀번호", type: "password", }, }, async authorize(credentials) { // 1. 모든 값들이 정상적으로 들어왔는가? if (!credentials || !credentials.email || !credentials.password) { throw new Error("이메일과 비밀번호를 입력해주세요."); } // 2. DB에서 유저를 찾기 const user = await prisma.user.findUnique({ where: { email: credentials.email as string, }, }); if (!user) { throw new Error("존재하지 않는 이메일입니다."); } // 3. 비밀번호 일치 여부 확인 const passwordMatch = comparePassword( credentials.password as string, user.hashedPassword as string ); if (!passwordMatch) { throw new Error("비밀번호가 일치하지 않습니다."); } return user; }, }), ], session: { strategy: "jwt", }, jwt: { encode: async ({ token, secret }) => { return jwt.sign(token as jwt.JwtPayload, secret as string); }, decode: async ({ token, secret }) => { return jwt.verify(token as string, secret as string) as JWT; }, }, pages: {}, callbacks: {}, }); FE 추가분/frontend/auth.ts// ... 중략 import * as jwt from "jsonwebtoken"; import { JWT } from "next-auth/jwt"; export const { handlers, auth, signIn, signOut } = NextAuth({ // ...중략 jwt: { encode: async ({ token, secret }) => { return jwt.sign(token as jwt.JwtPayload, secret as string); }, decode: async ({ token, secret }) => { return jwt.verify(token as string, secret as string) as JWT; }, }, // ... 중략 }) pnpm add jsonwebtoken pnpm add -D @types/jsonwebtoken GET /api/auth/csrf 200 in 47ms POST /api/auth/callback/credentials? 200 in 114ms[auth][error] JWTSessionError: Read more at https://errors.authjs.dev#jwtsessionerror[auth][cause]: Error: The edge runtime does not support Node.js 'crypto' module. Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime at Object.get (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\_6e5868ec._.js:62:41) at C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\node_modules__pnpm_d2b00409._.js:8647:62 at getSecret (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\node_modules__pnpm_d2b00409._.js:8630:20) at push.[project]/node_modules/.pnpm/jsonwebtoken@9.0.2/node_modules/jsonwebtoken/verify.js [middleware-edge] (ecmascript).module.exports (C:\Users\svx32\OneDrive\바 탕 화면\v5\frontend\.next\server\edge\chunks\node_modules__pnpm_d2b00409._.js:8633:12) at Object.decode (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\[root-of-the-server]__273b5c62._.js:137:233) at session (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\fdcd2_@auth_core_ec592ae5._.js:4516:39) at AuthInternal (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\fdcd2_@auth_core_ec592ae5._.js:5123:269) at async Auth (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\fdcd2_@auth_core_ec592ae5._.js:5379:34) at async handleAuth (C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\node_modules__pnpm_d2b00409._.js:3913:29) at async C:\Users\svx32\OneDrive\바탕 화면\v5\frontend\.next\server\edge\chunks\_6e5868ec._.js:12505:20[auth][details]: {} GET / 200 in 62ms--- 이 오류 메시지는 애플리케이션이 Edge Runtime 환경에서 Node.js의 crypto 모듈을 사용하려고 시도할 때 발생하는 JWTSessionError 입니다. 오류 상세 설명 JWTSessionError: 이는 JWT(JSON Web Token) 세션 관리 중에 문제가 발생했음을 나타냅니다. JWT는 웹 애플리케이션에서 사용자 세션을 처리하는 일반적인 방법입니다.The edge runtime does not support Node.js 'crypto' module.: 이 부분이 핵심 문제입니다. Edge Runtime (예: Next.js Edge Functions 또는 Middleware)은 빠르고 가볍게 설계된 환경입니다. 따라서 모든 Node.js API를 지원하지 않으며, 특히 암호화, 해싱, 디지털 서명 등에 사용되는 crypto 모듈을 포함하지 않습니다. JWT 작업은 이 crypto 모듈에 크게 의존합니다.스택 트레이스 분석: 오류 스택 트레이스를 보면 jsonwebtoken 패키지(특히 verify 작업 중)에서 crypto 모듈에 접근하려고 시도하며, 이 과정이 @auth/core(일반적으로 Auth.js 라이브러리)에서 호출됩니다. 이는 JWT 유효성 검사 프로세스가 crypto 모듈의 부재로 인해 실패하고 있음을 명확히 보여줍니다.간단히 말해, 애플리케이션이 Edge Runtime이라는 제한된 서버리스 환경에서 JWT 유효성 검사(보안 관련 작업)를 수행하려고 하지만, 이 환경에는 해당 작업을 위한 필수 도구(crypto 모듈)가 없기 때문에 오류가 발생하는 것입니다. 해결 방법 (일반적인 접근) 이 문제를 해결하기 위해서는 주로 다음 방법들을 고려할 수 있습니다:JWT 관련 작업을 Edge Runtime 외부로 이동: JWT 유효성 검사와 같이 crypto 모듈이 필요한 작업은 Edge Runtime이 아닌 일반적인 Node.js 서버 환경(예: Next.js의 표준 API 라우트)에서 수행하도록 변경해야 합니다.인증 라이브러리 설정 변경: 사용하고 있는 인증 라이브러리(Auth.js)의 세션 전략을 변경하여 Edge Runtime 컨텍스트에서 crypto 모듈에 의존하지 않도록 구성해야 합니다. 예를 들어, JWT 기반 세션 대신 데이터베이스 세션과 같은 다른 세션 관리 방식을 고려할 수 있습니다.AUTH_SECRET 확인: 직접적인 원인은 아니지만, AUTH_SECRET 환경 변수가 올바르게 설정되어 있고, 사용 중인 환경에 맞게 JWT를 안전하게 처리하는지 확인하는 것도 중요합니다.어떻게 해결해야하나요??
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
과제를 위한 초기세팅
안녕하세요 과제를 하나씩 만들고있는데 4일차 과제인 api만들기를 하려고합니다! 그전까지는위처럼 기존 강의 초기세팅 된곳에 hw폴더를 만들어서 하고있는데 이렇게 말고 강의초반에 배운대로 spring.io에서 초기세팅을 새로해서 과제를 위한 스프링부트 프로젝트를 새로 만들고싶은데요..! 혹시 현재 강의 초기세팅과 같이 하려면 어떻게해야될지 알려주실 수 있으신가요? 1~2강 초기세팅 강의에서 spring.io로 처음부터 만드는걸 배울때 자바나 스프링부트 버전설정이런건 설명이 있었는데 그다음 의존성 이런건 나중에 설명이 나온다했던거같아서 정확히 모르겠습니다.강의에 혹시 있다면 어디를 참고하면 될지만이라도 알려주시면 감사드리겠습니다!!
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
검증 대기중
강의중에 도메인의 주인인지 확인하는 절차를 설명해 주시는 부분이 있는데그게 Route53에서 레코드 생성 버튼을 누르고 레코드를 생성하면 그 절차가 내부적으로 이루어지는건가요?
-
해결됨비전공자도 이해할 수 있는 AWS 입문/실전
질문있습니다.
저는 스프링 부트로 제 프로젝트를 인스턴스에 배포해 공부중입니다. 선생님 health check api는 app.js로 자바스크립트로 된것같은데 저는 제 스프링부트 프로젝트에 @RestController public class Health { @GetMapping("/health") public ResponseEntity health() { return ResponseEntity.status(HttpStatus.OK).body("Success health check"); } } 이런식으로 추가하려고합니다. 이렇게 진행해도 똑같은건가요? 그리고 elb가 로드벨런서 역할도한다고하는데 실습중에 대상그룹을 설정할때 인스턴스가 2개있어야 로드벨런싱을 할수있는거아닌가요?실습에선 ec2 인스턴스가 하나만있으면 로드밸런싱을 못하고 그 하나의 인스턴스에만 트래픽이가는건가요?
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
docker-compose down 안되는 현상
안녕하세요.docker-compose down시 계속 permission denined가 뜹니다.우선 저는 가상머신 os:ubuntu에서 프로젝트를 진행중이며, sudo 붙여서 종료 시도, sudo docker kill 로도 강제 종료를 시도했지만 permission denined이라 다 실패하였습니다.최후의 수단으로 docker설치 삭제 후, 재설치도 해보았지만 안타깝게도 실패하였습니다.하여 container를 종료하려고 할 때마다 가상머신 종료하고 다시 들어가야하는 매우 불편하고도 불운한 상황에 처해있습니다. groups를 통해 docker가 있는 것도 확인하였습니다. 도저히 왜 안되는지 모르겠습니다.도움이 절실합니다... 감사합니다.ㅠ
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
MAS 환경에서 Feign Client 라이브러리를 이용해 HTTP 통신 발생시 에 대한 질문 있습니다.
공유해주신 API Gateway 아키텍처를 보면Order 서비스가 Product 서비스에게 해당 상품 수량 어느정도인지 요청시Order 서비스는 유레카에게 Product 서비스 위치를 질의 한다.유레카에 등록된 Product 서비스 위치 정보를 Order 서비스에게 응답한다.Order 서비스는 Product 서비스에게 실질적으로 상품 수량 GET 요청 한다. 제가 알고 있는 일반적으로 (MAS X) 모놀리식 구조에서 Feign Client 를 사용시 유레카를 사용 하지 않는 상황에서 특정 서버에게 요청시 곧바로 해당 서버에게 요청을 했었는데요. (3 Way Handshake 생략)그런데 @FeignClient(name = "product-service", url="http://product-service") public interface ProductFeign { }이렇게 FeignClient 어노테이션에서 name 을 특정 서버 어플리케이션 이름으로 지정하게 된다면 알아서 유레카에게 질의하고 응답 받아서 Product 서비스에게 요청해서 총 HTTP 요청이 2번 일어 난다고 보면 되는건가요? 일단 비지니스 로직단에서는 HTTP 요청이 2번 일어난다(유레카 서버에게 호출 하고 그 다음 실질적은 요청하고자 하는 서버에게 다시 요청) 라고 로직상에서는 안보여서요. 이부분은 내부 로직(Feign client 라이브러리 내부 로직?? 이라고 해야 할까요?..)에서 처리된거라서 눈에 안보이는 부분인지 알고 싶습니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
CI/CD 자동화 배포 문제
강사님이 알려주신 대로 개인프로젝트 CI/CD 구축 방법-2 이거에서 하는데 자꾸 위와 같은 에러가 뜨는데 뭐가 문제인지 모르겠습니다.
-
미해결쉽게 설명하는 AWS 기초 강의
(실습)Amazon RDS 접속과 인증 실습 질문드립니다.
영상을 보면서 실습을 따라하던 도중 Cloudshell을 이용해서 토큰을 받은 후 Workbench를 이용하여 접속을 할 때 username : testuser, password에 부여받은 토큰을 붙여넣기 했습니다. 이후 Test connection을 하면 영상에서는 Connect가 되었지만, Access denied가 출력되면서 Connect가 실패하는 것을 확인할 수 있습니다. 이런 경우 어떤 부분을 봐야할까요?
-
해결됨비전공자도 이해할 수 있는 AWS 입문/실전
섹션1 실습7 질문입니다.
첫번쨰로 Express서버란 node.js로만든 프로젝트를 말씀하시는건가요? 그 프로젝트를 저희가 만든 인스턴스에 배포하는 과정이 실습7인건가요? 두번쨰 저는 스프링부트로 실습하는중인데 그럼 실습7은 건너띄고 실습 7-2 스프링부트로 ec2에 배포하기만 봐도되나요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
SAA 섹션 17퀴즈 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요3번 문제에서2번 선지 -다른 AWS 계정의 두 VPC 간 통신이것이 왜 정답인지 모르겠습니다. VPC Peering시, 다른 AWS 계정간 연결도 가능지 않나요 ?? 감사합니당
-
미해결[자격증 대비] AWS 국제공인 AI 전문가(AWS Certified AI Practitioner) 기출문제 풀이
추가 문제 문의
examtopics에 168번까지 문제가 추가되어있는데 문제를 추가해주실 수 있나요?
-
해결됨아키텍처와 함께하는 Terraform (테라폼 모듈)
애플리케이션 배포 후 user 정보 창을 확인 할 수가 없습니다.
안녕하세요올려주신 테라폼 강의 잘 듣고 있는 수강생입니다. 현재 jar파일을 ec2에 배포하여 애플리케이션 실행까지 완료한 상태입니다.하지만 alb dns 이름을 주소창에 입력하면 아래와 같이 로그인 ui는 나오지만 Username과 Password를 입력하여도 유저 정보창이 나오지 않는 상황입니다. 질문 사항은 아래와 같습니다. 로그인 창에서 입력해야 할 Username과 Password는 user, password가 맞나요?user와 password를 입력하여도, 아래와 같이 Http error 500이 뜨는 상황입니다. 아무래도 서버쪽 설정이 잘못 된거 같습니다. 이런 경우 어떤 부분을 다시 확인해봐야 할까요? 감사합니다.
-
해결됨인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
jotai 이후로 강의가 안맞네요;
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다.💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. jotai 이후로 강의가 안맞네요;;
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기한 연장 부탁드립니다.
안녕하세요 강사님! 수강신청하고 강의를 많이 못듣고 있다가, 최근에 다시 강의를 들으려하니 기간이 얼마 안남았네요. 수강 기한 연장 부탁드립니다. 감사합니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간연장 부탁드립니다
안녕하세요 강사님! 처음으로 AWS를 공부하고 있는데 여러사정으로 수강을 못하고 있었습니다.수강기간연장 가능할까요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
application.yml driver-class-name 연결오류
spring: datasource: # 데이터의 원천 spring이 어떤 데이터를 가르키냐 url: "jdbc:mysql://localhost/library" #스프링이 붙을(연결할) 데이터베이스의 주소 #jdbc- java database conenncter 말그대로 자바가 데이터베이스에 연결할수있게해주는 프로그램 #이때 데이터종류는 mysql이고 데이터베이스는 우리 컴퓨터 localhost에있다. 그리고 사용할데이터베이스는 library이다. username: "root" password: "비밀번호" driver-class-name: com.mysql.cj.jdbc.Driver #데이터베이스에 접근할 때 사용할 프로그램위와 같이 코드를 작성했는데 인텔리제이 얼티메이트를 사용하고 있는데도 com.mysql.cj.jdbc.Driver클릭이 안돼서 뭔가 이상하다 싶었는데 다른 질문들 답변을 보니 잘될수도 있다해서 일단 인강 코드대로 따라 갔습니다. 그런데 api를 전부 수정하고 서버를 동작하려고하니 mysql연결이 안된다는 오류와 함꼐 서버 실행이안돼서 질문 남깁니다..! plugins { id 'org.springframework.boot' version '2.7.6' id 'io.spring.dependency-management' version '1.0.12.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'com.h2database:h2' runtimeOnly 'mysql:mysql-connector-java' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } 위처럼 그래들파일에도 runtimeOnly 'mysql:mysql-connector-java:8.0.42'이코드가 잘 있는데 안되는것같습니다. 다른답변들 참고해서 위처럼 자바 버전을 붙이고 캐시지워서 리스타트한다음 다시 서버 켜봐도 안돼서 질문남깁니다..!
-
해결됨(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - <코딩 배워 사업하자>
db 를 연결하려면 어떤걸 추천하시나요?
안녕하세요. 강의 잘 보고 있습니다.제가 서비스하고 싶은 사이트는 지금 예시로 만든 mbti 서비스처럼 정적웹으로는 조금 운영이 어려운 사이트입니다. 그래서 db 연결이 필수인데, rdbms 든, noSQL 기반 db 이든 클라우드 db를 써서 연결을하자니 용량에 따라 과금이 돼서 사실 부담이 좀 됩니다.코배투님도 결국 사이트를 키우시면서 db는 선택이 아니라 필수로 연결하셨을것 같은데 어떤걸 선택하셨나요? 만약 추천하신다면 어떤걸 추천하시나요?
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
AWS EKS 클러스터 생성 후 에러 문구 질문
리소스 로드 중 오류 발생Amazon EKS is unable to communicate with your Kubernetes cluster API server. The cluster must be in an ACTIVE state for successful connection. Please try again in few minutes. 안녕하세요 선생님 고생 많으십니다 ^^ 질문 하나 하도록 하겠습니다!이렇게 에러가 나오는데요! 분명 활성 상태인데 왜 이런 에러가 발생되는걸까요? IAM 도 분명 잘 설정 했는데도요 ㅠㅠ