본문 바로가기
JAVA Spring

객체지향 설계 5원칙과 POJO

by ppirae 2022. 1. 10.

오늘도 퇴근하고 JAVA Spring 강의를 들었다.


좋은 소프트웨어 설계를 위해서는 결합도(coupling)은 낮추고 응집도(cohesion)는 높여야한다.

 

결합도

모듈(클래스)간의 상호 의존 정도를 나타내는 지표로써

결합도가 낮으면 모듈간의 상호 의존성이 줄어들어서 객체의 재사용 및 유지보수가 용이하다.

 

응집도

하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성으로

응집도가 높은 모듈은 하나의 책임에 집중하고 독립성이 높아져, 재사용 및 유지보수가 용이하다.


객체지향 설계 5원칙

 

1. SRP(Single Responsibility Principle) 단일 책임 원칙

어떠한 클래스를 변경하는 이유는 한가지 뿐이어야 한다.

 

2. OCP(Open Closed Principle) 개방 폐쇄 원칙

자신의 확장에는 열려있고,  주변에 변화에 대해서는 닫혀있어야 한다.

상위 클래스 또는 인터페이스를 중간에 둠으로써, 자신은 변화에 대해서 폐쇄적이지만,

인터페이스는 변화에 대해서 확장을 개방해줄 수 있다.

 

3. LSP(Liskov Substitution Principle) 리스코프 치환 원칙

서브 타입은 언제나 자신의 기반(상위) 타입으로 교체할 수 있어야 한다.

 

4. ISP(Interface Segregation Principle) 인터페이스 분리 법칙

클라이언트는 자신이 사용하지않는 메서드에 의존 관계를 맺으면 안된다.

프로젝트 요구 사항과 설계에 따라서 SRP/ISP 를 선택한다.

 

5. DIP(Dependency Inversion Principle) 의존 역전 원칙

자신보다 변하기 쉬운 것에 의존하지 말아야 한다.

 

앞글자를 딴 SOLID는 객체지향 4대 특성에 기반한다.


POJO JAVA란 ?

POJO(Plain Old Java Object) 순수한 자바 프로젝트를 뜻한다.

역사를 거슬러 올라가면, 예전 EJB가 인기를 많이 끌고, 많이 사용하던 시절에는 단순한 자바 프로젝트를

사용해서 개발하는 것이 아닌, EJB에 종속적인 부분으로 개발을 진행하였다.

그로인하여, Module의 교체, 시스템 업그레이드 시 종속성으로 인하여 불편함이 발생했다.


POJO 특징

1. 특정 규약에 종속되지 않는다. 외부에 의존성을 두지않고, 순수한 JAVA로 구성이 가능해야 한다.

2. 특정 환경에 종속되지 않는다. 외부 종속적인 http request, session등은 POJO를 위배한 것이다.

 

POJO Framework

Spring, Hibernate

객체지향적인 설계가 가능하고, 서비스 로직에 집중하고 이를 POJO로 쉽게 개발할 수 있도록 해준다.


뉴욕버거에서 점심먹음.

배고파서 그런지 맛있게 먹었다. 든든세트 7900원 ? 가성비가 좋다.

가게가 좀 좁지만 사장님이 친절하시다.

다음에는 블로그용 사진을 찍어야겠다.

'JAVA Spring' 카테고리의 다른 글

스프링 입문 - 스프링 웹 개발 기초  (0) 2022.01.18
Spring(진짜 시작.)  (0) 2022.01.16
Spring 입문 - 객체지향  (0) 2022.01.06
자바 기억 되살리기  (0) 2022.01.05
겨울방학동안 JAVA Spring을 배워보자.  (2) 2022.01.02

댓글