44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
hot reloading
안녕하세요 ! hot reloading 적용하게 될때 , 이런식으로 정상적으로 동작은 하지만 , 코드를 수정해도 아무런 변화가 없어서, "@nestjs/cli": "^8.0.0", 부분을 강의에서 말씀하신대로 "@nestjs/cli": "^7.5.1", 로 바꿔서 해도 해봐도 아무런 변화가 없네여 . 물론 ctrl+c 하고나서 다시 키는것은 정상적으로 동작합니다 ! 이유가 뭘까요 ?
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
예전부터 궁금했던 보안관련 질문있습니다.
안녕하세요. 예전부터 궁금사항이 있었는데, 실제로 결제 관련된 한 서비스를 운영하시는 걸로 알고 있습니다. 실제 은행과 같은 정말 보안적으로 최고로 중요한 서비스는 아니더라고, 실제 돈이 오가는 결제 서비스이기에 보안관련 예민하게 작용을 할텐데, 일반적인 passport 나 쿠키 관리, 또는 APP과 통신을 하면서 JWT 토큰을 오가는 정도로는 보안을 강화하기는 힘들 것 같은데, 실제 결제 서비스가 운영되는 정도의 프로젝트에서는 어느정도까지, 어떻게 보안을 강화하여 사용하고 있는지가 정말 너무 궁금했습니다. 예전부터.. 디테일하게 과정까지 말씀해주시면 좋겠지만, 이정도까지 처리하고있다 정도라도 말씀해주시면 너무 감사할것 같습니다 ㅠㅠ
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
camel & snake case 질문드립니다!
일반적(?)으로,코드상에서 존재하는 변수들이나 코드들은카멜케이스로 작성, 외부 요청 (API 통신)을 때에는snake case 형식으로 통신을 하는 것으로 알고 있습니다.물론 상관없다라는 이야기가 나올 수 있지만,협업관계에서는 되도록 일반적인, 익숙한 약속을 서로맞춰 사용하는 것이 낫고 최대한사소한 부분이나 스타일 관련해서는충돌을 피하는 것이 낫다고 생각하기에,응답할때에는 snake case 로 보내고 싶습니다.tpyeorm 을 작성하면서 find나,dto 작성이나,엔티티 작성때에서 camel case 형식으로변수가 작성되는 것 같은데,혹시 이들을 응답할때 snake 로 자동변환해주는어떤 방법이나,또는 어떤방식으로 사용하고 계신지 궁금해서 질문드립니다!
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
강의 마지막에 nest-morgan 사용에 대해서.
강의 마지막에 nest-morgan 사용하시면 좋다고 하셔서,nest-morgan 을 적용하였으나.. 시간이 [09/Aug/2021:12:03:46 +0000] 이런식으로 시간 포맷 변경에 대해 알아봐도 자료가 안나오네요 ㅠㅠ 뿐만 아니라, 모양새는 같아보이는데, 추후에, 추가 정보를 삽입하거나, 활요하면 좋을 것 같아서 다시 강의 내용으로 입맛대로 구현한 moran 을 쓰려고 하는데, 이것을 그대로 사용했을때 우려되는 부분이 따로 있나요~~??
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
프론트 관련 질문
안녕하세요, 일단 백엔드 NestJS 부분만 듣고 있는데요, 프론트를 NextJS 로 구현한다고 하면 pages/chat 처럼 만들어서 소스의 front 부분 코드를 참조해서 넣으면 문제없이 작동할까요? 아 그리고 react-query 부분이 보이는데 이쪽은 아직 작업중이신건가요?
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
인터셉터 활용법에 대해 질문 드립니다...
우선 제가 백엔드와 프론트를 따로 개발하는 중 입니다. 프론트 개발자가 바디에 값을 넣어서 보낼때, 모든 값들이 전부 스트링으로 넣어야 한다고 합니다... 근데 제가 엔티티 작성시, 숫자인지 최대 최소 등의 유효성 검사를 넣어뒀는데, 스트링일시 숫자가 아니라고 판단해서 문제입니다. 유효성 검사에 들어가기전에 가로채서 타입캐스팅을 먼저 해주고 싶은데, 혹시 인터셉터로 가능할까요?
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
.env error
import { TypeOrmModuleOptions } from '@nestjs/typeorm'; import dotenv from 'dotenv'; dotenv.config(); console.log(__dirname); const config: TypeOrmModuleOptions = { type: 'mariadb', host: process.env.TYPEORM_HOST, port: +process.env.TYPEORM_PORT, username: process.env.TYPEORM_USERNAME, password: process.env.TYPEORM_PASSWORD, database: process.env.TYPEORM_DATABASE, entities: [__dirname + '/**/*.entity{.ts,.js}'], migrations: [__dirname + '/src/migrations/*.ts'], cli: { migrationsDir: 'src/migrations' }, charset: 'utf8mb4', logging: false, synchronize: true, keepConnectionAlive: true, }; export = config; 이렇게 사용을 하는데 dist/ormconfig.js:3 dotenv_1.default.config(); ^ TypeError: Cannot read property 'config' of undefined 이런 에러가 뜸니다 따로 뭐한게 없는데 왜 그럴까요?
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
FileFieldsInterceptor 관련 질문입니다.
aws s3를 사용하여 이미지를 저장 중인데요. FileFieldsInterceptor 을 사용하여 s3로 저장하는데에는 문제는 없습니다. 근데 이게 게시물에서 이미지를 업로드하는 경우라서, 게시물 작성시에는 문제가 없습니다만, 게시물 수정시, 원래 이미지를 같이 보내버리면 이미 s3에 있음에도 s3에 전부 저장이 됩니다.... 제가 이미지 경로는 따로 DB에 넣어서 보관하고 있는데요, 혹시 FileFieldsInterceptor를 제가 상속받아서 파일 저장하기 전에 앞단에서 이미 저장한 파일인지 파악할 수 있는 로직을 추가 하려면 어떻게 해야 할까요?
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
React Nodebird때 만들었던 Follow기능(=many to many)질문 입니다 (Sequelize vs Typeorm)
안녕하세요? 제로초님 노드버드 강의를 완강하고, 어느새 sleact 강좌도 마무리 시점이 와가네요. 항상 감사합니다 이번 typeorm관계설정 강의를 듣다가 궁금한점이 생겼는데 도저히 해결이 되지않아 이렇게 질문을 드립니다. 노드버드 강좌에서 팔로워/팔로이 기능을 model에서 정의할때 Sequelize로 아래와 같이 belongsToMany에 as 와 through를 이용해서 설정했었는데요, // 관계 설정 User.associate = (db) => { ... db.User.belongsToMany(db.User, { through: 'Follow', as: 'Followers', foreignKey: 'followingId' }); db.User.belongsToMany(db.User, { through: 'Follow', as: 'Followings', foreignKey: 'followerId' }); // 같은 테이블에서 다대다 관계일때는 foreignKey넣어주어야 됨 // WHY? : 자바스크립트 객체에서 구별하는 이름이 as이고, DB에서는 foreignKey를 이용해 구별한다. }; Typeorm에서 이와같이 user대user 관계에서 팔로우 기능을 구현해보려고 스스로 학습중인데, 검색해도 나오지를 않고 어떻게 해야할지 감이 안잡히네요... Typeorm에는 Sequelize처럼 이렇게 편리한 기능이 없는것인거겠죠? ㅠ 만약 Typeorm에서 제공하는 as 나 Through기능이 없다면, Typeorm에서는 노드버드에서와 같은 팔로워/팔로이 기능을 어떻게 구현해야할지 궁금합니다!
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
swagger관련 질문있습니다
https://github.com/nestjs/swagger/issues/1006 여기있는 문제와 완전히 동일한 문제가생겨서 swagger문서가 나오지않고있습니다. 답변에 나온대로 헬멧 지워도보고 헬멧위로 올려도봤지만 계속 css와 js파일이 https로 불러와지고있습니다. 로컬환경에서는 문서가 잘 나오는데 ec2에 올리면 https로 불러와지네요.. 다른점이 찾기위해 로컬에 보내는 요청과 ec2에 보내는 요청을 비교해봤는데 로컬에서는 Referrer Policy가 strict-origin-when-cross-origin으로 설정되어있고 ec2에는 no-referrer로 설정되어있습니다. 혹시 이게 문제라면 어떤방식으로 접근하면 좋을지 조언 부탁드려도 될까요?
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
Api status 관련 질문이용
강의영상 23분00초 쯤에 코드마다 status코드를 다르게 구현해주어야 한다고 말씀하셨는데, 이것이 api별로 코드를 다 다르게 설정해주어야 한다는 말씀이신가요?
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
declare const module: any;
안녕하세요. hot reload 관련 main.ts에 추가한 코드 문의드립니다. 아래와 같이 module이란 이름의 정해지지 않은 타입을 선언하기만 한것인데 어떻게 reload 관련 모듈을 포함하여 사용할 수 있는 것인가요? declare const module: any; module.hot module.hot.accept(); module.hot.dispose(() => app.close());
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
기존 DB 관련 질문
영상 1분 45초쯤에 sleact 강좌를 안 들으셔서 기존 DB가 없으신 분들은 entities 파일들만 만드시고 코드만 따라 치세요. 라고 나오는데, sleact 강좌가 어떤 걸 말씀하시는 걸까요? 제가 slack 클론 코딩 강좌 2개 모두 구매했는데 DB를 어디서 만드는 지 모르겠습니다. 혹은 3-4강으로 가서 테이블을 먼저 만들고 다시 들어야 하는 걸까요?
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
LocalAuthGuard 를 사용하고 있는데요, 권한 에러가 뜹니다....
저는 지금 백엔드만 만들어서 실습하고 있는데요, 포스트맨으로 로그인을 시도해 보고 있습니다. 근데, 계속해서 권한 에러 401이 뜨고 있습니다. 제가 볼때는 LocalAuthGuard에서 canActivate 를 통과하지 못하는 것 같습니다. context를 로그 찍어봐도 [Object] 라고만 뜹니다. 리퀘스트가 제대로 못넘어가 고 있는 것 같은데 어떻게 해결할 수 있을까요?
- 해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
ERROR [ExceptionsHandler] Cannot read property 'hash' of undefined
안녕하세요!! 강의 잘 보고있습니다. 회원가입에서 bcrypt를 설치하고 hash를 사용하는데 있어어 에러가 발생하는 것 같습니다. [Nest] 58011 - 07/17/2021, 11:08:18 PM ERROR [ExceptionsHandler] Cannot read property 'hash' of undefined TypeError: Cannot read property 'hash' of undefined bcrypt를 지웠다 깔아보고, 버전변경을 해보아도 동일한 에러가 발생합니다. 해당 에러에 대해 솔루션이 있다면 부탁드립니다.!
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
Typeorm & mongodb 질문 있습니다!
안녕하세요 제로초님! 제로초님의 nestjs 강좌를 공부하고 mysql 대신 mongodb를 사용하여 간단한 프로젝트를 진행하고 있는데요. 검색하는 API를 만드는 부분에서 궁금한 점이 생겨서 질문 드립니다! 제가 원하는 방식은 DB에 "베르나르 베르베르"가 있을 때, "베르나르베르베르"로 검색해도 결과가 나오고, DB에 "베르나르베르베르"가 있을 때 "베르나르 베르베르"를 검색해도 결과가 나오는 방식입니다. const [items, totalCount] = await this.productsRepository.findAndCount({ where: { name: { $regex: `${keyword}`, $options: 'i', } }, 위와 같이 조회할 때 options를 사용하여 검색어에서 띄어쓰기를 없애는건 했는데, product 테이블에 있는 name 컬럼의 띄어쓰기를 없애는 부분에서 막혔습니다ㅠㅠ 도와주시면 감사하겠습니다! name: { $replaceAll: { input: "$name", find: " ", replacement: ""}, name: { $regex: { $trim: {input: `${keyword}`}}} } 이런식으로도 해봤는데 먹히지가 않습니다..
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
ERROR [ExceptionsHandler] Relation with property path workspace in entity was not found. 에러
[빠진 컨트롤러 구현하기] 강의에서 로그인을 했을때 제화면에는 아무것도 안뜨고 ERROR [ExceptionsHandler] Relation with property path workspace in entity was not found. 에러가 뜨는데 아직 구현하지 않은것 때문에 이런 에러가 뜨는것일까요? 아니라면 이 에러는 대강 무엇을 의마하나요..?
- 해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
ERROR [TypeOrmModule] Unable to connect to the database. 에 관해
안녕하세요.!! typeorm 커넥션 맺기 강의를 보던 중 ormconfig까지 적용을 했으나 아래와 같은 에러가 발생하여 질문드립니다. [Nest] 18203 - 07/14/2021, 11:50:27 PM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)... Error: connect ECONNREFUSED 127.0.0.1:3306 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1145:16) 여러 서칭을 해보아 port 번호를 바꾸기, entity 경로 변경 등을 시도해보았으나 동일한 에러가 발생합니다. ㅜ
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
swagger module 오류
영상 3분20초쯤 swagger를 사용하기위해 main.ts를 수정하고 npm run start:dev 로 실행하는데요 npm install --save @nestjs/swagger swagger-ui-express 해당 명령어로 설치를 완료했음에도 불구하고 Error: Cannot find module '@nestjs/core/router/route-path-factory' Require stack: - C:\workspace\slack-nest\a-nest\node_modules\@nestjs\swagger\dist\swagger-explorer.js - C:\workspace\slack-nest\a-nest\node_modules\@nestjs\swagger\dist\swagger-scanner.js - C:\workspace\slack-nest\a-nest\node_modules\@nestjs\swagger\dist\swagger-module.js - C:\workspace\slack-nest\a-nest\node_modules\@nestjs\swagger\dist\index.js - C:\workspace\slack-nest\a-nest\node_modules\@nestjs\swagger\index.js - C:\workspace\slack-nest\a-nest\dist\main.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15) at Function.Module._load (internal/modules/cjs/loader.js:842:27) at Module.require (internal/modules/cjs/loader.js:1026:19) at require (internal/modules/cjs/helpers.js:72:18) at Object.<anonymous> (C:\workspace\slack-nest\a-nest\node_modules\@nestjs\swagger\dist\swagger-explorer.js:8:30) at Module._compile (internal/modules/cjs/loader.js:1138:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10) at Module.load (internal/modules/cjs/loader.js:986:32) at Function.Module._load (internal/modules/cjs/loader.js:879:14) at Module.require (internal/modules/cjs/loader.js:1026:19) { code: 'MODULE_NOT_FOUND', requireStack: [ 'C:\\workspace\\slack-nest\\a-nest\\node_modules\\@nestjs\\swagger\\dist\\swagger-explorer.js', 'C:\\workspace\\slack-nest\\a-nest\\node_modules\\@nestjs\\swagger\\dist\\swagger-scanner.js', 'C:\\workspace\\slack-nest\\a-nest\\node_modules\\@nestjs\\swagger\\dist\\swagger-module.js', 'C:\\workspace\\slack-nest\\a-nest\\node_modules\\@nestjs\\swagger\\dist\\index.js', 'C:\\workspace\\slack-nest\\a-nest\\node_modules\\@nestjs\\swagger\\index.js', 'C:\\workspace\\slack-nest\\a-nest\\dist\\main.js' ] } @nestjs/core/router/route-path-factory모듈을 찾을수없다는 에러가 나옵니다. 해당 모듈을 npm 으로 설치하려하면 npm ERR! code ENOLOCAL npm ERR! Could not install from "@nestjs\core\router\route-path-factory" as it does not contain a package.json file. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\Victory_Ju\AppData\Roaming\npm-cache\_logs\2021-07-11T12_14_26_578Z-debug.log 이러한 오류가 나오며 설치가 안되더군요, 제가 vscode에서 작성한 내용은 아래와 같습니다. import { NestFactory } from '@nestjs/core'; import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; import { AppModule } from './app.module'; declare const module: any; async function bootstrap() { const app = await NestFactory.create(AppModule); const port = process.env.PORT || 3000; const config = new DocumentBuilder() .setTitle('Sleact API') .setDescription('Sleact 개발을 위한 API 문서입니다.') .setVersion('1.0') .addCookieAuth('connect.sid') .build(); const document = SwaggerModule.createDocument(app,config); SwaggerModule.setup('api',app,document); await app.listen(port); console.log(`server listen port ${port}`); if (module.hot) { module.hot.accept(); module.hot.dispose(() => app.close()); } } bootstrap();
- 미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
유닛 테스팅하기, MockRepository는 믿을만 한가요?
너무 밑도 끝도 없는 질문이라 죄송합니다. Repository의 logic에서 핵심이 되는 logic을 뽑아서 가짜 MockRepository를 만들고 사용하면, 사실 실제 코드랑 테스트 코드랑 달라질 우려가 있지 않나요?그건 감안하고 해야 하는 부분인가요?실제와 비슷한 수준으로 만들 수 있으면 좋겠지만, 그건 말씀하신대로 어려울 거 같고, 자칫하다가는 자기만족으로 끝날까 하는 노파심에 말씀드립니다. 또, 테스트 용도의 DB를 하나 더 만드는 것에 대해서는 어떻게 생각하시나요? 이런 경우는 없나요?DB를 그대로 쓰는 쪽이 더 안전하다고 생각하는데, 현업에서는 보기 힘든 경우인지 여쭤보고 싶습니다.