본문 바로가기

분류 전체보기

(122)
20230308 TIL - seed data만들기 Today I learned typeorm을 사용해서 seeddata를 만들려면 CLI를 사용해서 migration을 사용해한다고 한다 필요한 패키지를 준비하자 npm install -D ts-node tsconfig-paths tsconfig-paths는 typeorm cli가 절대경로를 인식하지 못해서 문제가 발생하는 경우가 있다 그래서 임의로 절대경로를 넣어주기 위해 package.json에 스크립트를 추가하자 "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js --dataSource ./data-source.ts", "migration:create": "ts-node -r tsconfig-paths/registe..
20230307 TIL - github에 민감한 파일 올렸다 Today I learned 오늘은 작업을 하다가 api 시크릿 키들이 있는 민감한 파일을 푸쉬해버렸다 아찔하다 민감한 파일을 푸쉬를 하다니 이 경우 커밋에 있는 파일을 삭제할 수 있는지 찾아봤다 첫 번째로 .gitignore에 민간함 파일을 까먹지 말고 넣어두자 .gitignore에 적는다고 해서 올라간 파일이 사라지지 않는다 첫 번째로 적어둔 이유는 다시 실수 하지 말자는 생각에 먼저 작업한다 두 번째로 캐시를 모두 지워주고 다시 커밋해야한다고 한다 git rm --cached 민간한 파일명 파일을 삭제한다고 commit내용이 사라지지 않는다 기록을 찾아본다면 충분히 민간함 파일을 읽을 수 있다 더 완벽하게 제거해야한다 git filter-branch --force --index-filter 'git..
20230306 TIL - S3 파일 업로드 문제 Today I learned 오늘은 S3파일 업로드 시 문제가 발생해서 해결했다 나는 테스트를 진행하면서 에러를 발견하지 못했는데 팀원이 테스트를 진행하면서 에러가 발생을 했다고 한다 나는 되는데 팀원이 안된다고 하니 접근 권한의 문제인가 싶었다 하지만 같은 IAM을 공유하고 있고 S3도 퍼블릭 권한을 가지고 있어서 문제가 없어보였다 문제는 Windows와 Mac의 운영체제의 문제였다 나는 Windows고 팀원은 Mac을 사용하고 있다 이 부분에서 내가 다른 운영체제를 고려하지 않아서 발생하는 문제였다 웹 서버를 개발하는데 Windows만 접속한다는 상황은 없다 내가 코드를 잘못 작성했다 const fileName = image.path.split('\\\\')[3]; 이런식으로 진행했는데 Mac은 //..
20230301 TIL - nestjs typeorm Today I learned photospot을 모두 가져오는 작업을 진행하다가 문제가 발생했다 deletedAt이 null인 데이터만 가져오고 싶었다 async getAllPhotospot() { return this.photospotRepository.find({where: {deletedAt: null}) // error '{ deletedAt: null; }' 형식은 'FindOptionsWhere | FindOptionsWhere[] | undefined' 형식에 할당할 수 없습니다. 'deletedAt' 속성의 형식이 호환되지 않습니다. 'null' 형식은 'Date | FindOperator | undefined' 형식에 할당할 수 없습니다.ts(2322) 타입스크립트가 에러를 보여준다 nu..
20230228 TIL - nestjs 유닛테스트 Today I learned 테스트 코드 작성 중 문제가 발생했다 Nest can't resolve dependencies of the PhotospotService (?, S3Service). Please make sure that the argument PhotospotRepository at index [0] is available in the RootTestModule context. 의존성 주입을 위해서 module에다가 세팅을 해주는 부분이 있는데 테스트를 할 때 mock module을 만드는데 그 부분에 세팅해 주지 않아서 발생하는 문제인듯 하다 해결해보도록 하자 const app: TestingModule = await Test.createTestingModule({ imports: [ C..
20230227 TIL - 최종프로젝트 (찰칵), nestjs-form-data Today I learned 팀프로젝트 찰칵 포토스팟 등록 작업 포토스팟 등록하는 작업을 진행했다 S3에 이미지를 업로드 해야하기 때문에 S3 Client 세팅을 먼저 진행하는데 문제가 발생했다 configService를 이용하면 string 또는 undefinde가 반환이 되는데 accessKeyId와 secretAccessKey는 string 타입만 허용한다 위에 내가 지정한 타입은 ?:를 이용해서 해결하면 되는 부분이지만 저 두가지는 S3Client에서 지정해둔 타입이라서 사용할 수 없었다 이 문제를 해결하는 방법은 tsconfig.js에 가서 "strictNullChecks": false 옵션을 사용하면 해결이 가능하다 // tsconfig.js { "compilerOptions": { // 생략..
20230222 TIL - nestjs AWS S3 file upload Today I learned 이번 작업은 내가 원하는 위치에서 AWS S3에 file을 업로드 하는 것이 목표이다 작업을 진행하기 전에 사용할 패키지를 다운받자 npm install aws-sdk 지금 테스트는 aws-sdk만 이용해서 작업을 진행해보자 그리고 image.service.ts 파일로 가보자 // import 생략 import { S3 } from 'aws-sdk'; @Injectable() export class ImageService { constructor(private configService: ConfigService) {} bucketName = this.configService.get('AWS_BUCKET_NAME'); s3 = new S3({ accessKeyId: this.c..
20230221 TIL - nestjs 이미지 업로드 Today I learned nestjs를 이용해서 이미지를 업로드 하는 작업을 진행했다 expressjs에서는 multer패키지를 사용해서 이미지를 업로드했다 nestjs에서는 multer를 기본적으로 nestjs에 내장되어 있다고 한다 @nestjs/platform-express 패키지를 사용하자 작업을 진행하기 전 안전한 개발을 위해 설치해야하는 파일이 있다 npm install @types/multer --save-dev image.module에다가 설정을 진행해줘야 한다 @Module({ imports: [ MulterModule.registerAsync({ useFactory: multerOptionsFactory, }), ], controllers: [ImageController], prov..