ORM(Object Relational Mapping)
이름 그대로 객체와 관계형 데이터베이스를 매핑시켜준다는 의미이다. ORM 프레임워크는 객체와 테이블을 매핑해서 개발자가 직접 SQL을 작성하지 않아도 된다. 객체를 자바 컬렉션에 자정하듯 ORM프레임워크에 저장하는 것이다. 그러면 ORM 프레임워크가 적절한 Insert문을 생성해 데이터베이스에 객체를 저장해준다.
따라서 개발자는 객체와 관계형 데이터베이스의 매핑 방법만 ORM 프레임워크에게 알려주면 된다. 덕분에 기존의 데이터 중심에서 객체지향 중심의 애플리케이션 개발에 집중할 수 있다.
자바 진영에는 다양한 ORM 프레임워크들이 있는데 그중 하이버네이트 프레임워크를 가장 많이 사용한다.
SQL(Structured Query Language)
구조화 질의어, 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
SQL 문법은 크게 3가지 종류로 나눠진다.
DDl(Data Definition Language)
테이블을 만들거나 변경하는데 사용한다.
CREATE, ALTER, DROP
DML(Data Manipulation Language)
데이터베이스에 저장된 데이터를 조작하는데 사용된다.
SELECT, INSERT, UPDATE, DELETE
DCL(Data Control Language)
데이터베이스에 대한 엑세스를 제어하는데 사용된다.
GRANT, REVOKE
MVC(Model View Controller)
웹 애플리케이션에서 관심사를 분리하기 위해 소프트웨어 엔지니어링에 사용되는 인기 있는 디자인 패턴이다.
MVC 패턴에서 애플리케이션은 모델 계층, 뷰 계층, 컨트롤러 계층의 세가지 계층으로 분리된다.
모델 계층
애플리케이션의 데이터 및 비즈니스 로직을 관리한다. 여러개의 데이터 변경작업을 하나의 작업으로 묶는 트랜잭션을 다루는 일을 한다.
뷰 계층
사용자에게 데이터를 제공하는 역할을 한다. HTML, JSP 또는 Thymeleaf 템플릿과 같은 사용자 인터페이스를 포함한다. 또한 컨트롤러에 의해 반환된 데이터를 렌더링하는 역할을 한다.
컨트롤러 계층
사용자 요청을 처리하고 응답을 제공하는 역할을 한다. 요청을 수신하고 처리하며 모델 계층과 상호작용하여 데이터를 검색하고 조작한다.
애플리케이션을 이러한 별개의 계층으로 분리함으로써, 개발자들이 다른 계층에 영향을 미치지 않고 하나의 계층만을 변경해 쉽게 관리 할 수 있도록 한다.
이번 주도 수고했어요 🥰