게시글
질문&답변
2023.02.19
TypeORM + Mysql관련 질문
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!@CreateDateColumn() { createdAt: any;}부분에 기본값을 넣어주셔야 합니다.@CreateDateColumn({ type: "timestamp", default: () => "CURRENT_TIMESTAMP(6)" }) @UpdateDateColumn({ type: "timestamp", default: () => "CURRENT_TIMESTAMP(6)", onUpdate: "CURRENT_TIMESTAMP(6)" })
- 0
- 1
- 340
질문&답변
2023.02.19
class-transform 데코레이터들 끼리의 실행순서가 궁금합니다.
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!이 것은 NestJS 와 별개로 TypeScript 의 특성입니다. NestJS 공부를 하면서 TypeScript 인터페이스, 클래스, 데코레이터 등 많은 공부를 같이 병행 하면 좋습니다 :)(사진)출처 링크
- 0
- 1
- 443
질문&답변
2023.02.19
멀터를 사용하는데 파일은 저장되지만 @uploadedFile()에서 파일을 불러올 수가 없습니다.
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!다음과 같은 가능성이 있으며 사진 상으로는 1번이 제일 가능성이 높아 보입니다.1. postman 특성상 가끔씩 value에 값이 있어도 메모리에서 내려가 빈 값이 올라갈 때가 있습니다. 다시 사진을 업로드 하고 올려보세요!2. UploadedFile 와 UploadedFiles 를 알맞게 썼는지3. 프론트에서 올린 key와 value가 같은지 확인그리고 번외로 상품을 만든다고 가정할 때 body에 form 데이터와 raw/json값을 동시에 담지 못해서 저는 먼저 이미지를 업로드 하고 이미지의 url을 쿠키로 보내어서 상품 정보를 만드는 컨트롤러에서 쿠키에 있는 url과 상품 정보를 같이 데이터베이스로 보내서 상품 하나를 만듭니다. 혹시 이런방법이 실무등에서 쓰이게 되나요? 아니면 더 좋은 방법이 있을까요?-> 서비스에 따라 다르나 보통은 사진이 있는 게시물 같은 것을 올릴 때 이와 같은 유저플로우를 씁니다.1. 게시물 작성 페이지2. 사진 업로드 -> 업로드 하자마자 업로드 api 호출 -> 프론트에 업로드가 완료된 이미지를 보여줌3. 나머지 body 데이터들은 게시물 작성 버튼을 누르면 올라감
- 0
- 1
- 384
질문&답변
2023.02.19
PositiveIntPipe 생성할때 @Injectable() 사용한 이유
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!의존성 주입을 씀으로써 모듈들의 관계 관리가 쉬워지기 때문에 쓴다.. 라고 알고 계시면 될 것 같습니다. NestJS 의 IoC 컨테이너가 모두 관리해주기 때문인데요. 그렇기 때문에 그냥 직접 쓰셔도 되고 안하셔도 됩니다. 실무에서도 의존성 주입이 많아지면 오히려 복잡하다고 하시는 분들도 계시고, 아예 안 쓰시는 분도 봤습니다. 다만 공식문서에는 의존성 주입을 하는 예시가 있기 때문에 그렇게 수업을 진행하신 것 같습니다.
- 0
- 1
- 235
질문&답변
2023.02.19
데코레이터 관련 질문이 있습니다.
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!NestJS 를 잘하기 위해서는 데코레이터, 인터페이스, 클래스에 대한 TS 이해도가 높아야하니 공부해보시는 것을 적극 추천드립니다!질문1) 근데 함수1이랑 함수2에 매개변수 void인데? 뭘 받는다는 거죠-> 데코레이터는 함수이며 class , class field , class method , 파라미터에 붙을 수 있으며 파라미터로 void 가 들어가는 것이 아니라 contructor(생성자) 가 들어갑니다. 또한, method 와 field 같은 경우 3개의 파라미터가 자동으로 들어가게되며 target, 메타데이터, 설정 등 공식 문서를 참고해 보시면 좋을 것 같네요!질문 2) 함수1이랑 함수2 보면 return에 익명함수 박아놨는데 이게 왜 실행되는 거임? 어디에도 저거 실행하라는 게 없는데요? 그니깐 함수1 return 익명함수 구조면 적어도 함수1()() 이렇게 해야 실행되지 않나용?...-> 데코레이터는 붙이는 순간 인스턴스화 없이도 런타임에 자동 실행됩니다.
- 0
- 1
- 233
질문&답변
2023.02.19
jwt passport 질문입니다
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!백엔드 개발에서 정해진 개발 방법이라는 것은 없습니다. [매니저table, 유저table] 혹은 학교라고 한다면 [학생table, 교환학생table] 등 여러 테이블에 걸쳐 검증을 하는 것은 실무에서 많이 쓰이고 있습니다.1. 세션(redis)과 같이 운용을 하면서 해당 jwt가 어떤 table서 나온 것 인지 기록한다.2. 일일이 로그인, 재로그인 할 때 마다 table 에 find 쿼리를 날려서 확인한다.3. 두 jwt secret 환경변수를 다르게 하여 운용한다.등 많은 로직이 있습니다.
- 0
- 1
- 160
질문&답변
2023.02.19
forwardRef는 어떻게 동작하나요?
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!A모듈 -> B모듈 일 때B모듈 -> A모듈 일 때, 상태를 "양방향 참조" 참조 즉 순환 참조라고 하며,forwardRef 이름 정방향 참조로 바꿔주는 것 뿐입니다.그럼 한 쪽에서만 관계를 검색을 진행하게 됩니다.
- 0
- 1
- 313
질문&답변
2023.02.19
화면에 그려주는 프로그램 혹시 뭔가요?
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!(사진)이 것인 것 같습니다. mac 화면에 그릴 수 있고 pro버젼은 4900원입니다.
- 0
- 1
- 175
질문&답변
2023.02.19
typeorm migration 방법에 대해서 알려주실 수 없을까요?
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!개발 환경에서는 synchronize 값을 true로 설정한다면 자동으로 마이그레이션을 해줍니다.하지만 synchronize 는 현재 있는 정보들을 모두 drop 한 후 동기화를 하는 것 이기 때문에무조건 개발 환경에서만 사용하셔야 합니다!production에서는 migrate cli를 사용하시면 됩니다.상세한 cli 는 링크 남기겠습니다.typeorm cli 정리
- 0
- 1
- 168
질문&답변
2023.02.19
DI(의존성 주입)을 왜 해야하나요?
안녕하세요 :)답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!어떠한 이유에서 의존성 주입의 개념을 사용해야 하는지 명쾌하게 알고 싶습니다.-> 일단 이것을 알기 위해서 한 문장으로 명쾌히 설명할 수 없습니다. Spring 프레임워크의 IoC 와 DI 를 이해하셔야 하며 이는 추가로 검색을 통해 학습하시길 바랍니다.밑에는 제 개인적인 의견입니다.1. nodejs는 express로 백엔드를 만들어왔습니다. 많은 장점이 있었지만, 단점도 많았습니다. 그 중 장점이자 단점인 것이 있었는데, 바로 "자유롭다"입니다.2. 자유롭다 보니 설계패턴, 디자인패턴, 구현방식 등 개발이 다 제각각이다 보니 (보안도 안좋기도 합니다.) 엔터프라이즈 백엔드로 크지 못한 이유가 여기에 있습니다.3. 그렇기 때문에 엔터프라이즈 급 백엔드인 Spring의 설계 + TS + 구글의 앤터프라이즈 프레임워크 Angular 의 좋은 점들을 조합하여 NestJS를 만들었습니다.4. 여기서 Spring의 IoC 와 DI 를 좀 배껴온 것 같습니다.5. IoC 랑 DI 를 통해서 NestJS 에 provider 들을 관리하는 컨테이너를 띄우고 싱글턴 패턴을 활용해서 컨테이너에 인스턴스들을 등록합니다.6. 정리하자면 각 인스턴스들을 여러개 띄우는 것이 아니라 싱글턴 패턴으로 일관성을 유지하고 이들의 관계를 module 로 컨테이너가 관리함으로써 엔터프라이즈 백엔드로 (큰 규모의 백엔드) 설계를 할 수 있도록 한 것입니다.
- 1
- 1
- 408