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 사이의 의존성은 높아진다.