기술도서/자바스프링 개발자를 위한 실용주의 프로그래밍

자바스프링 개발자를 위한 실용주의 1. 절차지향비교

jasNote 2024. 8. 11. 20:24

순차지향

  • 위에서 아래로 단순하기 실행되는 코드

절차지향

  • Procedure(절차)는 과거엔 함수로 사용했다. 예를들어 오라클 프로시저 같은 것이다. 때문에 함수 지향 프로그램이라고 볼 수 있다. 함수간 호출이 절차적으로 진행되는 구조이다.
  • 순차지향과 크게 다르지 않다. 함수로 나누어둔 기능들을 연결시키는 것 뿐이다.

객체지향

  • 역할과 책임을 갖는 능동적인 객체들이 서로 협력하는 것이다.
  • 객체는 실세계를 반영하는 패러다임이 아니다. 그보다는 자아를 가진 객체들이 서로 협력하는 방식으로 개발하는 것이다. 실세계에서는 음식 자체가 가격을 말해주지 않는다. 하지만 음식 클래스는 가격을 갖고 가격을 알려준다.

 

책임과 역할

책임을 객체에 할당하는 것이 중요하다. 객체가 자신의 역할과 목적에 맞는 행동을 갖도록 설계해야 한다. 객체 지향 프로그래밍(OOP)에서는 객체가 특정한 책임을 맡아야 하고, 이를 통해 프로그램이 서로 협력하여 작동하도록 해야 한다.

interface Vehicle {
	void ride();
}

class Car implements Vehicle {
	@Override
	public void ride()
}

 

TDA원칙

물어보지 말고 시켜라. (Tell, don't ask) 객체를 데이터로 보지 말고 객체가 행동할 수 있도록 책임을 부여하는 것.

// OK
if(price < cash)

// NO
if(canAfford)