Javascript | Typescript/Node.js 4

typeORM에서 timezone 올바르게 적용하기

글로벌 서비스를 대비하여, typeORM 사용시 DB 타임존을 어떻게 적용할지 정리하였습니다. typeORM 사용시 다음 절차를 통해, 타임존을 올바르게 설정해 사용할 수 있습니다. DB 타임존 확인하기 typeORM의 타임존 설정 설정된 타임존 확인하기 DB 타임존 확인하기 DB의 타임존은 다음 쿼리로 확인할 수 있습니다. 현재 저는 AWS RDS mySQL을 사용하고 있어서, 파라미터 그룹 변경을 통해 타임존을 설정할 수 있어요. 참고자료: https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-change-time-zone/ select NOW(),@@global.time_zone, @@session.time_zone; 그럼 아래와 같이 결과가..

[Node.js] Nodemon에서 tsc-watch 로 변경하여 빌드속도 개선하기

이번 포스팅에서는 nodemon을 사용 중이던 서버 환경의 트랜스파일 속도를 개선하여, 개발 생산성을 높인 경험을 공유합니다. 이슈 기존 서버 프로젝트에서 개발용으로 nodemon 을 사용하고 있었다. nodemon은, node.js 라이브러리인데, 서버 소스코드가 바뀌면 자동으로 서버를 재시작해준다. 때문에 소스코드 변경 후에 실행중인 서버를 종료하지 않아도 서버를 다시 시작하여 편리하다. 다만, nodemon은 치명적인 단점이 있는데, 다시 시작할 때마다 전체 소스코드를 트랜스파일 하기에 10초~20초 정도의 트랜스파일을 기다려야 한다. 간단한 로그 코드 한 줄을 추가해도 10초 이상 기다려야하니 답답할 노릇이었다. 해결 nodemon watch, nodemon incremental 등의 키워드로 검..

TypeORM 간단 사용법

평소 백엔드 개발할 때 자체적으로 개발한 쿼리빌더와 raw Query를 활용해 모델을 개발해왔다. 그러나, 쿼리를 직접 자주 짜야하며, 쿼리용 모듈을 코딩하는 번거로움이 있어서 ORM을 사용하면 코드치는 양을 줄임으로써 이러한 불편함을 극복할 수 있지 않을까 생각했다. 간단한 쿼리들은 ORM으로 빠르게 작업하고, ORM으로 커버되지 않는 복잡한 쿼리에 대해서만 raw Query로 대응하는 것이다. ORM 도입을 검토하고자 typescript + node.js의 대표적인 ORM인 typeORM과 Sequelize를 간단하게 사용해보며 비교해보기로 했다. 이번 포스팅에서는 그중 typeORM에 대해서 다루어보았다. TypeORM typeORM은 typescript, javascript 환경에서 사용하는 OR..

AJV(another json validatiror)를 사용하여 JSON 스키마 검증하기(json schema validation)

이전에 스키마에 대해서 다룬 적이 있다. (https://gkqlgkql.tistory.com/83) 스키마는 데이터의 형식을 정의한다. 예를 들어, JSON 스키마는 JSON 의 구조를 정하고, RDBMS의 스키마는 테이블 구조를 정의하는 식이다. 현재 주로 개발하고 있는 node.js REST API 서버에서는 일반적으로 JSON 으로 구성된 리퀘스트를 받게 된다. 이 때 클라이언트에서 보낸 리퀘스트 JSON 형식이 적절한지를 검증하는 과정이 필요한데, 이를 JSON schema validation(JSON 스키마 유효성 검증) 이라고 한다. 이번 포스팅에서는 JSON-schema-validation 라이브러리인 AJV(Another Json Validator)를 사용하는 방법에 대해서 다루어 본다...