ORM, SQL, MVC
영속성(Persistence)은 데이터를 생성한 프로그램이나 처리하는 시스템이 종료되더라도 사라지지 않고 계속해서 유지되는 특성을 의미합니다. 즉, 데이터를 저장하는 과정에서 생성된 객체나 데이터를 DB나 파일 시스템 등에 저장해 놓고 나중에 필요할 때 다시 불러와 사용할 수 있도록 하는 것을 말합니다.
엔티티를 영구 저장 하는 환경 이라는 뜻 입니다. 어플리케이션에서 데이터베이스에서 꺼내온 데이터 객체를 보관하고 관리하는 역할을 합니다. 영속성 컨텍스트는 엔티티 매니저를 통해 엔티티를 조회하거나 저장할 수 있습니다.
개발자가 직접 SQL문을 작성해 데이터베이스 데이터를 다루는 Persistence Framework입니다. 객체와 테이블 간의 관계를 직접 매핑하는 것이 아닌, SQL문을 실행해 쿼리 수행 결과를 어떤 객체에 매핑할지 바인딩 하는 방법입니다. 따라서 DBMS에 종속적인 방법이라고 할 수 있습니다.
ORM(객체 관계 매핑, Object-Relational Mapping)은 객체 지향 프로그래밍 언어와 관계형 데이터베이스를 연결해주는 기술입니다.
ORM은 데이터베이스에 직접 SQL 쿼리를 작성하지 않아도, 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게 해줍니다.
ORM은 객체와 테이블 간의 매핑 규칙을 설정하고, 이에 따라 객체의 필드와 테이블의 칼럼을 매핑하여 객체를 데이터베이스에 저장하고, 데이터베이스에서 객체를 불러올 수 있도록 합니다.
=> 개발자는 데이터베이스와의 상호작용을 객체지향적으로 처리할 수 있고, 복잡한 SQL 문장을 직접 작성하지 않아도 됩니다.
SQL은 Structured Query Language의 약어.
SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있습니다.
데이터는 정해진 데이터 스키마에 따라 테이블에 저장됩니다.
데이터는 관계를 통해 여러 테이블에 분산됩니다.
스키마 : 데이터베이스에 저장되는 자료 구조와 제약 조건을 정의한 것
MVC는 Model-View-Controller의 약자로, 소프트웨어 개발 패턴 중 하나입니다. 이 패턴은 어플리케이션의 로직과 사용자 인터페이스를 분리하여 개발을 용이하게 하며, 소프트웨어 개발 시 유지보수와 확장성을 높일 수 있는 구조를 제공합니다.
Model은 어플리케이션의 데이터와 비즈니스 로직을 담당하며, 데이터의 상태 변경과 관련된 작업을 처리합니다.
View는 어플리케이션의 사용자 인터페이스를 담당하며, Model의 데이터를 보여주는 역할을 합니다.
Controller는 사용자의 입력을 받아 Model과 View 간의 상호작용을 관리합니다. Controller는 Model의 데이터를 변경하거나, View에 표시할 데이터를 선택하고, View의 표시 방법을 변경하는 작업을 수행합니다.
=> 이렇게 각각의 역할을 분리함으로써, 하나의 역할이 다른 역할의 변경에 영향을 받지 않고 독립적으로 작업할 수 있습니다. 이로 인해 개발자는 어플리케이션의 로직과 사용자 인터페이스를 동시에 수정하지 않아도 되며, 소프트웨어의 유지보수와 확장성을 높일 수 있습니다.