개발/책

프로그래밍 패러다임 : 빼앗긴 덕분에 얻은 것들 [Clean architecture]

ksc036 2025. 9. 2. 00:21

 프로그래밍의 패러다임은 무엇인가 새로운 것을 더한 게 아니라 기존에 가지고 있던 자유(권한)를 박탈함으로써 이루어졌다.

 

앞으로 소개할 프로그래밍 패러다임은 1958년부터 1968년, 10년간 만들어졌으며 이후에는 패러다임이라고 불릴 만한 변화는 없었다.

 

즉 앞으로도 패러다임이 새로 등장할 확률은 극히 낮으며, 기존의 패러다임에 대해서만 왜 등장했고 어떤 장점이 있는지만 잘 익혀도 된다.

 

프로그래밍의 패러다임의 종류에는 구조적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍이 있다. 하나씩 알아보자.

 

구조적 프로그래밍

박탈한 것 : goto문장 

박탈 이유: 개발자가 실수하기 쉽고, 이로인해 코드가 복잡해지는 것을 막는다.

장점 : 가독성, 유지보수성, 검증 용이성, 모듈화 등 공학적인 품질을 상승시킴

 

정리

구조적 프로그래밍은 이미 친숙하고 일반적으로 사용되는 패러다임이다.

순차, 분기, 반복 세 가지 구조를 통해 모든 프로그램을 만들 수 있다는 것은 이미 증명되었다.


따라서 예전에는 goto라는 특별하게 코드를 제어하는 방식이 있었구나 정도로 생각하고 넘어가면 될 듯하다. (이미 우리는 구조적 프로그래밍을 바탕으로 코딩을 하고 있다.)

 

 

객체지향 프로그래밍

박탈한 것 : 함수포인터 

박탈이유 : 안정성 및 실수를 줄임.

장점 : 개발자가 직접 함수 포인터 테이블을 관리할 필요가 없어졌다.

 

정리

객체지향 패러다임은 객체지향의 4가지 특징 중 주로 다형성 개선에 목표를 두고 있다. 즉 기존에는 함수 override 시 동작 주도권을 개발자가 수동으로 설정했지만 이제는 컴파일 단계에서 자동으로 해줌으로써 안정성이 올라가게 되었다.

 

저자의는 객체지향의 다른 특징들, 예를 들어 상속·캡슐화 등은 객체지향 프로그래밍 등장 전에도 구현에 큰 어려움이 없었다고 생각한다.

 

즉, 의미 있게 변한 것은 다형성이라고 해석 한다.

 

함수형 프로그래밍

박탈한 것 : 할당문(변수 할당)

박탈이유 : 불변성을 통해 순수한 수학적 모델을 얻어 예측 가능성이 높아진다.

장점 : 병렬·동시성 환경에서 매우 안정적이고 예측 가능하다.

 

정리

불변성은 장점만 있는 것 같지만 오버헤드와 컴퓨팅 파워(연산 속도, 메모리) 등이 많이 든다.

 

(기술 발전 속도가 빨라지는 지금, 앞으로는 불변성만으로 구성된 컴포넌트가 점점 많아질 것이고, 중요한 역할로 자리 잡을 것이라 나는 예측 한다.)

 

 

전체 한줄평 

(박탈당하며 찾아가는 코드 안정성을 보며 느낀점)

사람에게 중요한 것은 해야 할 일을 하는 것도 있지만, 그보다 더 중요한 것은 해서는 안 되는 일을 하지 않는 것이라는 사실을 다시한번 느끼게 되었다. 

 

 


다음글

[Clean architecture] 왜 내 코드만 유지보수가 힘들까? SOLID 원칙에서 답을 찾다 _ 1편

https://ksc036.tistory.com/2