ORM
정의
객체와 DB의 테이블이 매핑을 이루는 것. 즉, 객체가 ㅌ테이블이 되도록 매핑 시켜주는 것.
ORM을 이용하면 SQL Query가 아닌 직관적인 코드(메소드)로서 데이터를 조작할 수 있다.
예를 들어, User 테이블의 데이터를 출력하기 위해서 MySQL에서 'SELECT * FROM user;' 라는 query를 실행해야 하지만, ORM을 사용하면 User 테이블과 매핑된 객체를 user라 할 때, user.findAll() 라는 매소드 호출로 데이터 조회가 가능하다.
query를 직접 작성하지 않고 메소드 호출만으로 query가 수행되다 보니, ORM을 사용하면 생산성이 매우 높아진다. 그러나, query가 복잡해지면 ORM으로 표현하는데 한계가 있고, 성능이 raw query에 비해 느리다는 단점이 있다. 때문에 JPQL, QueryDSL 등을 사용하거나 한프로젝트 내에서 Mybatis와 JPA를 같이 사용하기도 한다.
SQL
정의
관계형 데이터베이스 관리 시스템 (RDBMS)의 데이터를 관리 및 처리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 질의(Query) 언어라고 불리기도 한다.
관계형 데이터 베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데잍터 베이스 객체 접근 조정 관리를 위해 고안되었다. MySQL, MariaDB, MSSQL, 오라클 등이 표준으로 채택 되고 있다.
언어적 특성
SQL은 기본적으로 대소문자를 구분하지 않지만, 서버 환경이나 DBMS 종류에 따라 DB 또는 필드명에 대해 대소문자를 구분하기도 한다.
SQL 명령은 반드시 세미콜론으로 끝나야 한다.
고유값은 따옴표로 감싸준다.
SQL에서 객체를 나타낼 떈 백틱으로 감싸준다.
주석은 일종의 도움말로, 주석으로 처리된 문장은 프로그램에서 동작하지 않는다. 한 줄 주석은 문장 앞에 '--'을 붙여서 사용한다. 여러 줄은 /**/로 감싸준다.
명령어
DDL (Data Definition Language, 데이터 정의 언어)
데이터베이스 스키마와 설명을 처리하도록 정의하는 언어. 데이터베이스나 테이블 생성/변경/삭제 등의 작업이 포함된다.
**CREATE (데이터베이스 개체(테이블, 인덱스, 제약조건 등)의 정의
**DROP (데이터베이스 개체 삭제)
**ALTER(데이터베이스 개체 정의 변경)
DML(Data Manipulation Language, 데이터 조작 언어)
데이터 검색, 삽입, 변경, 삭제 수행을 조작하는 언어. 실질적으로 저장된 데이터를 관리하고 처리할 때 사용한다.
**SELECT(테이블 데이터의 검색 결과 집합의 취득)
**INSERT(행 데이터 또는 테이블 데이터의 삽입)
**DELETE(데이터의 삭제)
**UPDATE(표 업데이트)
DCL(Data Control Language, 데이터 제어 언어)
사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어.
**COMMIT : 트랜잭션의 작업 결과를 반영
**ROLLBACK : 트랜잭션의 작업을 취소 및 원래대로 복구
**GRANT : 사용자에게 권한 부여
**REVOKE : 사용자 권한 취소
MVC

정의 및 규칙
Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴.
모델
애플리케이션의 정보, 데이터를 나타낸다. 데이터베이스, 처음 정의하는 상수, 초기화 값, 변수 등을 뜻 한다. 또한 이러한 DATA와 정보들의 가공을 책임지는 컴포넌트를 말한다.
규칙 1 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
규칙 2 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
규칙 3 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.
뷰
규칙 1 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
규칙 2 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 한다.
규칙 3 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.
컨트롤러
데이터와 사용자 인터페이스 요소들을 잇는 다리역할을 한다. 즉, 사용자가 데이터를 클릭하고 수정하는 것에 대한 "이벤트"들이 처리하는 부분을 뜻 한다.
규칙 1 모델이나 뷰에 대해서 알고 있어야 한다.
규칙 2 모델이나 뷰의 변경을 모니터링 해야 한다.
MVC 패턴 예시

의의
MVC 패턴은 결국 "어떻게 나눌 것인가?" 에 대한 하나의 해답이다. 어떤 특정한 역할들에 대해 역할분담을 할 때, 가이드라인을 제시하는 방법 중 하나가 바로 MVC패턴이라는 것이다.