JavaScript #13

날림·2021년 10월 5일

js/node

목록 보기
19/25

객체 지향 프로그래밍은 어떻게 나왔을까


절차적 언어

초기의 프로그래밍 언어, C, Fortran
순차적인 명령의 조합

단순히 순차적인 명령 수행이 아니라 루틴, 서브루틴, 메소드, 함수 등(이를 통틀어 프로시저라고 한다.)을 이용한 프로그래밍 패러다임
어떤 데이터를 취급하는 것인가에는 그다지 관심이 없었던 것
나무위키 - 절차적 프로그래밍
나무위키 - 객체 지향 프로그래밍

  • 조금만 복잡해지면 순서를 나타내는 것이 거의 불가능해질 정도로 꼬여버린다
    = 가독성이 떨어지고 유지보수가 어렵다

  • 구조적 프로그래밍
    = 프로그램을 프로시저 단위로 나누고 프로시저끼리 호출
    = 큰 문제를 작은 문제들로 나누어 해결하기 때문에 하향식(Top-down) 방식이라고도 함

프로그래머가 힘들어하는 일

= 데이터의 처리 방법을 구조화했을뿐, 데이터 자체는 구조화하지 못 함 (변수 이름을 다 써서 이름 짓기도 힘든 상황도 발생)
= 실행 상태를 저장할 방법이 없어지는 문제 (상태에 따라 명령을 다르게 처리해야 할 때)

이를 극복하기 위한 대안으로...


객체 지향 프로그래밍

큰 문제를 작게 쪼개는 것이 아니라, 먼저 작은 문제들을 해결할 수 있는 객체들을 만든 뒤, 이 객체들을 조합해서 큰 문제를 해결하는 상향식(Bottom-up) 해결법

  • 객체를 한번 독립성/신뢰성이 높게 만들어 놓기만 하면 그 이후엔 그 객체를 계속 재사용 가능
  • 독립성/신뢰성이 높게 객체를 만드는데 돕는 것이 클래스
  • 클래스에 세부사항(속성)을 넣어서 만들어지는 것이 인스턴스 객체

만드는 방법은 전 포스트를 참조

profile
항상배우기

0개의 댓글