객체지향 프로그램이란..

이원석·2022년 1월 16일

Spring

목록 보기
1/20
post-thumbnail
*인프런 김영한 강사님의 강좌를 참고하여 정리한 내용입니다.*

스프링을 시작하기 앞서..


단순히 스프링이 제공하는 기능을 배우고 사용하는 것은 어렵지 않습니다.
그런데 스프링이 제공하는 핵심 가치와 원리를 제대로 이해하고 사용하려면 큰 난관에 부딪힙니다. 
왜냐하면 IoC(제어의 역전), DI(의존관계 주입) 같은 알듯말듯한 용어부터, SRP, OCP, DIP 같은 
소위 SOLID라 불리는 좋은 객체 지향 설계의 원칙들도 함께 이해해야 비로소 스프링의 핵심 원리를 
제대로 파악할 수 있기 때문입니다. 

- 김영한 -


객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 역활을 수행하는 단위이다. 즉 "협력"하는 객체들의 모임이다. 또한 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하다.



유연하다? → 다형성 (Polymorphism)


객체 지향 프로그램이 유연하다는 것은, 독립적으로 역활을 수행하는 컴퓨터 프로그램을 마치 컴 퓨터 부품을 갈아 끼우듯이 변경할 수 있다는 것이다.

자동차 역활을 구현한 자동차(K3, 아반떼, 테슬라 모델3)는 자동차 역활(인터페이스)에만 "의존"하고 있기 때문에 운전자는 자동차를 운전할 수 있다. (자동차 역활에만 의존할 수 있다)

이처럼 역활과 구현구분하게 되면, 구현에 의존하지 않기 때문에 구현의 변경이 유연하며 용이하다.



자바 언어의 다형성..

  • 역활 = 인터페이스
  • 구현 = 인터페이스를 구현한 클래스, 구현 객체

객체를 설계할 때 역할을 먼저 정하는것이 중요하다. 그 후에 역할을 수행하는 구현 객체를 만들어야 한다. 마치 자동차를 생성하기 위해서는 자동차 생산의 기술력이 필수적인 것 처럼! 따라서 인터페이스(역할)를 처음부터 잘 구현하는것이 중요하다.



0개의 댓글