본문 바로가기

inversion of control

(2)
IOC(Inversion of control : 제어의 역전) 컨테이너와 DI(Dependency Injection : 의존성 주입) 패턴. Service Locator 패턴. 주 : 객체 지향 프레임워크에서 배울 점. 예전과 다르게 요즘은 마이크로서비스의 인기에 힘입어. 경량 프레임워크 상에서 개발을 지향하는 케이스가 점점 커지고 앞으로도 더 그렇게 될 것이라 생각한다. (serverless, fission, sam 등) 이런 프레임워크의 특징은 이미 있는 프레임워크(spring, nestjs)를 이용하기 보다는, 필요하면 그때그때 구축해서 사용하는 것을 지양하는데, 함수형이거나 클래스이거나 기능을 적절하게 나누는 것이 필요하다. 이를 단일 책임 원칙(Single Responsibility Principle)이라 하는데, 해당 클래스(혹은 함수 - 모듈)가 단 하나의 변경의 원인을 가져야 한다는 것이다. 더 나아가서 모듈이 잘 분리가 된 상태라면, 개발자가 기능을 추가하거나 ..
제어의 역전(IOC : Inversion of Control) in React 원문 보기 사용 중인 루틴에 기능을 추가해달라는 요청을 받게 되면? 리액트 컴포넌트는 props를 추가하고, 리액트 훅은 argument를 추가할 것이다. 구현 로직은 점점 복잡해진다. 이같은 조치는 다음 문제들을 야기하기 쉽다 성능 이슈 : 코드 사이즈 증가 유지보수 문제 : 한가지 함수가 여러 기능을 하면 수정 유발 원인이 많다. 구현의 어려움 : 조건문은 자주 다른 조건들과 같이 바뀜. 수정 포인트가 많이 발생함. API의 복잡성 : props, argument, option 등의 플래그가 너무 많으면, 나중에 안쓰이는게 분명 발생함. 문서화도 어려움 변화에 최적화하라 Inversion Of Control API는 추상화를 이용하여 로직을 적게 구현하고, 대신 사용자의 코드를 실행한다. 플래그를 이..