객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
- 객체지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
- 객체모델과 관계형모델 간 불일치가 존재한다.
- ORM을 통해 객체 간 관계를 바탕으로 SQL을 자동으로 생성해 불일치를 해결한다.
ORM의 장단점
객체지향적인 코드로 인해 직관적이고 비즈니스 로직에 더 집중할 수 있게한다.
재사용 및 유지보수의 편리성이 증가한다.
DBMS에 대한 종속성이 줄어든다.
완벽한 ORM으로만 서비스를 구현하기가 어렵다.
프로시저가 많은 시스템에선 ORM의 객체지향적인 장점을 활용하기 어렵다.
SQL
관계형 데이터베이스 관리 시스템(RDBMS)을 조작할 때 사용하는 언어이다.
- RDBMS(Relational Database Management System): 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 DB
DML(Data Manipulation Language)
데이터 조작, SQL의 가장 기본이 되는 명령셋
DB에 새롭게 데이터를 추가, 삭제, 내용 갱신 등에 사용
DDL(Data Definition Language)
데이터 정의
DB객체라는 데이터 그릇을 이용하여 데이터를 관리하는데, 객체를 만들거나 삭제하는 명령어
DB 객체에는 테이블, 뷰 등이 있다.
DCL(Data Control Language)
데이터 제어
트랜잭션을 제어하는 명령과 데이터 접근 권한을 제어하는 명령 포함
MVC
Model, View, Controller를 분리한 디자인패턴
- Model
애플리케이션의 상태를 나타낸다.
Java Beans
View
- 디스플레이 데이터 또는 프레젠테이션
- JSP
Controller
View 와 Model 사이의 인터페이스 역할
Model/ View에 대한 사용자 입력 및 명령을 수신하여 그에 따라 적절하게 변경
Servlet
JSP와 Servlet을 모두 사용하는 모델
- 프레젠테이션 로직(View)과 비즈니스 로직(Controller)을 분리한다.
View(보여지는 부분)는 HTML의 중심이 되는 JSP 사용
Controller(다른 자바 클래스에 데이터를 넘겨주는 부분)은 Java 코드가 중심이 되는 Servlet을 사용
Model은 Java Beans로, DAO를 통해 Mysql과 같은 Data Storage에 접근