[TIL - 1015] 절차지향과 객체지향, IaaS/PaaS 개념

절차지향 vs 객체지향 프로그래밍

  • 입사 첫날 운 좋게도 객체지향의 사실과 오해 저자이자 배민찬 개발자이신 조영호님의 특강을 들을 수 있었다. 절차지향과 객체지향적인 설계와 코드를 비교해가며 각각의 특징과 장단점에 대해 들을 수 있는 시간이었다.

절차지향

  • 데이터를 관리하는 클래스와 로직을 처리하는 클래스가 분리되어 있음 : 객체는 단지 데이터를 getter/setter 하는 용도로 밖에 사용되지않음
  • 중앙 집중형 코드가 완성됨 : 역할에 따라 로직을 처리하지않고, 데이터를 가진 객체들이 한 곳에서 모여서 절차지향적으로 처리되다보니 변경사항이 생겼을 때 유연하지못함

객체지향

  • 데이터(상태값)와 로직 처리를 클래스로 구분하지않고 역할을 기준으로 분리함 : 역할을 수행(로직)함에 따라 상태값(데이터)이 변경됨
    • 각자 맡은 바가 있기 때문에 한 곳에서 처리하지않고 각각에게 위임을 하는 코드가 완성됨
  • RDBMS와 결합해서 코드를 작성하게 될텐데 서로 다른 패러다임으로 인해 Mapper를 사용하게됨 : JPA(대표 구현체 - Hibernate)
    • 무조건적으로 객체지향이 좋은 것이 아니라 상황에 따라 절차지향만으로도 개발할 수 있음. 다만 변경에 유연한 개발을 위해 객체지향이 필요할 뿐

IaaS, PaaS

  • IaaS : Infrastructure-as-a-service, 인프라 제공 서비스, AWS/Microsoft Azure가 대표적인 서비스
  • PaaS : Platform-as-a-service, IaaS 포함 개발 툴/기능/배포까지 제공하는 서비스, Heroku가 대표적인 서비스