전체 글(60)
-
Nest.js 탐험기 - logging을 winston과 함께 사용해보자.
개요 이번 시간에는 logging을 적용해보려고 한다. winston을 사용해보려고 한다. Setup 우선 logging을 적용하기 위해 다음과 같이 설치해준다. yarn add winston winston-daily-rotate-file; winston Node 진영의 대표적인 로깅 라이브러리이다. 다양한 transport layer를 사용할 수 있고, 또한 custom하게 implementation이 가능하다. winston-daily-rotate-file의 경우에는 logrotate를 설정하기 위해서 사용했다. 코드를 작성해보자! 1. configuration 등록 우선적으로 winston을 먼저 셋팅해두자. import * as winston from 'winston'; import..
2021.02.12 -
MySQL에서 접속 중인 session 정보를 확인해보자
개요 MySQL에서 접속 중인 session 정보들을 확인해보자. Connection monitoring MySQL에서는 현재 잡혀있는 session에 대한 모니터링 테이블이 존재한다. 문제가 되는 session들을 찾아내거나 kill할 필요가 있을 때, 참조하면 좋다. SHOW PROCESSLIST; 현재 실행 중인 process list들을 확인할 수 있다. show full processlists; show processlist; 확인할 수 있는 field들은 아래와 같다. id: session id user: 접속한 계정의 id host: host + port db: 접속한 db command: thread가 현재 실행 중인 명령, Sleep의 경우는 idle 상태를 의미하며, 자세한 내용은 Th..
2021.02.07 -
Javascript arrow function vs function
개요 method decorator를 작성하면서 arrow function에 대해서 파악할 일이 생겼다. 해당 부분을 찾아보면서 정리해보자. 몇가지 사전지식을 위해서 앞에 this, bind(), call(), apply()에 대해서 따로 설명하고 있다. this란? 해당 부분은 execution context를 이해해야 하는데, 그 부분은 해당 Blog 글에 설명된 내용을 참고하면 좋을 것 같다. bind(), call(), apply() javascript에서 몇 가지 글들을 찾아보면 bind(), call(), apply()를 많이 찾아보게 될 것이다. 해당 부분을 설명하는 이유는 arrow function의 몇 가지 특성과 연관이 되기 때문에 따로 설명한다. bind() bind의 경우에는 thi..
2021.01.27 -
Ch3. Inter-Process communication
IPC Methods Rest gRPC AMQP, STOMP formating avro protocol buffer 방식 일대일 vs 일대다 동기 vs 비동기 sync/async task 협동자 sync 요청/응답 - async 비동기 요청/응답, 단방향 알림 pub/sub, pub/비동기 응답 ( callback ) API 정의 IDL(Interface Definition Language) 정의 시멘틱 버저닝 ${MAJOR}.${MINOR}.${PATCH} 와 같은 상태로 버저닝 MAJOR : 하위 호환성이 보장되지 않음 MINOR : 하위 호환성이 보장됨 PATCH : 버그 수정 표기는 path에다가도 할 수 있고, 또는 content negotiation에 끼워 넣을 수도 있습니다. Accept: ..
2021.01.22 -
Ch2. Decomposition strategy
4 + 1 view model 어플리케이션을 바라보는 여러가지 관점을 정의한 내용입니다. 각 뷰는 아래와 같습니다. Logical view: 상속, 연관, 의존 등 클래스와 패키지 사이의 관계를 말합니다. Implementation view: 빌드 시스템의 결과물, 코드, 컴포넌트 및 이 컴포넌트 모듈 간의 조합 관계를 의미합ㄴ디ㅏ. Process view : 런타임 컴포넌트, 즉, 개별 프로세스와 IPC를 통해 프로세스간 관계를 나타냅니다. Deployment view: 프로세스가 머신에 매핑되는 방법을 보여줍니다. 머신 및 프로세스 간의 관계를 네트워킹으로 표현 합니다. 시나리오 (+1) : 특정 뷰 내에서 아키텍쳐 요소가 협동하여 요청을 처리하는지 보여줍니다. 어플리케이션의 요건 기능 요건: 기능적..
2021.01.22 -
Ch1. Monolithic vs Micro service
Overview Definition 딱 맞는 정의라고 보기는 어렵지만 일반적으로 통용되는 내용으로 작성하여 보면 Monolithic은 단일 어플리케이션에서 다양한 서비스를 제공하는 구조이고, Micro Service는 service 또는 도메인 중심으로 어플리케이션을 나눈 구조라고 볼 수 있습니다. Micro service architecture의 대두 기존의 소규모 프로젝트에서는 Monolithic 구조로 진행을 하여도, 큰 문제는 없습니다. 하지만 점차 프로젝트 규모가 커지고, 이에 따른 요구사항이 커져감에 따라서 Monolithic 구조는 개발자에게 많은 피로감을 선사합니다. 크게 다음과 같은 문제점들이 있습니다. 개발이 더디다 : IDE를 통한 빌드 시간, 코드를 고치고 실행에 걸리는 시간이 증가..
2021.01.22