Skip to main content

Command Palette

Search for a command to run...

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

Published
1 min read

이번 포스팅에서는 nodemon을 사용 중이던 서버 환경의 트랜스파일 속도를 개선하여, 개발 생산성을 높인 경험을 공유합니다.

이슈

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

해결

nodemon watch, nodemon incremental 등의 키워드로 검색을 시도했고, 나와 비슷한 사례가 스택오버플로우에 있었다.(참고자료) tsc-watch 라는 노드 모듈을 활용하면, 트랜스파일을 변경된 파일에 대해서만 진행 후 서버를 바로 재시작할 수 있다.

"scripts": {
  "start": "./node_modules/.bin/tsc-watch --onSuccess \"node .\""
}

리뷰

해결 방법 자체는 간단했다. tsc watch로 전환하되, nodemon처럼 소스 변경이 일어났을 때 재시작하도록 해주면 되는 것. 내 생각을 날카로운 영어 키워드로 바꿔내는 것이 주요했다. watch, incremental 등

의의

console.log 하나 넣고 10초 이상 기다리는 고통에서 해방되어 너무 기쁘다...!! 개발팀의 생산성과 행복 향상에 기여하였다. 참고자료 https://stackoverflow.com/questions/38276862/is-there-a-way-to-use-npm-scripts-to-run-tsc-watch-nodemon-watch

More from this blog

"고객 인터뷰는 해봤어?" — RAG 프로젝트 회고

AI가 나에게 물었다. "고객 인터뷰는 해봤어?" 이 질문 하나로 개발 프로세스가 바뀌었다. 프로젝트 개요 이 프로젝트는 상담 추천 시스템(콘텐츠 기반 필터링)을 만들기 위해 벡터 DB를 설계하고 POC를 해보는 과정에서 파생됐다. 2026년 3월부터 1주 단위 스프린트 4번으로 4주 동안 기획·디자인·FE·BE·AI 개발을 1인으로 진행했다. 원래는 유사한 상담을 벡터 검색으로 추천해주는 모듈을 개발 중이었다. 여기서 아이디어를 확장하여 새로...

Apr 21, 20263 min read17

『인스파이어드』를 읽고 — 엔지니어의 시선으로

책에 대하여 『인스파이어드』는 IT 제품(앱, 웹, 일반 프로그램 등)을 어떻게 하면 더 잘 만들 수 있을지 가이드를 주는 책이다. 특히 IT 제품팀과 제품 관리자의 관점에서 중요한 내용이 많이 수록되어 있다. 나는 엔지니어로서 더 나은 제품팀을 만드는 데 어떻게 기여할 수 있을지, 그리고 엔지니어링 기술력을 어떻게 효율적으로 활용할 수 있을지에 대한 관점으로 읽어나갔다. 엔지니어의 역할에 주목하며 대부분의 내용은 제품팀과 제품 관리자, 그리고...

Jul 30, 20242 min read10

API 응답 속도가 얼마나 빨라야될까? (페이지 로딩시간, API TPS, latency)

안녕하세요. 팀에서 최근 들어 API 최적화에 대한 논의가 이루어지면서, API의 응답 속도에 대한 기준과 논리가 필요하여 몇 가지 찾아 정리해보았습니다. ## 왜 API 응답 속도가 빨라야 할까요? 사용자가 서비스를 기다리는 페이지 로드 시간이 곧 비용이기 때문입니다. 긴 페이지 로딩 시간은 서비스 트래픽과 전환율에 악영향을 줍니다. (자료가 과장됐거나 정확하지 않을 수는 있겠지만, 일관된 언급이 신뢰성을 준다고 생각합니다.) 기존에 페이지...

Jan 5, 20231 min read8

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

글로벌 서비스를 대비하여, typeORM 사용시 DB 타임존을 어떻게 적용할지 정리하였습니다. typeORM 사용시 다음 절차를 통해, 타임존을 올바르게 설정해 사용할 수 있습니다. DB 타임존 확인하기 typeORM의 타임존 설정 설정된 타임존 확인하기 DB 타임존 확인하기 DB의 타임존은 다음 쿼리로 확인할 수 있습니다. 현재 저는 AWS RDS mySQL을 사용하고 있어서, 파라미터 그룹 변경을 통해 타임존을 설정할 수 있어요. 참고자...

Dec 29, 20221 min read

4년차 초보 개발자의 성장 방법

개발자로써 밥을 먹은 지 4년차가 되었다. 일하면서 배울수록 모르는 것, 배울 것이 많이 보이고, 업무 범위와 책임이 커졌다. 특히 팀장으로써의 직무를 수행하면서 나, 개인에 대한 성장 뿐만아니라 팀의 성장, 회사의 성장을 고민하게 되었다. 동료 개발자들과 일하면서 “4년 동안 어떻게 실력을 키울 수 있었느냐”에 대한 질문을 많이 받았다. 이에 대해서 명확하게 말로 설명할 수 없었던, 정리되지 않은 것들이 있었고, 지금까지 개발하면서 성장하는데...

Sep 7, 20223 min read2
D

dev-marco-song

42 posts

Hi there 👋 백엔드 개발자 마르코입니다.

A natural-born problem solver. I can do this all day :)