어제는 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 <브랜치명>
'TIL' 카테고리의 다른 글
Spring boot 에서 Service 의 역할 (22.10.13 TIL) (0) | 2022.10.13 |
---|---|
피하지 말고 즐기자! (22.10.12 TIL) (0) | 2022.10.12 |
POJO (22.10.10 TIL) (0) | 2022.10.10 |
spring 으로 프로그램 만들기 (22.10.09 TIL) (0) | 2022.10.09 |
드디어 Spring (22.10.08 TIL) (0) | 2022.10.08 |
댓글