![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bsuzrK/btqCM9NXoAk/S5ADPD6SOmZZIsuaKpCyn0/img.png)
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:/..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bxQDBA/btqCENX465k/KQxzh6MK7ggVaq5JHFEie1/img.png)
IoC란 객체를 생성하고 객체 간의 의존 관계를 프레임워크가 대신 해주는 것을 의미한다. 개발자가 직접 객체를 생성하지 않고 의존 관계를 관리할 수 있게 된다. 객체를 제어하고 관리하는 역할이 개발자로 부터 프레임워크에게 역전 된다. DI(Dependency Injection)는 객체간의 의존성을 자신이 아닌 외부에서 주입하는 개념이다객체 자체가 아니라 Framework에 의해 객체의 의존성이 주입되는 설계 패턴이다. Framwork에 의해 주입되므로 여러 객체 간의 결합이 줄어들고 재사용성이 증가한다. inversify는 IoC(Inversion of Control) 컨테이너이다. DI를 구현하기 위해 javascript에서 많이 사용되는 것은 inversify와 typedi 등이 있다. DI를 구현하..
AWS IAM 및 보안 고려 사항 IAM 사용자는 특정 리전이 아닌 AWS 계정 범위 내에서 생성되고 관리되므로 사용자 또는 그룹의 마이그레이션은 필요 없다. 새로운 리전으로 마이그레이션할 때는 IAM 사용자에 대해 정의된 정책 제한 사항에 주의해야 한다. ARN은 특정 리전으로 제한 될 수 있다. Amazon EC2 인스턴스 마이그레이션 인스턴스 마이그레이션은 데이터와 이미지를 복사하고 보안 그룹과 SSH 키가 있는지 확인한 다음 새로운 인스턴스를 다시 시작하는 작업이다. - SSH 키 SSH 퍼블릭 키는 리전별로만 저장되며, AWS는 구성된 고객 SSH 키를 리전 간에 복사하거나 동기화하지 않는다. Auto Scaling 시작 구성 및 AWS CloudFormation 템플릿은 키 쌍 이름을 사용하는..
- Total
- Today
- Yesterday
- Python
- nltk
- AWS community day seoul
- Clickjacking
- JavaScript
- Airflow
- slowquery
- Develop
- conventional commit
- Terraform
- mognodb
- shorten
- Cloudfront
- nginx
- typescript
- Prisma
- Cognito
- Elasticsearch
- Github Actions
- aws
- Neptune
- mongoDB
- NLP
- inversify
- pagination
- graphql
- commit message
- Lifecycle
- sementic version
- lambda@edge
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |