[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
안녕하세요. storage코드 작성 후 diskStorage관련하여 TypeError가 발생하였습니다. 강의 내용과 동일하게 작성을 하였는데 빌드 시 해당에러가 발생하고 diskStorage의 인자에 아무것도 넣지 않아도 동일한 에러가 발생하는데 원인이 무엇인지 알 수가 없어서 글을 올립니다. module 코드입니다. error_msg코드입니다.
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
강의 완강하고 요즘 연습하면서 한 가지 궁금증이 생겨서 질문드립니다. websocket 사용 용도가 실시간 커뮤니케이션이라고 알고 있는데요 인스타그램으로 예를 들면 다른 사람을 팔로우하면 바로 팔로우 카운트가 실시간으로 올라가는 거랑 유튜브에 댓글들이 실시간으로 생기는 방식들이 전부 webscoket으로 구현하는 게 맞나요?? 인스타처럼 상대방을 팔로우하면 제 팔로잉 카운트가 증가하는 동시에 상대방의 팔로워 카운트가 증가하는 로직을 만들었는데 곰곰이 생각해 보니 팔로우 카운트 증가는 제가 어떠한 http요청 없이 실시간으로 올라가고 내려가는데, 일반적인 api로직을 만드는 방식으로 하는 게 맞나 하는 의문이 생겨서 질문드렸습니다~
안녕하세요! 강의 잘 보고있습니다.이번 강의에서 블루그린배포 개념을 설명해주시며 스케일 업에 대해 알려주셨는데요! 제가 공부했던 얕은 지식을 떠올려보면, 스케일 업 은 기존 서버의 사양 등을 업그레이드해 시스템을 확장 (수직적) 스케일 아웃 은 서버를 여러대 추가하여 시스템을 확장 - 로드밸런싱 동반 (수평적) 라고 배웠던 것 같은데.. 아무튼, 질문의 요점은 블루 그린 배포는 여러 대의 서버가 있는 스케일 아웃 방식 에서 무중단 배포가 가능한 배포 모델이 아니라, 스케일 업 방식 인가요?? 감사합니다!
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
//query-runner.decorator.ts import { ExecutionContext, InternalServerErrorException, createParamDecorator, } from '@nestjs/common'; import { QueryRunner } from 'typeorm'; export const QueryRunnerDecorator = createParamDecorator( (data: unknown, context: ExecutionContext): { qr: QueryRunner } => { const req = context.switchToHttp().getRequest(); if (!req.queryRunner) { throw new InternalServerErrorException('queryRunner가 없습니다.'); } return { qr: req.queryRunner, }; }, ); //posts.controller.ts @Post() @UseGuards(AccessTokenGuard) @UseInterceptors(TransactionInterceptoer) async postPosts( @User('id') userId: number, @Body() body: CreatePostDto, @QueryRunnerDecorator() qr: QueryRunner, ) { .... 중략 } 트랜잭션을 interceptor로 관리하는것을 배워서 너무 유익하고 100점 만점의 100점 꿀팁이었습니다. https://www.npmjs.com/package/typeorm-transactional 해당 라이브러리를 원래 사용 했으나, 마음에 들지 않았었는데 덕분에 interceptor로 대체 할 수 있을것 같습니다 좋은 강의 만들어 주셔서 감사합니다!
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
transaction interceptor을 사용할때 body field validation이 안되는 문제가 발생하여 query runner와 transaction interceptor 두코들 제외 하니 validationdl 다시 되었습니다. 혹시 어떤문제인지 알수 있을까요?
열심히 보고 있습니다. restoreAccessToken을 플레이그라운드에서 테스트 하면 에러 코드 "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "restoreAccessToken" ], "extensions": { "code": "UNAUTHENTICATED", "stacktrace": [ "UnauthorizedException: Unauthorized", 왜 접근을 하지 못하는 걸까요? 나머지는 정상 작동합니다. 참고로 Apollo Sandbox을 사용하고 있습니다.
[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
안녕하세요 강사님. 강의 듣다가 Rest api 설계시 궁금한 점이 있어 여쭤봤습니다. rest api 설계 시 조회 부분에서 대부분 업무 로직이 사용자 조건 검색 같은게 많은데요 예를들어 사용자의 나이와 이름 등을 입력 받아 조회하는 등의 검색 조건을 나열해야 한다면 url 설계를 어떻게 해야 할까요?
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
맨 처음 클론하고 나면 chats.gateway.ts 에서 socket.user라는 프로퍼티를 찾을 수 없다는 에러가 뜨고 있습니다. 에러가 나는 로직을 전체 주석시키고 나면, CommentsService에서 CommonService의 의존성을 찾을 수 없다는 에러가 뜹니다. ("Nest can't resolve dependencies of the CommentsService (CommentsModelRepository, ?)") CommonSerivce 의존성을 해결하고 나니 "TypeORMError: Entity metadata for UsersModel#postComments was not found." 라는 에러가 뜹니다. 위 에러를 고치고 나니 또 다른 에러가 뜨고 있습니다. 혹시 github 레포지토리 clone 해보셨을 때 문제 없는지 확인 가능 하실까요?
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
파일 '/Users/제이름입니다/Desktop/book_lecture/inflearn/code-factory/typeorm_test/docker-compose.yaml'(NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/Users/bonhyunkoo/Desktop/book_lecture/inflearn/code-factory/typeorm_test/docker-compose.yaml')을(를) 쓸 수 없음 docker-compose.yaml 파일 생성시 나타나는 에러입니다. 환경은 mac pro m1칩이고 vscode에서 실습 중입니다. 사실 원래는 문제 없다가 뒤늦게 mac os 환경세팅 강의에 나오는 sudo corepack enable 명령어 입력 후 권한 문제가 계속 나오네요 위의 도커 파일 뿐만 아니라 typeorm을 비롯한 라이브러리 설치시에도 항상 sudo를 입력해줘야하는 등 문제가 계속 발생하는데 왜 그런걸까요? 해결법은 뭔가요? sudo corepack enable이란 명령어는 어떤 의미를 가지고 있는 건가요? 밑은 라이브러리 설치시 나타나는 에러입니다. yarn add @nestjs/typeorm typeorm pg yarn add v1.22.21 [1/4] 🔍 Resolving packages... [2/4] 🚚 Fetching packages... error Error: EACCES: permission denied, unlink '/Users/제이름입니다/Desktop/book_lecture/inflearn/code-factory/typeorm_test/node_modules/.yarn-integrity' info Visit https://yarnpkg.com/en/docs/cli/ad d for documentation about this command.
fetchProduct,updateProduct,deleteProduct등 플레이 그라운드에서 코딩할 때 mutation{ updateProduct(productId:"7a40df24-4feb-43d0-b07e-c5855437a441" updateProductInput:{ name:"가나" }) query{ fetchProducts{ id name description } } 중괄호,소괄호 쓰는데 어떤 위치에서 중괄호,소괄호를 사용해야하는지 팁 없나요?
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
안녕하세요, postman으로 테스트해보다가 궁금한것이 있어 질문 올려요. 질문 전에 base-pagination.dto.ts 에서 order__createdAt의 기본값은 없앤 상태일 때 likeCount DESC 같은것으로 정렬한다면, where__id__... 를 어떻게 해야할지.. 테스트해보니 생각한것처럼 나오지 않아서요. 커서 페이지네이션은 이렇게 쓰면 안되는것인지.. 궁금합니다. 예) 배달비 순으로 정렬, 금액 순으로 정렬 이런것들이요. 감사합니다.
안녕하세요. GraphQL로 서버를 개발하면, 프론트 개발자는 Playground를 보고 API 사양을 확인하게 될 것 같은데요..! 받아올 수 없는 값을 Playground에서 미리 알려줄 수 있는 방법이 없는지 궁금합니다. 예를 들어, 아래와 같이 createProduct를 할 때, productTags나 productCategory는 name을 받으려 하면 에러가 발생하잖아요. 근데, Playground의 DOCS에는 name 타입도 받아올 수 있는 것처럼 확인이 되는데, 오류를 받아보기 전에 해당 값은 받아올 수 없는 값이라는 걸 알려줄 수 있는 방법이 있을까요..?
... @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy::class) data class UserRequest( ... @field:Pattern(regexp = "^\\\\d{2,3}-\\\\d{3,4}-\\\\d{4}\\\$") var phoneNumber:String?=null, ) 위와 같이 UserRequest 데이터클래스에서 @JsonNaming 과 @field:Pattern 을 동시에 사용하면 @JsonNaming 의 snake case 적용이 작동하지 않아 PUT 요청의 body 에 phoneNumber 로 요청해야만 정상 작동하고 phone_number 로 요청하면 400 에러가 나지만, 해당 필드에 @field:Pattern 대신 @field:Size 를 사용하면 @JsonNaming 에 기대하는대로 phone_number 로 요청해도 200 응답으로 정상작동 하는 현상을 겪고 있습니다. 왜 Validation 어노테이션을 바꾸었을 뿐인데 그와 상관없어보이는 @JsonNaming 의 작동 여부에 영향을 끼치는지 궁금합니다.