ORM
Object Relational Mapping
- 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
(자바의 클래스와 DB의 테이블을 매핑한다)
- 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하기에, 객체 모델과 관계형 모델 간에 불일치가 존재한다.
- ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
JPA는 자바에서 제공하는 ORM API이다
아래와 같이 어노테이션으로 테이블과 매핑을 해줄 수 있다.
@Entity
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
@Column(nullable = false)
SQL
Structured Query Language
관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어이다.
SQL 문법은 크게는 3가지의 종류로 나누어지며, 종류마다 정의는 아래와 같습니다.
- DDL(Data Definition Language, 데이터 정의 언어)
각 릴레이션을 정의하기 위해 사용하는 언어입니다. (CREATE, ALTER, DROP...)
- DML(Data Manipulation Language, 데이터 조작 언어)
데이터를 추가/수정/삭제(C RUD)하기 위한, 즉 데이터 관리를 위한 언어입니다. (SELECT, INSERT, UPDATE...)
- DCL(Data Control Language, 데이터 제어 언어)
사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어입니다. (GRANT, REVOKE...)
SQL의 언어적 특성
- SQL은 대소문자를 가리지 않습니다. (단, 서버 환경이나 DBMS 종류에 따라 대소문자를 구분하기도 합니다.)
- SQL 명령은 반드시 세미콜론(;)으로 끝나야 합니다.
- 고유의 값은 따옴표('')로 감싸줍니다.
- SQL에서 객체를 나타낼 때는 백틱으로 감싸줍니다.
MVC
Model - View - Controller
MVC 패턴은 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다.
- 모델: 데이터와 비즈니스 로직을 관리합니다.
- 뷰: 레이아웃과 화면을 처리합니다.
- 컨트롤러: 명령을 모델과 뷰 부분으로 라우팅합니다.

프론트엔드 담당 - 뷰
백엔드 담당 - 컨트롤러, 모델
모델과 관련된 부분 - JPA, Repository 등
뷰와 관련된 부분 - HTML, CSS, JS 등
컨트롤러와 관련된 부분 - Data in/output, 페이지 및 API 라우팅