본문 바로가기

Backend

(115)
json 파일 import 하는법 팀원으로부터 json 파일을 받게 되었다. api 셋팅이 그대로 되어있다는데, 이를 포스트맨에서 사용하는 방법을 정리하고자 한다. 포스트맨 좌측에 보면 import 버튼이 있다. 이걸 누르고, 다운받은 json 파일을 끌어와서 사용하면, 그 파일 안에 있는 API 리스트를 읽어와서 어떤 API를 사용할 건지 check 해주고 사용하면 된다. 이 안에 GET,POST 등 API 리스트 목록이 함께 들어있다.
모니터링 시스템 구축을 위한 리서치 Index 0) 요구사항 우리팀 서버에 문제가 생겼을 때 알 수 있어야 한다. 현 시스템이 DB 로그에 보는 것에 익숙하지 않다. Kubernates에 접근하기 어려우며, 서버 배포 환경을 이해하기 어려운 구조이다. API Application 필터링 해서 로그를 봐야 한다. Kubernates는 로그를 보는데 가독성이 떨어진다. → 시각화의 필요성 Kubernates 인스턴스 모니터링 + 각각의 pod 요소들의 전반적인 메트릭은 Prometheus가 보기 편하다. 서버 모니터링과 서비스 모니터링의 차이점 서버 모니터링 : 여러대의 서버 중 1대라도 죽는 경우를 모니터링 서비스 모니터링 : 사용자 입장에서 서비스가 안되는 경우가 모니터링 *** 경고 시스템의 구성 요건** 우리 팀이 빠르게 이해할 수 있..
이미지 리소스 한 번에 교체 with SQL postgres DB에 테이블을 만들어서 image 리소스(url 주소)를 관리하고 있었다. -> API로 프론트엔드에 데이터를 내려주기 위해 해당 컬럼에 있는 이미지 url 주소를 SQL 명령어로 한 번에 교체할 수 있었는데, 다음과 같이 진행하였다. UPDATE DB 테이블 이름 SET 업데이트 하고자 하는 테이블의 컬럼 이름 = REPLACE(업데이트 하고자 하는 테이블의 컬럼 이름, '기존 이미지 URL 주소','바꾸고자 하는 이미지 URL 주소') 그리고 나서 db 테이블로 가서 새로고침을 해주니 해당 컬럼의 이미지 경로가 모두 변경되어 있었다. 명령어 한 번으로 컬럼 내부의 데이터를 한 번에 변경할 수 있는 SQL의 장점을 간단하게나마 느낄 수 있는 경험이었다.
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..