스프링 기반의 애플리케이션을 쉽게 사용할 수 있도록 필요한 설정을 대부분 미리 세팅해놓은 스프링 프로젝트이다.
Mybatis
Mybatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping)프레임워크 이다.
SQL을 별도의 파일로 분리해서 관리하게 해준다.
Hibernate나 JPA(Java Persistence Api)처럼 새로운 DB프로그래밍 패러다임을 익혀야하는 부담 없이 SQL을 그대로 이용하면서 JDBC코드 작성의 불편함도 제거해주고 도메인 객체나 VO객체를 중심으로 개발이 가능하다는 장점이 있다.
JPA
JPA(Java Persistence API)는 자바의 표준 ORM(Object-relational mapping)으로 자바 어플리케이션과 JDBC API의 인터페이스 역할을 합니다.
쿼리 중심 개발은 자바 객체와 관계형 DB의 패러다임 불일치라는 문제점을 갖고 있습니다.
객체지향의 다형성 추상화 등의 특성의 불일치로 모든 상속 및 참조 관계 등에서 각각의 쿼리를 작성해야합니다.
JAVA 관련 기술 스펙의 하나로 Java를 이용해서 데이터를 관리하는 기법을 하나의 스펙으로 정리한 표준입니다.
즉, JPA는 ORM을 사용하기 위한 표준 인터페이스를 모아둔 것입니다.
기존 EJB라는 기술 스펙에서 엔터티 빈(Entity Bean)이라는 데이터를 처리하는 스펙을 정한 것이 JPA의 시초라고 할 수 있습니다.
ORM
즉, ORM을 이용하면 SQL문이 아닌 관계형 데이터베이스(RDB)의 데이터를 자동으로 매핑(연결)해주기 때문에 SQL Query가 아닌 직관적인 코드(메서드)로 데이터를 조작할 수 있습니다. 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해줍니다.
하이버네이트
Hibernate는 JPA의 구현체 중 하나입니다. Hibernate가 지원하는 메서드 내부에서 JDBC API가 동작합니다
HQL은 SQL과 매우 비슷하며 추가적인 컨벤션을 정의할 수 있습니다.
HQL은 완전히 객체 지향적이며 이로써 상속, 다형성, 관계등의 객체지향의 강점을 누릴 수 있습니다.
HQL쿼리는 자바 클래스와 프로퍼티의 이름을 제외하고는 대소문자를 구분합니다.
HQL은 쿼리 결과로 객체를 반환하며 프로그래머에 의해 생성되고 직접적으로 접근할 수 있습니다.
HQL은 SQL에서는 지원하지 않는 페이지네이션이나 동적 프로파일링과 같은 향상된 기능을 제공합니다.
HQL은 여러 테이블을 작업할 때 명시적인 join을 요구하지 않습니다.
이것보다 아주 정리가 잘된 블로그
https://gmlwjd9405.github.io/2018/12/25/difference-jdbc-jpa-mybatis.html
Ui를 빠르게 개발하기 위한 자바스크립트 프론트엔드 프레임워크
→ 오직 View에만 초점을 맞추었기 때문에 다른 라이브러리와의 통합이 쉬운 편
https://velog.io/@devchoi/Vue%EB%9E%80