본문 바로가기

Backend

(112)
timestamp 값이 내려가지 않았던 문제 수정 문제 상황 db 테이블에는 timestamp 컬럼에 값이 존재했는데, timestamp 값이 계속해서 null로 내려가는 문제가 있었다. responseData.data.metadata.attributes.forEach((attribute) => { if (attribute.value === 'Used') { const findHistory = benefitTxHistoryList.find((history) => history.traitType === attribute.type); if (findHistory) { attribute.timestamp = findHistory.timestamp; } else { attribute.timestamp = null; } } else { attribute.time..
내가 호출해온 API의 data 찍어보기 (2) 내가 API 호출을 잘 해왔나?라는 의구심이 들어 data를 찍어보고자 하였다. 그런데 계속 [Nest] 77632 - 11/06/2023, 5:25:17 PM ERROR [ExceptionsHandler] Request failed with status code 400 라는 에러가 발생했는데, 400 에러는 말그대로 파라미터값을 안넘겼거나 OR 잘못 넘겨서 발생하는 문제이다. 이 문제를 해결하기 위해 다음과 같이 실행하였다. 1) 호출 해오는 API에서 파라미터값을 넘기는지 볼 것 ㄴ내가 호출해오는 API는 requestParams를 넘기고 있었다. 2) 내가 작성한 Service 파일 단에서 parameter을 넘기자. async getGreetingsDetail() { const response =..
MYSQL) 현재 DB의 timezone 확인해보기 현재 DB의 timezone을 확인해보기 위해 다음과 같이 진행하였다. 1) intelliJ 터미널 접속 2) mysql 입력 3) SHOW VARIABLES LIKE '%time_zone%';
호출한 API의 data 찍어보는법 const response = await firstValueFrom(this.httpService.get(`${this.configService.get('디렉토리이름.url')}/디렉토리이름/경로1/경로2`)); const responseData = response.data; return responseData; 이런 식으로 호출한 API의 데이터를 찍어볼 수 있다.
timestamp값이 년-월-일만 나왔던 경우(분,초가 안나옴!) entity에서 timestamp 컬럼을 만들고, 아래와 같이 설정을 해주었다. 그리고 DB 컬럼에서 data type을 Date로 했더니.. @Column({ type: 'timestamp' }) @Transform(transformDate) timestamp: LocalDateTime;  timestamp가 년-월-일 밖에 찍혀서 나오지 않았다! 내가 원하던건 년-월-일 ~ 분 ~ 초 까지 찍혀서 나오는 것이었는데, timestamp를 나름 썼다고 생각했지만 나의 오산이었다. 해결 방법 timestamp의 Date Type을 Date > Timestamp로 변경하였다. * 참고로 sql timestamp data type이 있다고 하니, 이걸 좀 참고해야겠다. https://www.w3schools..
created_at과 updated_at에서 날짜가 찍혀서 안나오는 문제 문제 상황 db 컬럼에 created_at과 updated_at을 했는데 컬럼값에 날짜가 찍혀나오지 않았다. 문제 해결 Data Type : timestamp Default Expression: now() -> postgres의 경우 / CURRENT_TIMESTAMP -> MySQL의 경우 로 설정을 해주어야 값이 노출된다. 이 점을 명심할 것!
If BenefitTxHistoryRepository is a provider, is it part of the current AdminApiModule? 문제 상황 [Nest] 22390 - 10/26/2023, 8:58:32 PM ERROR [ExceptionHandler] Nest can't resolve dependencies of the AdminApiService (?). Please make sure that the argument BenefitTxHistoryRepository at index [0] is available in the AdminApiModule context. Potential solutions: - Is AdminApiModule a valid NestJS module? - If BenefitTxHistoryRepository is a provider, is it part of the current AdminApiModul..
table이나 column drop할때 오류 최소화 하는법 1) db 컬럼을 날리기(drop)전에 develop 브랜치에 의존성 제거(연관관계가 잡혀있는지?)하고 -> 의존성 제거한 코드를 merge & 배포 2) 컬럼을 drop 하면서 오류가 나는 게 있는지 확인 3) develop branch를 main 브랜치에 merge & 배포 4) main (prod) db에서도 컬럼 날리기(drop)
231019의 실수 일기 (안쓰는 컬럼 지우기) 나는 백엔드 개발자 10개월차이다. 하지만 오늘 이전에 없던 실수를 저질러버린 ㅠ.ㅠ 상황은 다음과 같다. FE팀에서 API 정리 목록 요청이 들어와서, API 호출 테스트 + 정리 겸 필요 없는 테이블의 컬럼을 삭제하고자 하였다. 지금 상황에서는 이 컬럼을 안쓰겠지~하고 DEV와 PROD DB에서 안쓰는 컬럼을 정리하였는데 맙소사. 홈페이지에 팝업이 뜨지 않았다. 500 에러를 내뿜으며 데이터는 감감 무소식.. 팝업은 틀만 나오는 상황. 이건 큰일났다 하며 부랴부랴 다시 삭제했던 컬럼을 원복하고, QA팀에서 슬랙 언급되고, 20~30분 안의 상황이 어떻게 흘러가는지도 몰랐다. 팀장님의 임시 조치 방법은 isActive=false로 하여 현재 떠있는 팝업을 아예 지우자고 한 것. 그래서 isActive=..
param.ts 파일이나 dto에서 다른 파일에서 쓰여진 Enum 끌고오기 param.ts 파일에서 기존에 작성했던 Params에 다른 파일에서 작성한 Enum을 끌고와야 할 일이 있었다. 그래서 이 방법을 어떻게 해야하나 고민하던 중 해결할 수 있었다. 기존 방식 export class CompanyRequestParams extends CollectionAddressOrSlugParams { @Type(() => Number) @IsNumber() @IsOptional() readonly tokenId: number; @IsString() @IsOptional() readonly walletAddress: string; // 여기에 Enum 파일 끌고올 것 } 그럼 enum에서 선언된 @Enum 어노테이션을 통해 가져와야 하지 않겠는가. @Enum('benefitType')..