본문 바로가기
TIL

POJO vs Java Beans (22.10.11 TIL)

by winteringg 2022. 10. 11.

 어제는 POJO 에 대해 알아봤는데, 오늘은 POJO 와 Java Beans 의 차이점에 대해 알아보았다. 먼저 어제 알아본 POJO 를 정리하면 다음과 같다.

POJO (Plain Old Java Object)

  • 오래된 방식의 간단한 자바 오브젝트로서 특정 기술에 종속되지 않은 순수한 자바 객체이다.
  • Java language 에 의한 특별한 규칙이 없다. 속성, 메서드에 대한 어떠한 네이밍 규칙도 없고 엄격한 경계가 존재하지 않는다.
  • Fields 에 대한 통제가 없으며 접근제어자 규칙이 자유롭기 때문에, 멤버와 필드에 엄격한 규칙을 정하고 싶지 않을 때 사용한다.
  • 특정 기술을 사용하기 위해 특정 프레임워크나 클래스 확장, 인터페이스 구현에 의존하게 되면 그것은 POJO 라고 할 수 없다.
  • 프레임워크에 종속되지 않으므로 모든 자바 프로그램에서 쉽게 사용할 수 있다.
  • 하지만 클래스의 상태를 구성하고, 접근하고, 수정하는 어떠한 컨벤션도 없기 때문에 프레임워크의 활용성을 저해할 수 있다.
  • POJO 는 Java Beans 보다 더 넓은 개념이다.

Java Beans 

자바에는 POJO 의 기본적 성질을 해치지 않으면서 많은 자바 라이브러리에서 사용할 수 있는 Java beans 컨벤션이 존재한다. 특징은 아래와 같다.

  • POJO 와는 달리 엄격한 규칙을 가지고 있다.
  • 모든 Java Beans 는 POJO 이지만, POJO 는 Java Beans 가 아니다. 
  • 캡슐화를 위해 모든 클래스의 필드는 접근 제어자가 private 이어야 한다.
  • 필드는 getter 와 setter 를 가져야 한다.
  • 필드는 getter 와 setter 로만 접근되어야 한다. (setter 메서드로 인해 mutable 하다. mutable 속성은 동시성 혹은 일관성 문제로 이어질 수 있다.)
  • 직렬화 인터페이스를 구현해야 한다.
  • 직렬화를 위해 인수가 없는 생성자가 있어야 한다.

총 정리

  • POJO : 특정 프레임워크에 바인딩되지 않은 Java 객체
  • JavaBean : 엄격한 컨벤션을 지키는 특수 유형의 POJO

 

따봉도치~

+ 그리고 오늘 옆자리 짝꿍이 알려준 단축키! 

command + 1
-소스코드 창에서 좌측 프로젝트 폴더 창으로 커서를 옮길 수 있음. 다시 소스코드로 돌아오고 싶다면 esc 를 누르면 됨!

command + E
- 내가 방문했던 클래스들을 다시 보여줌. 디폴트 값은 바로 이전에 방문했던 클래스이므로, command + E + enter 하면 바로 이전 클래스로 돌아갈 수 있음.

+ 똑쟁이 쥬쥬님이 알려준 깃허브에 이미 올라간 커밋명을 바꾸고 싶은 경우 사용하는 명령어!

git commit --amend
~커밋명 수정~
git push -f origin <브랜치명>

댓글