ORM, SQL, MVC

Lee1231234·2022년 8월 28일
0

ORM

Object-relational mapping 객체와 관계의 설정.

객체는 OOP(Object_Oriented Programming) 관계는 관계형 데이터베이스(RDB)를 의미함
즉 ORM은 객체지향형 언어와 관계형 데이터베이스를 이어주는 프레임워크 또는 툴을 의미한다.
이어주는 이유: 데이터베이스의 테이블과 객체간 이질성이 발생하기 때문.

ORM의 장단점

  • 장점

객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다.

ORM을 이용하면 SQL Query가 아닌 직관적인 코드로 데이터를 조작할 수 있어 개발자가 객체 모델로 프로그래밍하는 데 집중할 수 있도록 도와준다.

ORM은 독립적으로 작성되어있고, 해당 객체들을 재활용 할 수 있다.
때문에 모델에서 가공된 데이터를 컨트롤러에 의해 뷰와 합쳐지는 형태로 디자인 패턴을 견고하게 다지는데 유리하다.

DBMS에 대한 종속성이 줄어든다.
객체 간의 관계를 바탕으로 SQL을 자동으로 생성하기 때문에 RDBMS의 데이터 구조와 Java의 객체지향 모델 사이의 간격을 좁힐 수 있다.

  • 단점
    완벽한 ORM 으로만 서비스를 구현하기가 어렵다.
    잘못 구현된 경우에 속도 저하 및 심각할 경우 일관성이 무너지는 문제점이 생길 수 있다.
    프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하기 어렵다.
    이미 프로시저가 많은 시스템에선 다시 객체로 바꿔야하며, 그 과정에서 생산성 저하나 리스크가 많이 발생할 수 있다.

SQL

Structured Query Language, 구조화 질의어
관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어

데이터베이스 언어 SQL 문법의 종류는 3가지로 구별.

데이터 정의 언어 (DDL : Data Definition Language)
데이터 조작 언어 (DML : Data Manipulation Language)
데이터 제어 언어 (DCL : Data Control Language)

SQL 구문은 탐욕스럽다
where절이나 limit없이 사용한다면 모든 내용을 출력하려고함.
수백만의 데이터가 들어가있다면 엄청난 소요가 일어남.

MVC

MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴

모델: 데이터와 비즈니스 로직을 관리합니다.
뷰: 레이아웃과 화면을 처리합니다.
컨트롤러: 명령을 모델과 뷰 부분으로 라우팅합니다.

모델
모델은 앱이 포함해야할 데이터가 무엇인지를 정의합니다.
데이터의 상태가 변경되면 모델을 일반적으로 뷰에게 알리며(따라서 필요한대로 화면을 변경할 수 있습니다) 가끔 컨트롤러에게 알리기도 합니다(업데이트된 뷰를 제거하기 위해 다른 로직이 필요한 경우).

다시 쇼핑 리스트 앱으로 돌아가서, 모델은 리스트 항목이 포함해야 하는 데이터 — 품목, 가격, 등. — 와 이미 존재하는 리스트 항목이 무엇인지를 지정합니다.


뷰는 앱의 데이터를 보여주는 방식을 정의합니다.

쇼핑 리스트 앱에서, 뷰는 항목이 사용자에게 보여지는 방식을 정의하며, 표시할 데이터를 모델로부터 받습니다.

컨트롤러
컨트롤러는 앱의 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직을 포함합니다.

예를 들어보면, 쇼핑 리스트는 항목을 추가하거나 제거할 수 있게 해주는 입력 폼과 버튼을 갖습니다. 이러한 액션들은 모델이 업데이트되는 것이므로 입력이 컨트롤러에게 전송되고, 모델을 적당하게 처리한다음, 업데이트된 데이터를 뷰로 전송합니다.

profile
not null

0개의 댓글