SPRING

객체를 관리할 수 있는 컨테이너를 제공

공통적으로 사용하는 객체를 같이 쓸 수 있도록 컨테이너를 통해 관리함

컨테이너로 자바 객체를 관리하여 의존성 주입과 제어의 역전을 통해 결합도를 낮추게 됩니다.

 

의존성 주입(DI; Dependency Injection)

  • 컨테이너가 의존 관계를 자동으로 연결
  • 객체간의 의존관계를 미리 설정해두면 스프링 컨테이너가 의존관계를 자동으로 연결
  • 직접 의존하는 객체를 생성하거나 검색해서 가져올 필요없어서 결합도가 낮아지는 장점이 존재

제어의 역전(IoC; Inversion of Control)

  • 제어권이 사용자에게 있지 않고 프레임워크에 존재
  • 필요에 따라서 사용자의 코드를 호출하게 됨
  • 스프링에서는 인스턴스의 생성부터 소멸까지 개발자가 아닌 컨테이너에서 대신 관리

ORM(Object Relational Mapping)

  • 관계형 데이터베이스(RDBMS)를 OOP언어로 변환해주는 기술

JPA

  • ORM을 위해 자바에서 제공하는 API
  • 자바 객체와 DB테이블을 매핑하는데 구현체로는 하이버네이트가 있음

ORM, JPA, Hibernate 장단점

  • 비즈니스, 객체 중심
  • 메소드 호출하면 다 나오기 때문에 생산성 향상과 유지보수 비용이 낮아짐
  • DB에 의존하지 않음
  • 성능이 조금 떨어짐
  • 복잡한 쿼리는 메소드로 처리하기 힘들다

'CS' 카테고리의 다른 글

리눅스  (6) 2024.11.05
정리 - JAVA  (0) 2024.10.30
정리 - 데이터 베이스  (1) 2024.10.30
정리 - 네트워크  (0) 2024.10.30
정리 - 자료 구조  (0) 2024.10.30