
DI를 활용하여 test code를 작성하는 방법에 대하여 알아보자. DI + test code class Robot { private helloService; constructor() { this.helloService = new HelloService(); } public start() { return this.helloService.hello(); } } 위와 같이 Robot class 안에 HelloService를 new하면 Robot은 HelloService에 종속하게 된다. Robot class의 test code를 작성하기 위해서는 HelloService의 hello mothod의 호출을 생각해야한다. 이러한 종속성을 제거하기 위해 inversify와 같은 DI container를 사용하여 ..
inversify를 사용하면서 자주 사용하는 factory 패턴에 대하여 정리한다. inversify에서 factory 패턴은 클래스의 인스턴스를 만드는 것을 서브클래스에서 결정하도록 한다는 것입니다. factory 패턴을 찾아보면 서브클래스 안에서 객체를 생성하는 방식을 많이 찾을 수 있다. inversify를 사용하면 서브클래스에서는 객체를 선택만하고 객체 생성은 외부에서 생성하여 서브클래스에 주입하는 방식으로 구현하게 된다. inversify에서 factory 패턴을 구현할 때 named binding을 많이 사용하게 된다. Named binding은 같은 identifier에서 다른 객체를 가지고 올때 사용한다. inversify에서 named binding은 아래와 같이 구성한다. https:/..

IoC란 객체를 생성하고 객체 간의 의존 관계를 프레임워크가 대신 해주는 것을 의미한다. 개발자가 직접 객체를 생성하지 않고 의존 관계를 관리할 수 있게 된다. 객체를 제어하고 관리하는 역할이 개발자로 부터 프레임워크에게 역전 된다. DI(Dependency Injection)는 객체간의 의존성을 자신이 아닌 외부에서 주입하는 개념이다객체 자체가 아니라 Framework에 의해 객체의 의존성이 주입되는 설계 패턴이다. Framwork에 의해 주입되므로 여러 객체 간의 결합이 줄어들고 재사용성이 증가한다. inversify는 IoC(Inversion of Control) 컨테이너이다. DI를 구현하기 위해 javascript에서 많이 사용되는 것은 inversify와 typedi 등이 있다. DI를 구현하..
- Total
- Today
- Yesterday
- Cloudfront
- nginx
- commit message
- sementic version
- conventional commit
- NLP
- Prisma
- Python
- graphql
- typescript
- Elasticsearch
- AWS community day seoul
- nltk
- Develop
- inversify
- aws
- mongoDB
- Lifecycle
- shorten
- Terraform
- Github Actions
- Clickjacking
- JavaScript
- Airflow
- mognodb
- pagination
- Neptune
- slowquery
- lambda@edge
- Cognito
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |