IT 이야기 50

Mermaid를 사용해서 ERD 작성하기

최근에 ERD를 작성할 일이 생겼는데, ERD 툴을 새로 사용하자니 매우 귀찮은 생각이 들었다. Markdown처럼 ERD도 코드 형식으로 사용할 수 있게 하면 좋겠다는 생각이 들어서 여기저기 찾아보다가, mermaid라는 좋은 오픈소스 프로그램을 발견했다. 문법도 비교적 쉬운 편에 속해서 빨리 익힐 수 있었다. 공식 홈페이지는 다음 주소에 있다. https://mermaid.js.org/ 빠른 사용법 공식 홈페이지를 보면 텍스트와 코드를 사용해서 시각화를 빠르게 할 수 있는 툴 이라고 광고한다. 기본적인 문법은 Markdown을 많이 참고했고, 기본 목표는 ERD가 아닌 다이어그램을 표시하는 것이 원래 목적이다. 여기서 응용하여 마인드맵, 타임라인, ERD, 파이 차트 등의 다양한 작업에 활용할 수 있..

IT 이야기 2023.04.24

오픈소스에 대한 고찰

지금 다니는 회사에서 Typeorm에 관해서 대화를 나눈 적이 있었다. 다들 자기 의견에 대해서 말을 하는데, typeorm의 최초 개발자가 typeorm을 주도적으로 개발하지 않아 곧 deprecated 된다는 얘기를 들었다. 사실 nodejs 서버 진영에서는 (적어도 한국에서는) ORM 프로그램 중에서 가장 많이 쓰이는 것이 typeorm이라고 알고 있었다. 하지만 지속적인 지원이 없는 프로그램을 가장 많이 쓴다는 것이 둘 다 모순이 된다고 생각했다. 그래서 이것에 대해서 궁금증이 생겨서 나름 내용을 찾아봤다. 일단 typeorm이 많이 쓰이는 이유를 찾아보니 오래되기도 했고 typescript 지원에다가 다른 orm에서 주로 쓰는 패턴과 비슷해서 적응이 빠른것이 장점인 것 같았다. 하지만 typeo..

IT 이야기 2023.02.21

local에서 https로 개발하기

개요 로컬에서 개발할때는 주소가 localhost:xxxx 형식으로 주어진다. 하지만 해당 주소는 SSL인증서가 없기에 기본적으로 http 프로토콜로 통신을 하게 된다. 이렇게 개발을 하게 되면 HTTPS, SSL, TLS, cookie 등의 기술을 테스트하기에 어려움이 있었다. 그래서 로컬에서 HTTPS 개발을 할 수 있게 하는 도구들을 찾아보던 중, 좋은 도구를 발견했다. MKCert 일단 HTTPS를 사용하기 위해서는 인증 기관에서 인증된 TLS 인증서가 필요하다. 여기서 서명된 인증서를 생성하고, 애플리케이션에 적용시켜 실행을 하면 HTTPS로 실행이 된다. 해당 인증서는 mkcert를 사용해서 만들 것이다. https://github.com/FiloSottile/mkcert GitHub - Fi..

IT 이야기 2023.02.10

ts-jest 설치 안되는 에러 해결

개요 오늘 ts-jest 라이브러리를 새로 받고 있던 도중, 진행이 안되는 것을 확인. 여기저기 검색해도 답이 잘 보이지 않았다. 하지만 여러가지 상태를 종합해본 결과, kt 통신망을 사용할 때 ts-jest가 다운로드가 안 되는 것을 발견. 아래는 해당 버그와 관련된 이슈이다. 현재 2023년 2월 1일 기준으로도 다운로드가 안된다. https://github.com/kulshekhar/ts-jest/issues/3992 [Bug]: npm install hang · Issue #3992 · kulshekhar/ts-jest Version 27.1.4 Steps to reproduce init new project cd ~ mkdir ts-jest-hang-test cd ts-jest-hang-test..

IT 이야기 2023.02.01

로컬 환경에서 외부 요청 받기

요즘 서버리스 프레임워크로 간단한 웹서버를 만들고 있다. 슬랙과 연동해야 하는 작업이 있는데, 슬랙에서 사용자의 요청을 웹 서버에서 인식하기 위해서는 외부로 노출된 주소와 포트가 필요하다. 그래야 연동을 할 수 있다. 서버는 있는데 외부로 노출을 시키지 못하면, 아무것도 할 수가 없기 때문이다. 로컬에서 외부로 주소를 내보낼 때는 포트포워딩을 통해서 보내야 하지만, 개인 공유기가 아닌 곳에서는 포트포워딩을 하기가 거의 불가능하다. 그래서 디버깅 하기 매우 힘든데, 로컬 환경을 외부로 노출 시켜주는 매우 좋은 툴이 있었다. 이걸 왜 지금 알았을까;; ngrok 사용하기 일단 이 프로그램을 사용하면 로컬의 특정 포트를 외부로 노출할 수 있다. https://ngrok.com/ ngrok - Online in..

IT 이야기 2022.10.20

심심해서 그냥 끄적이는 나의 개발환경

나는 주로 NodeJS 기반의 서버를 개발하는 사람이다. qt, flask, serverless 등의 프레임워크를 사용했지만, 지금 주로 사용하는 것은 NestJS다. 이에 맞게 나의 개발환경은 주로 Typescript를 사용하는 것에 초점이 맞춰져 있다. 여기에 하드웨어는 맥북을 사용하고 있다. 역시 개발은 맥북으로 해야 퍼포먼스가 나는 것 같다. 사실 스타벅스 출입증이 생겨서 카페갈 때 자신감이 생긴다. 여튼 영세한 일반 개발자인 나는, 개발환경 이라도 잘 구축해야 그나마 생산성이 난다고 생각해서 이것저것 주워들은걸로 개발환경을 좀 꾸며놨다. 그래서 그런지 나한테는 그럭저럭 개발할 만한 환경이 되어 있다. MAC 환경 맥북을 개발도구로 쓴다는 것은 좋은 선택임과 동시에, 한글 작업에 강제 억제기를 다..

IT 이야기 2022.10.06

윈도우 컴퓨터 원격 제어 환경 조성하기

현재 나는 M1 맥북을 주로 사용하고 있다. 밖에 나갈때는 작업용으로 항상 맥북을 들고 다닌다. 작업을 할 때 종종 윈도우가 필요한 작업이 있을 때가 있다. (주로 한글...) 인텔 맥북 같으면 부트캠프를 통해서 윈도우를 깔고 다니겠지만, M1은 그런거 없다! 그래서 이를 해결하기 위해서 어디서든 원격으로 윈도우 환경에서 작업하기 위한 설정을 해 보겠다. 플로우 원격 부팅 -> 원격 접속의 순서대로 진행하면 윈도우 컴퓨터에 접속하게 할 것이다. 준비물 WOL 지원 공유기, WOL 지원 데스크톱 메인보드가 필요하다. 원격 부팅 (WOL) 설정 하기 먼저 WOL을 설정해야 한다. Wake ON Lan의 줄임말로서, PC에 전원 신호를 LAN을 통해서 줄 수 있게 한다. 컴퓨터 전원을 킬 때는 특정 부분을 쇼..

IT 이야기 2022.03.23

맥북 Monterey 업데이트 후 nodejs gyp error 해결하기

이번에 M1 맥북을 Monterey로 업데이트 했다. 신기한 기능들이 많이 추가되었다. 특히 Airplay 지원과 메모 태그 지원 등 신기한 기능들이 많이 생겼다. 하지만 개발자 입장에서는 외관만 좋아지고, 사소한 에러가 많이 생겼다. 특히 typescript로 개발중인 나에게는 별별 오류들이 많이 생겼다. 특히 인텔 16인치 맥북프로를 사용할 때 카탈리나에서 빅서로 넘어갈 때는 지옥이 따로 없었다... 여튼 이런 기억들이 생각이 난다. 나의 증상은 이렇다. 평소같이 nest 어플리케이션을 실행하기 위해 npm ci 명령어로 패키지 설치 중, 다음과 같은 오류가 떴다. 참고로 npm ci 명령어는 npm install과 같은 명령어인데, 인덱싱 방법에 차이가 있어 후자보다 2배정도 빠른 속도를 낸다. ...

IT 이야기 2021.10.30