본문 바로가기
반응형

전체글582

TypeORM에서 Camelcase 필드를 Snake 컬럼에 매핑하기 일반적으로 PostgreSQL을 비롯한 Database의 컬럼 명명 (Naming) 규칙은 snake, 애플리케이션 코드의 필드 명명 규칙은 Camelcase 입니다. Entity Table 둘 간에 명명 규칙이 달라 일반적인 ORM 들 (JPA등) 에서는 이들간의 불일치 해소를 위한 명명 전략 (Naming Strategy)를 지원하는데요. TypeORM에서는 이 기능이 공식적인 지원이 없어서, 별도의 패키지를 사용해야만 합니다. 해결책 npm 패키지 중 typeorm-naming-strategies 를 사용하면 이 문제를 아주 쉽게 해결할 수 있습니다. 먼저 아래와 같이 프로젝트 패키지에 포함시키시고, npm install typeorm-naming-strategies --save TypeORM 전역.. 2021. 4. 27.
PostgreSQL 데이터 Client에서 KST로 확인하기 (feat. DataGrip) PostgreSQL에서는 보편적으로 UTC로 시간 데이터를 저장후, 애플리케이션 / Gui Client에서의 타임존에 맞춰 노출시키는 방식을 선택하는데요. 해당 컬럼의 타입이 timestamp with time zone 로 되어있어야만 합니다. Client Timezone에 따라 자동 전환이 되다보니 서버 애플리케이션에서 접속 하게 되면 UTC가 KST로 잘 전환이되어 노출 되는데요. 반면에 DB Gui Client로 접근할 경우 Client Timezone을 기본값으로 세팅하면 KST 전환이 안되는데요. 그래서 JetBrains사의 데이터 전문 도구인 DataGrip 혹은 IntelliJ의 Database Client에서 Client Timezone을 설정하는 방법을 소개드립니다. as-is 먼저 현재.. 2021. 4. 24.
Mac OS 업데이트 후, NPM install시 gyp 오류날 경우 Mac OS를 업데이트 이후 (BigSur) 로 npm install이 정상적으로 작동안될 수가 있습니다. 보통 아래와 같은 에러 메세지가 발생할때인데요. gyp: No Xcode or CLT version detected! gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1 이럴 경우 node-gyp를 글로벌/로컬을 다 지우고 다시 설치하는 방법도 있겠지만, X-code를 재설치하는 것이 가장 편하고 빠르게 되는 방법이라 추천드립니다. 간단하게 아래 2개 커맨드를 차례로 실행시키시면 됩니다. sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install.. 2021. 4. 23.
MySQL IN절을 통한 성능 개선 방법 잘 사용되진 않는 범위 조건 중에 IN 이 있습니다. 일반적으로 BETWEEN, LIKE, 에 비해서는 하나씩 모든 Key를 입력해야 되기 때문에 애플리케이션에서 작업양이 추가되어 선호되진 않는데요. 이 IN 절을 통해 여러 성능 개선들이 가능해서 생각보다 활용하기에 따라 많은 성능 개선을 이룰 수 있습니다. 이번 시간에는 IN 을 통한 2가지 개선 방법을 소개 드리겠습니다. 0. 소개 MySQL의 IN 절은 UNION으로 처리됩니다. 즉, eq 조건을 여러번 나눠서 실행하는 것과 같은 효과를 가지는데요. 이미 다들 아시겠지만 MySQL은 범위 조건에서는 인덱스 효과를 제대로 보지 못합니다. MySQL 인덱스 정리 및 팁 정확히는 인덱스 앞의 컬럼을 범위 조건으로 사용하는 경우 뒤의 인덱스 컬럼은 효과를.. 2021. 4. 22.
2. 우아한형제들 부검 - 어디로 가는지 이전 글에서 이어집니다. 이 글은 사내 블로그에는 기재되지 않았습니다. 4. 앞으로의 계획 여기까지 읽으신 분들이라면 "그래서 도대체 어딜가는데?" 라고 궁금해하실텐데요. 일단 서두에서 말씀드린 것처럼 2가지 조건의 교집합인 회사인데요. Seed 단계의 작은 스타트업 제가 좋아하는 비지니스모델 여기서 제가 좋아하는 비지니스 모델에 대해서 조금 설명이 필요합니다. 저는 2016년부터 개발자의 커리어/교육/채용에 대해서 굉장히 관심이 많았는데요. 그래서 사이드 프로젝트로 이와 관련된 여러가지들을 진행해왔습니다. 주니어 개발자 채용 정보 초보 개발자 모임 개인블로그의 생각정리 이외에도 다양한 사이드 프로젝트를 실패했고, 일부는 반응이 너무 낮아서 포기하기도 했습니다. 그럼에도 이 비지니스 모델에 대해서는 항상.. 2021. 4. 19.
특정 포트 Process 종료하기 간혹 IntelliJ를 사용하다가 JVM 프로세스를 종료하였음에도, 포트가 그대로 잡혀있는 경우가 종종 있는데요. IntelliJ까지 종료하여도 해당 포트가 계속 잡혀 있어서 프로젝트를 재실행이 안되는 경우가 있습니다. *************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another p.. 2021. 4. 18.

728x90
반응형