SPRING
객체를 관리할 수 있는 컨테이너를 제공
공통적으로 사용하는 객체를 같이 쓸 수 있도록 컨테이너를 통해 관리함
컨테이너로 자바 객체를 관리하여 의존성 주입과 제어의 역전을 통해 결합도를 낮추게 됩니다.
의존성 주입(DI; Dependency Injection)
- 컨테이너가 의존 관계를 자동으로 연결
- 객체간의 의존관계를 미리 설정해두면 스프링 컨테이너가 의존관계를 자동으로 연결
- 직접 의존하는 객체를 생성하거나 검색해서 가져올 필요없어서 결합도가 낮아지는 장점이 존재
제어의 역전(IoC; Inversion of Control)
- 제어권이 사용자에게 있지 않고 프레임워크에 존재
- 필요에 따라서 사용자의 코드를 호출하게 됨
- 스프링에서는 인스턴스의 생성부터 소멸까지 개발자가 아닌 컨테이너에서 대신 관리
ORM(Object Relational Mapping)
- 관계형 데이터베이스(RDBMS)를 OOP언어로 변환해주는 기술
JPA
- ORM을 위해 자바에서 제공하는 API
- 자바 객체와 DB테이블을 매핑하는데 구현체로는 하이버네이트가 있음
ORM, JPA, Hibernate 장단점
- 비즈니스, 객체 중심
- 메소드 호출하면 다 나오기 때문에 생산성 향상과 유지보수 비용이 낮아짐
- DB에 의존하지 않음
- 성능이 조금 떨어짐
- 복잡한 쿼리는 메소드로 처리하기 힘들다
'CS' 카테고리의 다른 글
리눅스 (5) | 2024.11.05 |
---|---|
정리 - JAVA (0) | 2024.10.30 |
정리 - 데이터 베이스 (1) | 2024.10.30 |
정리 - 네트워크 (0) | 2024.10.30 |
정리 - 자료 구조 (0) | 2024.10.30 |