묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨React & FastAPI로 만드는 투표 커뮤니티 플랫폼: 결제 시스템으로 수익화까지!
Navbar.jsx 메뉴 바 제작 (2부) 강의 MobileToggleButton.jsx 코드가 다른 것 같아요
Navbar.jsx 메뉴 바 제작 (2부) 강의 입니다.MobileToggleButton.jsx 강의 코드와노션에 올라와 있는 코드가 다른 것 같네요? 강의에서는 toggle 관련 코드이고노션에서는 onClick={() => setIsOpen(!isOpen)}이렇게 되어있는데요노션 코드로 하니 에러가 발생하는데강의코드가 맞는건가요??
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
appleboy/ssh-action stop_script 대체
학습 도중 발견한 내용이 있어 공유합니다. appleboy/ssh-action 라이브러리에서 stop_script 설정에 대한 내용입니다. 결론부터 말하면, appleboy/ssh-action 최신 버전(작성일 기준 1.2.2)을 사용하는 경우 stop_script: true 대신 script 첫 줄에 set -e를 사용해야 합니다.script: | set -e cd /home/ubuntu/github-actions git pull origin main문제 상황강의를 따라하던 중, 테스트에서 RuntimeException을 던져 실패하는 부분에서 다음과 같이 빌드는 실패하는데 github actions가 성공하고 코드도 업데이트 되는 경우가 발생했습니다. deploy.yml과 github actions 결과는 다음과 같습니다.name: hello application on: push: branches: - main jobs: Deploy: runs-on: ubuntu-latest steps: - name: ssh to EC2 uses: appleboy/ssh-action@v1.2.2 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script_stop: true script: | cd /home/ubuntu/github-actions git pull origin main ./gradlew clean build sudo fuser -k -n tcp 8080 || true nohup java -jar build/libs/*SNAPSHOT.jar > ./output.log 2>&1 & > Task :test GithubActionsApplicationTests > contextLoads() FAILED java.lang.RuntimeException at GithubActionsApplicationTests.java:11 1 test completed, 1 failed FAILURE: Build failed with an exception. > Task :test FAILED * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/***/github-actions/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. BUILD FAILED in 8s 8 actionable tasks: 8 executed 8080/tcp: 4782 =============================================== ✅ Successfully executed commands to all hosts. =============================================== 문제 원인이 차이점은 appleboy/ssh-action 버전을 최신 버전(1.2.2)으로 사용한 차이에서 발생한 것이었습니다. appleboy/ssh-action 링크에 가서 script_stop으로 검색해보니 다음과 같은 부분이 있습니다.1.0.3v 를 보니 해당 옵션이 있는 걸로 보아 script_stop 옵션은 제거된 것으로 보입니다. 그래서 적힌대로 set -e를 script 첫 줄에 추가했습니다.script: | set -e cd /home/ubuntu/github-actions git pull origin main이후 다시 푸시해보니 정상적으로 실패하는 것을 확인할 수 있습니다.1 test completed, 1 failed FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/***/github-actions/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. GithubActionsApplicationTests > contextLoads() FAILED java.lang.RuntimeException at GithubActionsApplicationTests.java:11 BUILD FAILED in 8s 8 actionable tasks: 8 executed 2025/07/12 14:16:36 Process exited with status 1 Error: Process completed with exit code 1.
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
vagrant up 시에 Running pre-flight checks 에서 에러
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://inf.run/DvsRD)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.5. vagrant up 에서 발생하는 문제는 주로 호스트 시스템(Windows, MacOS)과 연관된 다양한 조건에 의해 발생합니다. 따라서 이를 모두 제가 파악할 수 없어서 해결이 어렵습니다. vagrant up으로 진행이 어렵다면 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다. (https://inf.run/Ljaer)[질문 하기]안녕하세요.현재 집에서 mac m1 노트북으로 실습 환경을 구성하고 있는데, vagrant up 했을 때worker node에 대해서[preflight] Running pre-flight checks과정에서 아래 에러가 발생합니다. w3-k8s-1.30.0: error execution phase preflight: couldn't validate the identity of the API Server: failed to request the cluster-info ConfigMap: client rate limiter Wait returned an error: rate: Wait(n=1) would exceed context deadline w3-k8s-1.30.0: To see the stack trace of this error execute with --v=5 or higherThe SSH command responded with a non-zero exit status. Vagrantassumes that this means the command failed. The output for this commandshould be in the log above. Please read the output to determine whatwent wrong. 도움을 받을 수 있을까요? virtual box 버전: 7.1.10vagrant 버전: 2.4.7입니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
container 와 image 사이의 관계 질문
안녕하세요비전공자로 AI 관련 공부를 하면서 기본적인 도커 지식의 필요성을 느껴서 공부하고 있습니다. 실습하면서 궁금한 점이 생겼는대 docker run nginx 해서 container 를 생성해서 image 가 띄워진 것을 확인하고 docker stop 하고 docker rm 해서 해당 container 를 삭제하고 나서 docker image ls 확인해보니까 image 는 남아있습니다. container 삭제와 그 container 에 띄워져 있던 image 가 같이 삭제되지 않는것 처럼 보이는데 이걸 어떻게 이해하는게 좋을까요 너무 쓸데 없을 수 있는 질문 같아 죄송합니다.
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
EC2와 RDS 등 개별적으로 사용시 docker를 사용한다면
안녕하세요.강의내용에서 추가적으로 궁금한게 있어서 질문 드립니다.기존 로컬에서 docker compose를 사용해 각 컨테이너로 프로젝트, DB, redis 등을 사용한다고 할때 추후에 EC2와 RDS, redis 등 사용한다면 EC2 서버 내에서는 로컬에서 사용해왔던 개별적인 컨테이너를 사용하지 않는건지 헷갈려서요.예를 들어 AWS RDS를 따로 만들어서 사용한다면 로컬에서 사용하던것처럼 컨테이너를 만들어서 사용할 수 없겠다 생각이 들어서요.이렇게 되면 EC2에서는 프로젝트만 돌아야하니 따로 같이 돌리는거 아닌 이상 메인 프로젝트 하나만 돌리는거니깐 docker가 필요없나 싶네요.강사님의 docker 강의와 AWS 강의를 들으면서 운영서버를 사용할때 둘의 공존성에 대해서 어떤식으로 활용해야하나 궁금합니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
왜 전 오류가 뜨나요??
오타난건 없는것 같고 파일은 그대로 복붙했는데 왜 이런 오류가 뜨는지 잘 모르겠네요..ㅠㅠ
-
미해결대세는 쿠버네티스 (초급~중급편)
VMware로는 안되고 꼭 버츄얼 박스로만 해야될까요?
안녕하세요 주로 제가 사용하는 가상머신이 VMware로 사용하고 있는데 해당 VMware로는 실습이 불가능 한 걸까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
10-01 Entity TypeOrmModule.forRoot 에 entities
@Module({ imports: [ BoardsModule, // // ProductModule, // UsersModule, ConfigModule.forRoot(), // GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), TypeOrmModule.forRoot({ type: process.env.DATABASE_TYPE as 'mysql', host: process.env.DATABASE_HOST, port: Number(process.env.DATABASE_PORT), username: process.env.DATABASE_USERNAME, password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE_DATABASE, entities: [__dirname + '/apis/**/*.entity.*'], synchronize: true, logging: true, }), ], }) export class AppModule {} entity 파일들에서 각 entity 파일에 import 할때 절대경로로 입력하면, 오류가나는데 해결방법을 모르겠습니다.상대경로로 작성시 문제가 해결되었는데 이유를 모르겠습니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Vue.js 파일 배포
안녕하세요 강사님 ACM 에서 인증은 받았고 사진 1 바로아래입니다. CloudFront에 도메인 이름을 넣었습니다.(밑에 사진2) 사진 3 Route53 에 CloudFront로 배포를 했는데도 aws s3 를 통한 정적웹사이트 배포는 정말 잘 되는데 뭐가 문제인지 모르겠습니다. 이렇게 연결이 되지 않습니다. 뭐가 문제인지 잘 모르겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
강의 버전관련 문의입니다
강의 버전이 구버전(Ver.1)인 것 같은데 Ver.2로 어떻게 업데이트하나요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
aws를완강하고 ci/cd로 넘어왔습니다.
스프링부트로 진행중이라서 nest.js는 아예모르는데 섹션6,7부분은 뺴고 들어도 상관업나요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
[실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기 <--자바실행오류
안녕하세요 강사님, 강의 너무 잘듣고 있습니다, 자바 실행에서 코파일럿으로 해결해보려고해도 잘 모르겠는데요 무엇을 다시 해야할까요? 현재기준으로 스프링부트 버전은 3.5.3으로 강의의 버전과 다르긴했구요 의존성 2개는 그대로 추가했습니다
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
vue.js 를 cloudfront+s3+Route53를 적용하여 배포
안녕하세요 강사님의 AWS 강의도 들었습니다.만약 도메인을 적용하고 배포하는 경우 CNAME을 통한 배포방식이 맞는지블로그도 열심히 찾아보고 했는데 안되가지고 질문 드립니다. cloudfront가 기존에 pdf랑 달라서 chatgpt한테 물어보면서 배포를 해 보아도 https + domain이 동시에 적용이 되지 않아 질문 드립니다. 단순 정적 웹사이트(S3 ) 만을 이용한 것은 정말 잘 되지만 cloudfront에 htpps+ domain 을이용한 배포가 되지 않아 질문 드립니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
S3에 프로젝트 업로드하기 오류
안녕하세요 이 부분분을 듣고 코드를 깃허브에 push 했는데 이런 에러가 계속 나가지고 질문드립니다. chatgpt로 돌려서 답장 받은거는 다 해봤습니다.
-
해결됨Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
jakarta persistence 플러그인은 intellij ultimate에서만 사용가능하다고 나오네요.
jakarta persistence 플러그인은 intellij ultimate에서만 사용가능하다고 나오네요. 강의 내용에도 추가를 해주셔야 할 듯합니다.
-
해결됨인프런 클론코딩 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를 안전하게 처리하는지 확인하는 것도 중요합니다.어떻게 해결해야하나요??
-
미해결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 라이브러리 내부 로직?? 이라고 해야 할까요?..)에서 처리된거라서 눈에 안보이는 부분인지 알고 싶습니다.
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
aws eks --region ap-northeast-2 update-kubeconfig --name kube-practice 권한 거부
C:\Users>aws eks --region ap-northeast-2 update-kubeconfig --name kube-practiceAn error occurred (AccessDeniedException) when calling the DescribeCluster operation: User: arn:aws:iam::149536462938:user/my-computer is not authorized to perform: eks:DescribeCluster on resource: arn:aws:eks:ap-northeast-2:149536462938:cluster/kube-practice클러스터 전환이 안되는데 왜 이럴까요?우선 루트 사용자로 전환하니까 되긴 했습니다AllowEKSDescribeCluster고객 인라인인라인AmazonEC2ContainerRegistryFullAccessAWS 관리형직접AmazonEKSClusterPolicyAWS 관리형기존 iam유저 권한은 이렇게 지정되어 있습니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
CI/CD 자동화 배포 문제
강사님이 알려주신 대로 개인프로젝트 CI/CD 구축 방법-2 이거에서 하는데 자꾸 위와 같은 에러가 뜨는데 뭐가 문제인지 모르겠습니다.