Object Relational Mapper
의 약자로 객체와 RDB의 테이블을 매핑시켜줘서 객체에게 영속성을 부여하는 영속성 프레임워크입니다.
자바 진영에서는 Java Persistence API
와 그 구현체로 Hibernate
가 대표적입니다.
개발자가 직접 반복적인 SQL을 작성할 필요 없이 간단한 어노테이션 몇 개만으로 매핑이 가능하고 따라서 비즈니스 로직에 집중할 수 있습니다.
단점으로는 학습 난이도가 어렵다는 점과, 복잡한 성능 튜닝이 필요할 때에는 결국에 SQL을 작성해야 한다는 점이 있습니다.
MVC패턴
이란 애플리케이션의 구조를 Model
, View
, Controller
로 나누어 설계하는 방법을 말합니다. Model
은 데이터를 처리하는 영역이며, View
는 사용자에게 보여질 화면을 처리하는 영역이고, Controller
는 사용자의 요청을 어떻게 처리할지를 결정하는 영역을 말합니다.View
와 Model
사이의 의존성이 높아 어플리케이션이 커질수록 복잡해지고 유지보수가 어려워진다.MVVM패턴
이란 Model
+ View
+ View Model
을 합친 용어입니다. View Model
은 View
를 위한 Model
입니다. Command패턴
과 Data Binding
을 이용하여 View
와 View Model
사이의 의존성을 없앴습니다.View
와 Model
사이의 의존성이 없다. 각 부분이 독립적이어서 모듈화하여 개발할 수 있다.View Model
의 설계가 쉽지 않다.MVP패턴
은 Model
, View
, Presenter
로 구성됩니다. Presenter
는 View
에서 요청한 정보로 Model
을 가공하여 View
에게 전달해줍니다.View
와 Model
사이의 의존성이 없다.View
와 Presenter
사이의 의존성은 높아진다.