즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

Node.js 5

try~catch문에서 error타입에 따라 처리하는 함수

Typescript에서 Try~catch문 중 error를 처리하려고 할 때 타입이 뭔지 궁금했다. any나 uknown으로 처리를 해야 한단다. 이런 ~ 썩을... export function ParseError(error: unknown): string { if (error instanceof TypeError) { return 'Type error occurred:' + error.message; } else if (error instanceof Error) { return 'General error:' + error.message; } else { return 'An unexpected error occurred:' + error; } } 타입을 체크해서 알고 있는 타입이면 처리하는 방식으로 만든..

개발/Node.js 2024.04.23

C#과 Node.js(TS)에서 각각 Sha256 Hash 같은 값 나오게 하기

라이브러리를 사용해서 해시값을 구하면 각각 다른 값이 나오거나 해서 쌩짜로 만들었다. (보고 베꼈다.) 원래 출처에서는 Timestamp를 넣어서 해시값을 구하는데 이렇게 되면 로직이 복잡해져서 그냥 빼버렸다. 상황에 따라서 넣어서 사용하자. 대신 Keystring을 랜덤화해서 사용해도 될 것 같다. C# 소스 public static string GenerateHMAC(string payload, string key = "keystring") { // 키 생성 var hmac_key = Encoding.UTF8.GetBytes(key); // Timestamp 생성 //var timespan = (timestamp - new DateTime(1970, 1, 1, 0, 0, 0)); //var hmac_..

개발/C# 2024.02.15

Typescript 현재 접속한 사용자의 아이피 가져오기

https://geolocation-db.com/json/ 사이트 정보를 이용하는 방법을 사용합니다. 이 방법은 인터넷 외부 아이피를 가져오기 때문에 내부 아이피는 가져올 수는 없습니다. 외부 아이피를 통해 접속한 사용자들은 모두 같은 아이피로 처리되요. const result = axios.get('https://geolocation-db.com/json/').then(async (res) => { console.log("Country_code = " + res.data.country_code); console.log("Country_Name = " + res.data.country_name); console.log("State = " + res.data.state) console.log("City =..

개발/Node.js 2023.08.19

Nest.js+Next.js를 이용한 기반 프로젝트 만들기 #3

업데이트일자: 2023.04.05 개발스택 및 종속버전 더보기 참고했던 글들이 100% 완벽하게 되지 않아서 3~4일 헤메다 얼추 기반 프로젝트에 준하는 결과물을 만들 수 있을 것 같아 작성해봅니다. 아마 몇 주, 몇 달 후에 이 글을 따라 하시는 분들도 저와 같이 100% 성공하지는 못할 수도 있습니다. 자바스크립트 진영은 매일/매시간 패키지들이 업데이트 되는 터라 서로 버전이 맞지 않아 발생될 수도 있는 일이니 그 부분 염두에 두고 이 글을 봐주셨으면 감사하겠습니다. 개발 스택 Language Typescript Backend Framework Nest.js Frontend Framework Next.js (for React.js) Database Sqlite Database ORM Prisma UI..

개발/Node.js 2023.04.05

[2021.03] Winston패키지를 이용한 Logger 클래스

Winston을 이용한 Logger 패키지이다. 사용법은 다음과 같다. const logger = require('./src/helper/logger').logger; logger.info('===================================') logger.info('Program Started!!'); logger.info('-----------------------------------') 사용 패키지 path fs winston-daily-rotate-file winston moment-timezone 환경설정 "Logger": { "TimeZone": "Asia/Seoul", "logPath": "logs", "logFile": "logfilename", "loglevel": "de..

개발/Node.js 2021.03.26
1