[TIL] 항해99 27일차

심우진·2021년 10월 10일
0

POJO

Plain Old Java Object, 간단히 POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다.

스프링의 주요 기술인 IoC/DI, AOP, PSA는 애플리케이션을 POJO로 개발할 수 있게 해주는 기술들이다.

POJO의 조건

  1. 특정 규약에 종속되지 않는다.

위의 예제처럼 JMS를 사용하기 위해 MessageListener를 상속받아서는 안된다.

  • 단일 상속 제한 때문에 객체지향적인 설계기법 적용하기 어려워짐
  • 다른 환경으로의 이전이 어려움
  1. 특정 환경에 종속되지 않는다.
    예를 들어 웹환경에 종속되는 HttpServletRequest나 HttpSession와 관련된 API를 직접 이용해서는 안된다.
  • 다른 환경에서 사용하기 어려움
  • 비즈니스 로직과 기술적인 내용을 담은 웹정보 코드가 섞여 이해하기 어려워짐
  • 웹서버에 올리지 않고 독립적으로 테스트하기 어려워짐

POJO의 장점

위에서 살펴본 조건이 바로 장점이 된다.

  • 특정 규약에 종속되지 않아 객체지향 설계를 할 수 있게 됨.
  • 특정 환경에 종속되지 않아 테스트 하기 좋음
  • 특정 규약에 종속되지 않아 로우레벨 코드와 비즈니스 코드가 분리되어 깔끔한 코드 작성이 가능

싱글톤패턴

싱글톤 패턴은 객체를 딱 하나만 생성하여 생성된 객체를 프로그램 어디에서나 접근하여 사용할 수 있도록 하는 패턴을 말합니다.

개발을 하다 보면 전역적으로 하나의 객체만을 사용해야 하는 경우가 종종 있습니다. 하지만 특별히 제한을 걸어두지 않는다면 객체들이 여러 개로 복제되는 경우가 생길 수 있겠죠. 싱글톤 패턴을 사용하면 객체 생성을 단 한 번으로 제한하여 객체들이 복제되는 경우를 방지할 수 있습니다. 또한 클래스를 사용하는 여러 곳에서 인스턴스를 계속 생성하여 불필요하게 메모리 낭비를 유발할 수 있다고 판단되는 경우에도 싱글톤 패턴을 사용할 수 있습니다.

싱글톤 패턴의 장점

  1. 메모리 낭비를 방지할 수 있다.
  2. 싱글톤으로 만들어진 클래스와 다른 클래스의 인스턴스들의 데이터 공유가 쉽다.
  3. 인스턴스가 절대적으로 한개만 존재하는 것을 보증하기에 개발 시 실수를 줄일 수 있다.
  4. 싱글톤 객체를 사용하지 않는 경우 인스턴스를 생성하지 않는다.
  5. 싱글톤을 상속시킬 수 있다.

싱글톤 패턴의 단점

  1. 전역변수보다 사용하기가 불편하다.
  2. 싱글톤의 역할이 커질수록 결합도가 높아져 객체 지향 설계 원칙에 어긋날 수 있다.
  3. 멀티쓰레드 환경에서 컨트롤이 어렵다.
  4. 객체의 파괴 시점을 컨트롤하기 어려울 수 있다.

JPA

JPA란, JAVA ORM 기술에 대한 API 표준 명세이다.

JPA란 ORM을 사용하기 위한 JAVA 인터페이스를 모아둔 것이며, JPA를 사용하기 위해서는 JPA를 구현한 Hibernate, Eclipselink, DataNucleus 같은 ORM 프레임워크를 사용해야한다.

Spring Data JPA

Spring Data JPA란, Spring에서 제공하는 모듈 중 하나로, JPA를 더 쉽고 편하게 사용할 수 있도록 도와준다.

  • JPA를 한단계 추상화 시킨 Repository 인터페이스를 사용함으로써 이루어진다.
  • 사용자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면, Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어 Bean으로 등록해준다.

0개의 댓글