본문 바로가기

분류 전체보기

(285)
npm install 했는데 npm ERR! ERESOLVE unable to resolve dependency tree 라는 에러가 뜨는 현상 npm으로 winston 라이브러리를 설치하려고 터미널에 입력했더니 위와 같이 에러가 뜨며 npm 라이브러리 설치가 되지 않았다. class-transformer 버전이 맞지 않아 생기는 에러로 생각된다. 제일 눈여겨볼 부분이 아래와 같다. npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree 이를 해결하기 위해서 npm config set legacy-peer-deps true 명령어를 입력해주었다. npm config set legacy-peer-deps true legacy-peer-deps=true로 설정하는 이유는, 특정 라이브러리의 메인테이너가 더이상 유지보수를 하지 않아서 버전 업그레이드가 안되는 라이브러리를 사..
Git Commit Message Style Git에 Commit Message를 올릴때 많은 고민이 되곤 한다. 무엇을 업데이트 했는지 한국어로 쓰기는 쉽지만, 더 직관적으로 사용하기 위해서 [edit], [add] 이런 문구를 서두에 추가해주곤 했는데 공식 방법이 아닌 것 같다. Git 커밋 메시지 내역을 보던 중 한 팀원이 chore을 서두에 붙이고 커밋 메시지를 남긴 이력을 보았는데, 기존에 feat, fix만 써오던 내게 chore은 새로운 개념으로 다가와 이에 대해 정리해보고자 한다. feat 새로운 기능 추가 fix 버그 수정 docs 문서 수정 style 코드 수정 없이 style만 변경 (들여쓰기, 세미콜론 빼먹은 경우) refactor 코드를 리팩토링 test test 관련된 코드의 추가,수정 chore 자잘한 수정이나 빌드 업데..
모니터링 시스템 구축을 위한 리서치 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 =..
숫자 범위 표현의 에러 기존에 이런 식으로 코드를 작성했었는데, 예외처리가 잘 되지 않았었다. 기존 코드 if (!keyword) { throw new NotFoundException('검색 결과가 없습니다'); } const tokenId = Number(keyword); if (!isNaN(tokenId)) { if (1
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..