안녕하세요 강의 잘 봤습니다. 제가 토이프로젝트에서 작업했을 때는 깃허브에 직접 들어가 Pull requests 메뉴에 들어가서 버튼누르니까 자동으로 merge하고 테스트, 실행까지 다하던데 pull requests 역할이 무슨 뜻이고, 이것도 설정을 어떻게 하는건지 궁금합니다. 그리고 강의에서는 merge까지는 안 알려주시던데 deploy.yml에서 코드 작성하면 되는건가요?
커머스 서비스로 배우는 NestJS 실전 개발 (w. Prisma, Docker, Redis, Kafka)
도커 컨테이너 실행 명령어를 입력했는데 아래와 같은 에러가 발생했습니다. (프리즈마 버전 강의와 동일함) PrismaClientInitializationError: Prisma Client could not locate the Query Engine for runtime "linux-arm64-openssl-3.0.x". This happened because Prisma Client was generated for "darwin-arm64", but the actual deployment required "linux-arm64-openssl-3.0.x". Add "linux-arm64-openssl-3.0.x" to `binaryTargets` in the "schema.prisma" file and run `prisma generate` after saving it: generator client { provider = "prisma-client-js" binaryTargets = ["native", "linux-arm64-openssl-3.0.x"] } // schema.prisma generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") }
커머스 서비스로 배우는 NestJS 실전 개발 (w. Prisma, Docker, Redis, Kafka)
안녕하세요. 프리즈마에서 정의한 모델타입을 import 할 때 강의랑 동일하게 아래처럼 입력하면 Module '"@prisma/client"' has no exported member 'cart'. 에러가 발생합니다. schema.ts 파일에는 model cart 로 정의되어있고 npx prisma generate 명령어를 통해 클라이언트 생성도 잘 되었습니다. 서칭해보니 Prisma는 모델 이름을 PascalCase 로 자동 변환한다는데 그래서 그런건가요? 강의와는 버전차이인걸까요? import { cart } from '@prisma/client';
안녕하세요 강의 잘 보고 있습니다. 예전 회사에서 깃허브 대신 Aws의 CodeCommit을 이용하여 코드 보관했는데 이때 git action이 사용가능한지 궁금합니다. 만약에 안되면 다른 방식으로 어떻게 CI/CD 를 구현하는지 궁금합니다. 하는 방법 링크좀 부탁드립니다 그리고 다른 회사들도 git hub 말고 svn 등 다른것도 쓸텐데 이때는 젠킨스를 쓸 수밖에 없는건지 궁금하네요
docker run -d --rm \ -p 8000:8000 \ -e DJANGO_DB_HOST=db \ --link postgres:db \ django-sample 이때 db 가 어떤 컨테이너를 얘기하는 건가요? postgres 인건 알겠는데 postgres에서 그렇게 선언한적이 없지 않나요?
제가 시간이 없어서 강의자료만 보고 공부해서 영상에서는 설명했을지도 모르지만 일단 질문드립니다. 스프링부트 실습 영상에선 프로젝트 개발은 호스트에서 하고, Dockerfile과 jar파일을 이용해서 실행하는데 이 경우 개발한 호스트의 jdk와 Dockerfile에서 지정한 jdk 이미지가 서로 버전이 다르다거나 하면 문제가 생길 수 있을거같다는 생각이 들었습니다. 그래서 아예 프로젝트 개발을 jdk 이미지로 만든 컨테이너 내에서 하는게 좋겠다는 생각이 들었는데 혹시 실무에서도 실제로 컨테이너 내에서 개발하는 방식을 사용하는지 궁금합니다.
안녕하세요! 강의를 따라 학습중인데 ECR를 푸시 명령 1번째 복사해서 붙여넣고 실행하면 다음과 같은 에러 메시지가 발생합니다 Error response from daemon: login attempt to https://(숫자).dkr.ecr.ap-northeast-2.amazonaws.com/v2/ failed with status: 400 Bad Request 해당 링크를 접속하면 로그인하라 발생하는데 AWS CLI로 액세스 키 등록도 정상 실행 완료되었는데 무엇이 문제인지 모르겠습니다
express 로 GraphQL 사용하였을 때 코드는 아래와 같습니다. const typeDefs = `#graphql input CreateBoardInput { writer: String title: String contents: String } type Mutation { createBoard(createBoardInput: CreateBoardInput!): String } `; const resolvers = { Mutation: { createBoard: (parent, args, context, info) => { ... return "게시글 등록 성공" } } 위 내용을 Nest.js - GraphQL 에 적용하였을 때 아래와 같이 구현했습니다. @Mutation(() => String) createBoard( @Args('createBoardInput') createBoardInput: CreateBoardInput, ): string { // 1. 브라우저에서 보내준 Data 확인하기 console.log(createBoardInput.writer); console.log(createBoardInput.title); console.log(createBoardInput.contents); // 2. DB접속 후, 데이터 저장 => 데이터 저장했다고 가정 // 3. DB에 저장된 결과를 브라우저에 응답(response) 주기 return '게시글 등록 성공'; } @InputType() export class CreateBoardInput { // export 추가 및 클래스 이름 변경 @Field(() => String) writer: string; @Field(() => String) title: string; @Field(() => String, { nullable: true }) contents: string; } @InputType() 데코레이터: CreateBoardInput 클래스에 @InputType() 데코레이터를 적용하여, 이 클래스가 GraphQL 스키마에서 입력 타입으로 적용되게 되는데요. InputType 데코레이터의 경우 class 파일 위에 존재해야 한다고 합니다. 지금처럼 InputType이 늘어날때마다 class 를 추가하나요? 실무에서는 어떻게 사용하나요?
안녕하세요. 제가 진행하고자 하는 실습 환경은 AWS의 EC2 Instance를 총 4개 생성하여 진행하고자 합니다. 1개 - Bastion host(AmazonLinux) 3개 - Master Node/ Workder Node(AmazonLinux) 이렇게 진행하고자 하는데 본 강의에선 Windows 버전만 알려주고 있는 거 같아, 혹시 가이드 존재하거나 위 방식대로 진행이 가능한 지 문의드립니다. 추가로 해당 방식대로 Vitrual Box를 통해 k8s cluster를 구축하지 않고 위 방식대로 cluster 구축까지 수강자가 완료한다면 이후 강의에서 다루는 실습, 내용 등에 대해 어려움이 없는 지도 문의드립니다.
윈도우 환경에서 wls을 이용하여 docker를 돌리고 있습니다. docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=admin1234 -v /mnt/c/users/lucig/Downloads/docker-mysql/mydata:/var/lib/mysql mysql 2876a8df0041c8cfefdde95d874bf0d87182d3320a1ee8fa417b41128cd9925e 위에처럼 컨테이너가 뜬 이후에 exec -it로 접속하려고하면 접속이 안되서 로그를 확인해보니 docker logs -f 2876 2025-04-17 06:16:09+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 9.3.0-1.el9 started. 2025-04-17 06:16:09+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' 2025-04-17 06:16:09+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 9.3.0-1.el9 started. 2025-04-17 06:16:10+00:00 [Note] [Entrypoint]: Initializing database files 2025-04-17T06:16:10.096316Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start. 2025-04-17T06:16:10.097629Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 9.3.0) initializing of server in progress as process 80 2025-04-17T06:16:10.109461Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive 2025-04-17T06:16:10.127422Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2025-04-17T06:16:11.839040Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. mysqld: Cannot change permissions of the file 'ca.pem' (OS errno 1 - Operation not permitted) 2025-04-17T06:16:14.379413Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem 2025-04-17T06:16:14.379482Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it. 2025-04-17T06:16:14.379504Z 0 [ERROR] [MY-010119] [Server] Aborting 2025-04-17T06:16:16.112226Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end. 이렇게 나오는데 가장 쉬운 방법은 어떤것이있을까요? 클로드는 아래처럼 답변을 주더라고요 2. 도커 볼륨 사용 Windows 경로를 직접 마운트하는 대신 도커 볼륨을 사용하는 것이 더 안정적입니다: bash# 도커 볼륨 생성 docker volume create mysql-data # 볼륨을 사용하여 MySQL 컨테이너 실행 docker run -d -p 3306:3306 --name mysql \ -e MYSQL_ROOT_PASSWORD=admin1234 \ -v mysql-data:/var/lib/mysql \ mysql 도커 볼륨을 사용해도 새로생성한 컨테이너가 데이터를 그대로 사용할 수 있는걸까요?
안녕하세요! 좋은 강의 감사드립니다. 덕분에 도커를 쉽게 배울 수 있었고, 실무에 어떻게 활용될 수 있을지 궁금증이 생겨 질문드립니다. 도커는 협업 환경에서 자주 쓰이나요? 저는 아직 협업에서 도커를 직접 사용해본 경험은 없는데, 만약 실제 협업 중 도커를 활용하게 된다면, 배포 시 에러가 발생했을 때 디버깅이 오히려 어려울 수도 있지 않을까? 하는 고민이 있습니다. 그래서 실무에서는 어떤 상황에서 도커를 자주 사용하는지 궁금합니다. 도커는 왜 MSA 환경에 적합하다는 이야기가 많을까요? 찾아보니 도커가 MSA(Microservices Architecture)에 잘 맞는다는 자료들을 종종 보았는데요, 아마도 MSA는 여러 개의 서비스를 따로 운영해야 하다 보니, 각 서비스의 환경 셋팅이나 배포가 많아서 그런 걸까요?