NestJS
-
Jest private method mockingNode 2024. 12. 11. 21:38
Object.getPrototypeOf()Object.getPrototypeOf() 를 사용하면 인스턴스의 원형에 접근할 수 있어 private 메서드도 mocking 할 수 있다.class MyClass { private myPrivateMethod(): string { return 'Original Private Method'; } public callPrivateMethod(): string { return this.myPrivateMethod(); }}describe('MyClass', () => { it('should mock private method using `Object.getPrototypeOf`', () => { const myInstance = new MyC..
-
gRPCBackend 2024. 12. 9. 22:54
gRPC 는 Google 에서 개발한 오픈 소스 원격 프로시저 호출(Remote Procedure Call) 프레임워크로, 기존의 RPC 시스템을 현대화하여 다양한 환경에서 효율적인 통신을 지원한다. gRPC는 HTTP/2 를 기반으로 하며, 프로토콜 버퍼(Protocol Buffers) 를 사용하여 데이터를 직렬화한다. 전통적인 RPC 시스템과 gRPC 의 차이데이터 직렬화 방식RPC: 일반적으로 XML이나 JSON 같은 텍스트 기반의 직렬화 형식을 사용한다.gRPC: 프로토콜 버퍼라는 이진 직렬화 형식을 사용하여 데이터의 크기를 줄이고, 직렬화 및 역직렬화 속도를 향상시킨다.전송 프로토콜RPC: 주로 HTTP/1.1 을 사용하며, 요청-응답 방식으로 통신한다.gRPC: HTTP/2 를 기반으로 하여 ..
-
Nestjs Lifecycle 과 Event hooksNode 2024. 11. 19. 22:52
1. 라이프사이클NestJS는 애플리케이션 시작과 종료 시 다양한 이벤트를 발생시킨다. 이를 통해 초기화 작업, 리소스 설정, 클린업(종료 작업) 등을 수행할 수 있다.전체 수명 주기를 초기화, 실행 및 종료의 세 단계로 나눌 수 있다.2. 라이프사이클 이벤트NestJS 의 Lifecycle Events 는 애플리케이션 또는 특정 구성 요소(module, provider, controller)의 수명 주기 동안 특정 시점에 실행되는 메서드이다. 명시적으로 각 훅의 인터페이스를 implements 해야 훅이 정상적으로 트리거된다. 2.1. 애플리케이션 초기화 관련 이벤트이벤트대상설명OnModuleInit모듈, 프로바이더모듈이나 프로바이더가 생성되고 의존성이 주입된 후 호출된다.OnApplicationBo..
-
낙관적 락(Optimistic Lock)과 비관적 락(Pessimistic Lock)DB 2024. 11. 14. 20:51
1. 낙관적 락(OPtimistic Lock)낙관적 락은 충돌이 잘 발생하지 않는다고 가정하고 자원을 제어하는 방식이다. 자원을 사용하는 동안 락을 거는 대신, 작업을 끝내기 직전에 충돌이 발생했는지 검사한다. 낙관적 락은 다음과 같은 과정으로 동작한다.자원을 사용할 때 락을 걸지 않고, 다른 프로세스도 동시에 접근할 수 있도록 허용한다.자원 사용이 완료되면, 그 동안 자원이 변경되지 않았는지 확인한다.만약 다른 프로세스가 자원을 변경한 것이 확인되면, 작업을 취소하고 다시 시도한다.이 방식은 자원을 사용하는 동안 락이 걸리지 않기 때문에 성능이 높으며, 충돌이 거의 발생하지 않는 환경에서 효과적이다. 하지만 충돌이 빈번하다면 작업을 반복해야 할 수 있어 비효율적이다. 2. 비관적 락 (Pessimist..