본문 바로가기

DEV/etc...

[DEV] 절차지향과 객체지향 프로그래밍

thumbnail

1. 절차지향

컴퓨터의 작업 처리방식과 유사한 방식으로 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되면서

프로그램 전체가 유기적인 연결이 될수있도록 하는 프로그래밍 기법이다.

 

장점

  • 컴퓨터의 작업처리 방식과 비슷하다
  • 실행속도가 빠르다

단점

  • 유지보수가 어렵다.
  • 같은 로직을 이용하더라도 순서가 달라졌을때 같은값을 리턴하지 않을 수 있다.
  • 디버깅이 어렵다

 

시간이 지나면서 컴퓨터의 하드웨어적 성능이 좋아지고 그럼에 따라 새롭게 제시된 방법이 있는데 이것은 객체지향 프로그래밍이다.

2. 객체지향

캡슐화, 상속, 다형성을 가지고 실제 세계를 모델링 하는 방법이라고 하는데,
쉽게 말해서 객체라는 유닛을 가지고 조립해서 하나의 프로그램을 만드는것이다.
레고를 조립하는거라고 생각하면 쉬울것같다.

 

캡슐화

캡슐화는 데이터와 알고리즘이 한개의 묶음으로 만들어지는 것을 뜻하는데,

이것은 데이터를 감추고 메소드를 이용해 상호작용을 하는 방법이다. 리액트 환경에서 컴포넌트화 하여 사용할수 있는게 이런 느낌인것같다.

상속

상속은 이미 작성된 클래스를 이어 받아 코드를 재활용하게되는것을 말하고,

이것은 부모 컴포넌트의 코드를 자식들이 이어받아 사용하는것으로 생각하면 좋겠다.

우리가 쓰는 리액트 환경에서는 props같은 느낌이다.

다형성

다형성은 하나의 이름으로 수많은 상황에 대처할수 있는것인데,

동일한 작업을 하게되는 함수들의 이름을 동일하게 할수있다는것이다.
atomic 디자인패턴에서 인풋박스를 여러곳에서 불러와 사용할수 있는것처럼 말이다.
한개의 인풋박스지만 여러곳에서 사용할수 있는것이 다형성의 특징을 이용한것이다.

 

장점

  • 코드의 재활용성을 높일수 있다.
  • 코딩이 비교적 간편하다.
  • 디버깅이 쉽다.

단점

  • 처리속도가 늦다.
  • 개발에 들어가는 시간이 길어진다.

 

얼핏 보기엔 서로 상반되는 방법인것같지만 마냥 그렇지도 않다.
객체지향과 절차지향은 모두다 순차적으로 실행하는것이 맞지만, 둘의 포커스가 조금 다르다고 한다.
절차지향은 데이터를 중심으로 함수를 구현하지만 객체지형은 기능중심적으로 메소드를 구현한다.

 

 

이전 블로그에서 이동한 글입니다.

 

함께보면 좋은자료

 

[DEV] SOLID원칙이란?

회사 세미나 주제중 솔리드 원칙이라는게 나왔다. 개발을 하면서 한번 쯤은 들어봤을, 전공생이라면 더더욱 들어봤을 원칙인데 SOLID법칙 즉, 솔리드 법칙은 객체지향 프로그래밍에서 사용되는

takd.tistory.com

 

[DEV] KISS, DRY, YAGNI - 소프트웨어 개발 3대 원칙

1. DRY DRY는 Don’t Repeat Yourself의 줄임말로 같은 기능이 반복되는 코드를 작성하지 말라는 뜻입니다. 2. YAGNI YAGNI는 YouAin't Gonna Need It 의 줄임말로 불필요하게 확장을 고려한 개발을 하지 말라는 이

takd.tistory.com

 

반응형