#5_Class

유상우·2023년 6월 22일
0

Nest.js

목록 보기
6/6
post-thumbnail

Class는 새로운 object를 만들기 변수와 메소드를 미리 작성하는 일종의 하나의 '틀', '설명서' 로 표현될 수 있다.

oop는 class를 이용해 하나의 객체를 만들어 그 객체안의 다향한 변수와 함수를 가져와 쓸 수 있는 형태로 프로그래밍 하는 방식이다.

이외에도 abstract, DI 등 객체지향 프로그래밍에서 쓸 수 있는 여러 개념들이 있다.

frontend 영역에서도 class와 비슷한 개념으로 component를 지원하고 있다. 과거에 하나의 파일로 하나의 전체 페이지를 구축했다면, 최근에는 페이지 안에서 기능 하나하나를 component 형식으로 분리하여 사용하여 좀 더 micro한 service를 구축할 수 있다.

method

class 안에 'action'을 담당하는 function 즉, 함수로써 담당한다.

상속(inheritance)

부모가 자식에게 DNA를 통해 여러 특성들을 물려주는 것 과 같이 실제 부모 class가 자식 class에게 property 및 method를 활용하여 쓸 수 있게 물려 주는 것을 말한다.

전략패턴(strategy)

부모 class를 통해서 필요한 속성 및 메소드를 사용하는 상속과 달리, 필요한 속성 및 메소드를 가지고 있는 새로운 class를 생성하여 부모 class에 골라서 사용하도록 하는 방법이 strategy다. 실제 실무에서 상속보다 더 많이 사용하고 있는듯 하다.

상속과 전략패턴의 차이

의존성 주입(Dependency Injection)

객체 지향 프로그래밍에서 여러 기능을 갖고 있는 객체를 다른 여러 객체의 인자로 주입하여 사용함으로써 새로운 생성자를 통한 메모리 및 코드 낭비를 줄일 수 있는 장점을 가지고 있다. 이러한 방식은 유지보수 및 협업에도 좋은 기능을 갖고 있다.

의존성 주입은 강한 결합을 느슨한 결합으로 만드는 것이며 제어의 역전(Inversion of Control)의 기술 중 하나이다.
강한 결합에서 하나의 객체를 수정하게 되면 나머지 의존되어 있는 다른 객체들의 수정이 불가피하며 유지 보수를 하기 까다롭다. 또한 강한 결합에서는 객체안에서 의존에 의한 새로운 객체를 만들어주어 사용함으로써 메모리가 크게 낭비될 수 있다. 느슨한 결합은 이러한 여러 불편한 사항들을 해결해준다.

  • 싱글톤패턴 - 하나의 객체의 인스턴스를 사용하여 공유하는 형식의 패턴
  • 제어의 역전 - 객체 및 메서드 생성, 공유 등을 개발자가 직접 관리하는 것이 아닌 외부(프레임워크)의 설계를 통해 위임하는 설계 원칙
profile
Potentialist

0개의 댓글