Programming Framework/Spring 지식 및 공부

[Spring] POJO (Plain Old Java Object)

Tizesin 2024. 6. 29. 18:41

** 자기 공부용 및 암기용으로 포스팅하는 글 입니다.

** 정확한 정보는 보장 할 수 없으니, 참고용으로만 봐주시면 감사하겠습니다.

** 제 개인적인 생각 및 자기 암시목적으로 작성되기에 이점 양해 부탁드립니다.


들어가기에 앞서..

Spring Framework의 특징인 POJO. 

어느 글에서 POJO 프로그래밍을 지향해야한다는 말 본적이 있었는데 

POJO가 뭔지 확인해 보는 시간을 가져보자.


★ 알아볼 내용

 1. Spring Framework의 특징 - POJO

 


내용 설명

 

 1. Spring Framework의 특징 - POJO

 

 

 

 

Spring의 삼각형 이라는 그림이 있다. 위 그림 하나로 Spring의 핵심 개념들을 모두 표현하고 있다라고 봐도 무방하다.

POJO라는 것은 IoC/DI, AOP, PSA를 통해서 달성할 수 있다라는 의미로 해석된다.

 

우선 POJO가 무엇일까?

Plain Old Java Object라는 뜻으로 

Java로 생성하는 순수한 객체라는의미로 풀어서 해석이 가능하다.

 

그렇다면 우리는 POJO 프로그래밍을 지향하게 될 경우 돌아올 이점에 대해서 생각을 해보자.

  1.   특정 환경이나 기술에 종속적이지 않아 재사용 용이, 확장 가능한 유연한 코드 작성 가능
  2.   저수주 레벨의 기술과 환경에 종속코드 제거를 통해 코드가 깔끔해짐
  3.   코드가 깔끔해져 디버깅이 쉬움
  4.   특정 기수리나 환경에 종속되지 않아서 테스트가 단순해짐.
  5.   객체지향적인 설계를 제한없이 적용할 수 있음.

이제 우리는 POJO 프로그래밍을 지향해야 하는 이유를 알게 되었다.

그러나 POJO 프로그래밍으로 작성한 코드라고 불리우기 위해선 두 가지의 기본 조건이 주어진다.

 1) Java나 Java의 스펙에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야한다.

  1-ex)  자바에서 제공하는 getter / setter만 가지고 있는 코드  [ 1번 조건에 충족 ]

public class User {
  private String userName;
  private String id;
  private String password;

  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
  	this.userName = userName;
  }

  public String getId() {
  	return id;
  }

  public void setId(String id) {
  	this.id = id;
  }

  public String getPassword() {
  	return password;
  }

  public void setPassword(String password) {
  	this.password = password;
  }
}

 

 2) 특정 환경에 종속적이지 않아야 한다.

 2-ex)

   서블릿 기반의 웹 어플리케이션을 실행할 때, 사용하는 컨테이너를 아파치 톰캣에서 jetty로 변경하게 될 때, 기본 아파치

톰캣에서 사용하는 라이브러리를 사용하지 않아 포팅작업에 유용하게 하는 것. [ 2번 조건 충족 ]

 

다음에는 POJO 프로그래밍을 하기 위해서 필요한 IoC/DI, PSA, AOP에 관하여 배우는 시간을 가져보자