본문 바로가기

IOC

(3)
제어의 역전을 활용해 타입 친화적인 컨텍스트를 디자인하는 방법 원문 보기 : https://saul-mirone.github.io/how-to-design-a-type-friendly-context/ How to Design a Type Friendly Context IoC is the key. saul-mirone.github.io 자바스크립트 세계에서, Koa는 하나의 이정표와 같은 역할을 하였습니다. Koa는 애플리케이션의 핵심은 플러그인을 load하기 위한 코어로서 동작하며, 여러 기능을 제공하기 위해 다양한 플러그인을 번들할 수 있는 역할임을 되새기게 합니다. (ex, 스프링, express) vscode의 확장 프로그램, 웹팩의 플러그인과 같은 비슷한 사례들을 발견할 수 있습니다. 자바스크립트의 컨텍스트 Koa의 세계에서 ctx는 마법의 상자입니다. 사용..
타입스크립트 의존성 주입, 제어의 역전 with IOC 컨테이너 타입스크립트 사용 시 IOC 컨테이너가 인터페이스 기반으로 의존성을 주입할 수 있도록 해보자. Typescript DI의 한계 타입스크립트의 Type, Interface는 JS로 변환되면 삭제된다 런타임에 정보를 줄 수없다. 해당 개념이 자바스크립트에 없기 때문 NestJS / TypeGraphQL 같은 프레임워크의 예제는 구체적인 Class를 주입한다 // TypegraphQL 예제: AddRecipeInput라는 구체적인 클래스를 직접 명시함 // 만약 Java였으면 IADDRecepeInput이 가능 @Resolver() class RecipeResolver { // ... @Mutation() addRecipe(@Arg("data") newRecipeData: AddRecipeInput, @Ctx..
제어의 역전(IOC : Inversion of Control) in React 원문 보기 사용 중인 루틴에 기능을 추가해달라는 요청을 받게 되면? 리액트 컴포넌트는 props를 추가하고, 리액트 훅은 argument를 추가할 것이다. 구현 로직은 점점 복잡해진다. 이같은 조치는 다음 문제들을 야기하기 쉽다 성능 이슈 : 코드 사이즈 증가 유지보수 문제 : 한가지 함수가 여러 기능을 하면 수정 유발 원인이 많다. 구현의 어려움 : 조건문은 자주 다른 조건들과 같이 바뀜. 수정 포인트가 많이 발생함. API의 복잡성 : props, argument, option 등의 플래그가 너무 많으면, 나중에 안쓰이는게 분명 발생함. 문서화도 어려움 변화에 최적화하라 Inversion Of Control API는 추상화를 이용하여 로직을 적게 구현하고, 대신 사용자의 코드를 실행한다. 플래그를 이..