7/19 TIL(느슨한 결합, 의존성 주입, NestJS, TypeScript)

김영후·2022년 7월 19일
0

느슨한 결합

SW에서 결합이란 "둘 이상의 객체" 이다.

느슨한 결합이란 "객체들끼리 결합을 했지만 느슨하게 됐다" 라고 해석 된다.

클래스와 클래스를 느슨하게 결합하여 새로운 기능을 개발하거나 기존 기능을 수정하고 확장하는 것이 쉽다.

코드의 유지 보수가 쉽다.

강한 결합

하나의 객체를 변경하면 다른 객체들의 변경을 요구한다.

결합되어 있지 않으면 사용을 할 수 없다.

메모리를 많이 쓴다.


IoC(Inversion of Control / 제어의 역전)

제어의 역전은 일반적인 디자인 패턴 중 하나

원래는 개발자가 프로그램의 흐름을 제어하는 주체

프레임워크가 dependency를 container화 시켜 생명주기를 관리하게 되었다.

즉, dependency의 제어권이 개발자에서 프레임워크로 넘어가게 되었으며 이를 제어권의 흐름이

변경되었다고 하여 IoC(Inversion of Control)이라 한다.

DI(Dependency Injection/ 의존성 주입)

DI(Dependency Injection) 의존성 주입은 Tight Coupling(강한 결합)을 Loose Coupling(느슨한 결합)으로 전환시키는 방법

제어의 역전(IoC)의 기술 중 하나


싱글톤 패턴(Singleton Pattern)

const moneyService = new CashService() // 싱글톤 패턴)
const productService = new ProductService()

new 한 번으로 모든 곳에서 사용가능하다.

이러한 디자인 패턴을 싱글톤 패턴이라고 한다.


NestJS

NestJS는 Typescript를 지원하는 효율적이고 확장 가능한 Node.js의 서버 애플리케이션 프레임워크

각 개발자들이 구조를 통일하고 소통하며 확장성있는 개발을 할 수 있다.


Typescript

자바스크립트에 타입을 부여한 언어

대규모의 작업에서 효율성, 안정성을 높인다.

profile
https://poagg.tistory.com/ 로 이전합니다.

0개의 댓글