Karlie_dev
{SourceCode}
Karlie_dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 컴퓨터공학
    • JAVA
    • CSS
    • 자바스크립트
    • 파이썬
    • 스프링
    • DB
      • SQL
      • MySQL
      • Oracle
      • MongoDB
      • MariaDB
    • 형상관리
    • IDE
      • VS Code
      • Eclipse
    • 알고리즘
    • Server
    • AWS
    • 개발소리
    • Docker&Kubernetes
    • Cloud (클라우드)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 파이썬
  • 도커
  • 쿠버네티스
  • kubernetes
  • JavaScript
  • 오라클
  • 스프링부트
  • 스프링
  • MongoDB
  • AWS
  • 마리아디비
  • docker
  • Spring
  • mariadb
  • k8s
  • nodejs
  • oracle
  • 자바스크립트
  • Minikube
  • MySQL

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Karlie_dev

{SourceCode}

스프링

스프링에서의 POJO란

2023. 2. 4. 21:38

해당 정보를 기록하게 된 이유

스프링을 하면서 POJO 라는 명칭은 많이 들어보았는데, 단 한 번도 찾아보거나 관심을 가졌던 적이 없어서

한 번은 그래도 알아보아야 겠다 라고 생각하여 이번 기회에 찾아보고 정리하게 되었다.

 

POJO (Plain Old Java Object)

POJO는 Plain Old Java Object의 약자로, 말 그대로 오래된 방식의 자바 오브젝트라는 것이다. 점차 중량 프레임워크들을 사용하게 되면서 프레임워크에 종속된 객체를 만들게 된 것에 반발해서 사용된 용어이다.

참조글을 확인해보고 정리한 더 쉬운 말로는, 객체 지향의 원리에 충실하면서 환경이나 기술에 종속되지 않고 재활용될 수 있는 방식으로 설계된 오브젝트를 뜻한다.

 

POJO의 조건

  1. 특정 규약에 종속되지 않는다.
    • 자바 언어와 반드시 필요한 API 외에는 종속되지 말아야 한다.
    • 특정 클래스를 상속해서 만들어야 하면, 단일 상속의 제한으로 객체지향적 설계 기법에 어려움이 생기므로 POJO가 아니다.
  2. 특정 환경에 종속되지 않는다.
    • 특정 기업의 프레임워크나 서버 위에서만 동작이 가능한 코드는 POJO가 아니다.
    • 즉, POJO는 환경에 독립적 이어야 한다.
    • 예를 들어, 나중에 웹 컨트롤러와 연결되어 사용될 것이 분명해도 직접적으로 웹 이라는 환경으로 제한하는 오브젝트나 API에 의존해서는 안된다. (웹 이외의 클라이언트가 사용하지 못하기 때문이다.)
  3. 객체 지향적에 충실해야 한다.
    • 객체 지향의 기본적인 개념(상속, 다형성)에 맞춰 만들어져야 한다.

POJO의 장점

  • 기술과 환경에 종속되지 않기 때문에, 이는 깔끔한 코드를 작성할 수 있다는 것이다.
  • 테스트 작성과 검증이 쉽다

POJO 프레임워크

  • POJO 프로그래밍이 가능하도록 기술적인 기반을 제공하는 것이다.
  • 자세히는 POJO를 이용한 애플리케이션 개발이 가진 특징과 장점을 그대로 살리면서 EJB에서 제공하는 엔터프라이즈 서비스와 기술을 그대로 사용할 수 있도록 도와주는 것이다.
  • 하이버네이트와 스프링이 대표적인 POJO 프레임워크이다.

EJB(Enterprise JavaBeans)란? 

기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다.

 

하이버네이트(Hibernate)란?

하이버네이트는 자바 환경에서의 ORM 매핑 솔루션이다. 여기서 ORM은 도메인 모델 객체들을 관계형 데이터베이스 테이블로 매핑 시키는 기술이다. 하이버네이트는 JPDA의 구현체로 Spring에서 ORM을 사용하기 위해서 JPA 표준 인터페이스를 정의해두었고, 이러한 JPA를 구현하는 것으로 POJO를 유지하면서 실행할 수 있다.


참조글

- https://ko.wikipedia.org/wiki/Plain_Old_Java_Object

- https://doing7.tistory.com/81

- https://yjksw.github.io/spring-pojo/

- https://dzone.com/articles/what-is-the-difference-between-hibernate-and-sprin-1

- https://escapefromcoding.tistory.com/332

저작자표시 (새창열림)
    '스프링' 카테고리의 다른 글
    • 스프링과 스프링 부트의 차이
    • [logback] 특정 로그 출력 비활성화 하기 (logback.xml)
    • Spring Security 사용 중, POST 요청 시 403 뜨는 경우
    • 스프링 MariaDB log4jdbc 연결 오류 해결
    Karlie_dev
    Karlie_dev

    티스토리툴바