본문 바로가기

ETC28

Sync & Async / Blocking & Non-Blocking (2019-10-06에 작성된 글입니다.) 나는 원래 Java를 사용하여 개발을 했는데, 이제는 Node.js 기반으로 개발을 하는 입장으로서 Non-Blocking에 대한 개념이 중요하게 됐고, 이에 더해서 Sync와 Blocking에 대한 차이도 이해하는 것이 필요하다고 느꼈는데, 최근 Slipp에서 주최한 세미나에서 자바지기님의 발표를 통해서 이러한 점이 명쾌하게 이해가 되었다. 이번 글은 그 기반으로 Sync & Async / Blocking & Non-Blocking 에 대해서 알아보고 정리한 것이다. Sync & Async / Blocking & Non-Blocking Sync와 Blocking, Async와 Non-Blocking 서로 비슷한 개념이라고 생각할 수 있다. 나 역시 이 점에 대.. 2021. 1. 2.
logrotate 사용법 (2018-11-18에 작성된 글입니다.) logrotate를 사용하여 로그를 관리할 수 있다. 로그 파일에 대해 아무 설정을 하지 않으면 시간이 지나 로그가 쌓이면서 용량이 계속 커지게 될 것이고 로그를 보는 것도 편하지 않을 것이다. 그럴때는 리눅스에서 제공하는 logrotate 기능을 사용하면 큰 어려움 없이 로그를 관리할 수 있다. 예제 $ vi /etc/logrotate.d/[rotate_name] /path/to/log/somelog.out { copytruncate daily rotate 30 missingok notifempty dateext } # log 실행 [루트 권한] logrotate -f /etc/logrotate.d/[rotate_name] 옵션 설명 Option Descrip.. 2021. 1. 2.
Github - Slack 연동 (w/ user mentioning) 업무 효율화를 위해 Slack 알림을 적극적으로 활용할 수 있다. 코드 리뷰가 활발한 개발 조직이라면 PR이나 review comment를 남길 때 Slack 알림을 활용하면 PR을 남겼다고 굳이 얘기를 하지 않아도 알 수 있고, 내 PR에 리뷰가 달렸는지 매번 PR을 확인하지 않아도 된다. (특히 remote 환경에서 매우 편리하다) 이번 포스팅에서는 Github - Slack 연동을 하기 위해 어떻게 구성을 했고 어떤 식으로 동작하는지에 대해 정리해보도록 하겠다. 사실 이미 Github Slack integration이 존재한다. 연동도 매우 간편하고 CLI와 비슷하게 channel에서 command를 통해 설정도 할 수 있다. 하지만 딱 하나 아쉬운 점은 Slack mentioning이 안된다는 것.. 2020. 12. 31.
validation => insert V.S. insert => catch (2020-01-19에 작성된 글입니다.) 최근 다른 팀원이 기능을 구현한 코드를 보면서 기존에 내가 하던 방식과 차이가 있어, 팀원들과 이에 대해 같이 얘기를 나누면서 알아본 것들과 나의 생각을 정리해본다. 상황 다음과 같은 사용자 Entity가 있고 사용자의 화면에 보이는 이름(displayName)과 계좌(account)는 다른 사용자와 중복되지 않는 unique한 값이어야한다 라는 도메인 규칙이 있다고 하자. 그러면 TypeORM을 사용할 경우 아래와 같이 User Entity를 만들 수 있을 것이다. @Entity() export class User extends BaseEntity { @PrimaryGeneratedColumn() private id: number; @Column({ uniqu.. 2020. 12. 28.