[Spring boot] POJO란?
[Spring boot] POJO란? — #Springboot #POJO #POJO란? #개발자의도구들 AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내...
#Springboot #POJO #POJO란? #개발자의도구들
AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다
\* 이전 웹서버 프로젝트에서 Spring을 적용하여 Spring 프로젝트로 이전되었습니다.
\* 전체코드: https://github.com/keyveloper/HTTP\_server.git
안부인사
1학기가 끝이났습니다. 지난 2주간은 학교 시험에 집중을 하다보니, 평소에 적응되었던 습관들이 다시 무너지는 것 같습니다. 결과라도 좋으면 좋았을 텐데, 크게 다치는 바람에 제대로 집중도 하지 못해서 아쉬움이 많습니다.
아쉬움은 뒤로하고 이제 방학이니 다시 컨디션 끌어올리고, 예전 습관을 되찾아야 할 시기입니다. 9월까지의 목표는 Spring 과정을 모두 끝내는 것입니다. 꼭 이룰 수 있었으면 좋겟습니다.
Spring 시자
이제 HTTP server 과정을 모두 끝내고, Spring을 본격적으로 시작 할 차례입니다. 이전에 손으로 한 땀 한 땀 직접 만든 web server를 스프링으로 다시 만들어 보았습니다. 그전에, Spring을 접하기전 필요한 이론들을 모두 정리해보고자 합니다.
\* Spring boot를 사용하니, 제가 만든 모든 코드가 너무나도 쉽게 작성됨에 놀라움을 금하지 못하고있습니다.
POJO란
POJO는 Plain Old Java Object의 약자로 직역하자면, 평범한 자바 객체라는 의미가 되겠습니다. 이는 2000년에 처음으로 마틴 파울러, 레베카 파슨스, 조쉬 매크켄티에 의해 사용되었는데, 이들은 모두 소프트웨어 설계 분야에서 크게 기여한 인물들입니다.
이들이 이런 POJO라는 용어를 사용한 이유는, 당시 자바 어플리케이션들은 EJB와 같은 복잡한 프레임워크 표준에 의존하고 있었는데, 복잡성 때문에 개발자들이 이해하고 사용하기 어려웠고, 성능이 저하되는 경우도 발생했습니다.
이에 대응하기 위해 이들은 복잡한 convention과 framework를 따르지 않는 POJO라는 개념을 도입하여 유연하고 간단한 Java Object도 충분히 유효하게 사용할 수 있다는 아이디어를 전파합니다. 이런 접근은 개발자들로 하여금 더 큰 자유도를 제공하였으며, 코드의 이식성 및 테스트 용이성 등에서 이점을 발휘했습니다.
Code
| public class Test { public final String firstName; public final String lastName; private final LocalDate startDate; public String name() { return this.firstName + " " + this.lastName; } public LocalDate getStart() { return this.startDate; }}ㅇ |
|---|
평소에 그냥 사용하던 이런 Object를 Pojo라고 부를 수 있습니다.
다시한번 정리해보자면,
- 어떤 FrameWork에 맞춰져 있지 않는 Object
- 어떤 Convention을 맞추지 않은 Object
왜 사용하는가?
POJO는 기본적으로 작성하고 읽기에 쉽습니다. 가독성이 높다는 것은 협업하는 곳에서 큰 이점을 발휘할 수 있습니다. 간단하게 테스트 역시 가능하며 어떤 형식에 얽매여 있지 않기 때문에 객체지향 설계를 더 자유롭게 할 수 있습니다.
POJO에 대해 공부하는 이유는 바로 Spring이 바로 POJO프로그래밍을 지향하는 프레임 워크 이기 때문입니다.
단점
