본문 바로가기

SPRING

스프링

객체 지향 프로그래밍(OOP)

  • 객체 지향 프로그래밍은 컴퓨터 프로그래밍의 패러다임 중 하나
  • OOP 는 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위인 객체들의 모임
  • 각각의 객체는 메시지를 주고받고 데이터를 처리할 수 있다.
  • 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용되는 이유다.

유연하고 변경이 용이

  • 유연하고 변경이 용이하다는 표현은 어떤 뜻일까? 부품(객체)을 조립하여 하나의 자동차란 완성품을 만드는 것처럼, 프로그래밍에서는 컴포넌트를 유연하게 변경하면서 개발이 가능하다.

핵심개념

  •  추상화, 상속, 다형성 등, 추가적으로 다중 상속 등의 특징이 존재한다.
  • 그 중 OOP 의 핵심 개념인 다형성(Polymorphism)에 주목해야한다.

왜 다형성이 중요할까?

  • 자동차를 생산한다.
  • 생산(구현)된 자동차는 매우 다양하지만, 모두 자동차(역할)다.
  • 역할과 구현을 분리하면 유연해지며 변경이 용이해진다.
  • 따라서 클라이언트는  인터페이스만 알고있으면 구현의 구체적인 내용은 몰라도 괜찮다.
  • 역할만 알고있다면  구현내용이 변경되더라도 클라이언트에게 영향을 미치지 않는다.
  • 마치 자동차의 부속품처럼 구체적인 자동차 내부구조를 모르더라도 클라이언트는 인터페이스만 알고있다면 자동차를 생산하는데 큰 문제는 없을 것이다.

 

역할 - 인터페이스
구현 - 구현클래스

주요 내용

-  객체를 설계할 때 역할과 구현을 분리

-  많은 객체 클라이언트와 객체 서버는 협력관계를 가진다

- 클라이언트를 변경하지 않아도 서버의 구현 기능을 유연하게 변경할 수 있음.

 

 

 

'SPRING' 카테고리의 다른 글

스프링게시판 만들기 #1  (0) 2021.08.13
Gradle?  (0) 2021.07.23
Maven?  (0) 2021.07.23
Build Tool (빌드 관리 Tool)  (0) 2021.07.23