[Node.js] 객체 지향 프로그래밍

Asher Park·2022년 12월 27일
0

내일배움캠프_Node.js

목록 보기
14/17
post-thumbnail

스파르타코딩클럽 내일배움캠프 Node.js 심화주차 강의를 들으며 공부한 것을 적은 것입니다.

객체 지향 프로그래밍

  • 프로그램의 처리단위가 객체인 프로그래밍 방법
  • 현실 세계를 모델링 하는 패러다임
  • 데이터프로세스동일한 모듈 내부에 위치하도록 프로그래밍 하는 방식

왜 사용해야할까?

  • 문제 상황을 빠르게 인지하고 코드 수정에 용이
  • 개발에 사용하는 시간을 최대한으로 줄이는 것이 목표
  • 분산된 모든 코드를 수정해야 하는 것이 아닌, 해당 로직을 수행하는 코드만 수정

장점

  • 의존성을 효율적으로 통제
  • 요구사항 변경에 좀 더 수월하게 대응
  • 데이터를 중심으로 프로그래밍을 하면 일관성을 유지하기 좋다

설계

  • 요구하는 기능을 온전히 수행하면서 변경을 매끄럽게 수용할 수 있는 설계
  • 이해하기 쉬운 코드 -> 가독성이 좋은 코드
  • 하나의 클래스만 변경할 수 있는 설계
  • 캡슐화를 이용해 의존성을 적절히 관리 -> 결합도를 낮춤

SOLID (객체 지향 설계 5원칙)

1. 단일 책임의 원칙 (SRP)

  • 하나의 객체는 단 하나의 책임
    클래스나 모듈을 변경할 이유가 단 하나 뿐이어야 한다
  • 프로그래머가 가장 무시하는 규칙
    일반적인 프로그래머는 "동작하기만 하는 소프트웨어"에 초점을 맞추기 때문

2. 개방-폐쇄 원칙 (OCP)

  • 엔티티 또는 개체는 확장에는 열려 있으나 변경에는 닫혀 있어야한다
  • 기존 코드에 영향을 주지않고 새로운 기능이나 구성 요소추가할 수 있어야 한다는 것

3. 리스코프 치환 원칙 (LSP)

  • 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다
  • 부모 클래스와 자식 클래스가 있는 경우 서로를 바꾸더라도 잘못된 결과를 도출하지 않는 것

4. 인터페이스 분리 원칙 (ISP)

  • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다
  • 최대한 인터페이스를 작게 유지하여야 한다

5. 의존성 역전 원칙 (DIP)

  • 프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다
  • 높은 계층의 모듈이 저수준의 모듈에 의존해서는 안된다
profile
배움에는 끝이없다

0개의 댓글