23.02.18

Kuno17·2023년 2월 25일
0
post-thumbnail

ORM(Object Relational Mapping)

객체-관계 매핑 이라고 한다.

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.

    • 객체 지향 프로그래밍을 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
    • 객체 모델과 관계형 모델간의 불일치가 발생한다.
    • ORM을 통해 객체간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
  • 데이터베이스 데이터 ← 매핑 →Object 필드

    • 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.
  • Persistant API라고 할 수 있다.

    • EX) JPA, Hibernate등

ORM의 장단점

장점

  1. 객체 지향적인 코드로 인해
  2. 재사용 및 유지보수의 편리성이 증가한다.
  3. DBMS에 대한 종속성이 줄어든다.

단점

  1. 완벽한 ORM으로만 서비스를 구현하기 어렵다.
  2. 프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵다.

참조 https://gmlwjd9405.github.io/2019/02/01/orm.html

SQL

SQL(Structured Query Language) 구조적 질의 언어
관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어입니다.

다음과 같은 언어적 특성을 갖습니다.
1. DDL(Data Defintion Language 데이터 정의언어)
- 각 릴레이션을 정의하기 위해 사용하는 언어(CREATE, ALTER, DROP .. )
2. DML(Data Manipulation Language 데이터 조작언어)
- 데이터를 추가/수정/삭제 하기위한, 즉 데이터 관리를 위한 언어입니다.
3. DLC(Data Cotrol Language 데이터 제어 언어)
- 사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어입니다.(GRANT,REVOKE ..)

MVC(MVC design pattern)

MVC 는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다.

사용자가 controller를 조작하면 controller는 model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 됩니다 이것은 로직을 설명하기위해 만든 그림이고 실재로는 다음과 같습니다.

이처럼 Controller가 view에도 영향을 미치는(화살표를 보자) 부분이 있어야 합니다.

Model

애플리케이션의 정보, 데이타를 나타냅니다. 데이타베이스, 처음의 정의하는 상수, 초기화값, 변수 등을 뜻합니다.
또한 이러한 DATA, 정보들의 가공을 책임지는 컴포넌트를 말합니다.

모델은 다음과 같은 규칙을 가지고 있습니다.

  1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
  2. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
  3. 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.

View

input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타냅니다.
다시 말해 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당합니다. 데이타를 기반으로 사용자들이 볼 수 있는 화면입니다.

뷰에서는 다음과 같은 규칙들이 있습니다.

  1. 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
  2. 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 된다.
  3. 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.

Controller

데이터와 사용자인터페이스 요소들을 잇는 다리역할을 합니다.
즉, 사용자가 데이터를 클릭하고, 수정하는 것에 대한 "이벤트"들을 처리하는 부분을 뜻합니다.

컨트롤러는 다음과 같은 규칙들이 있습니다.

  1. 모델이나 뷰에 대해서 알고 있어야 한다.
  2. 모델이나 뷰의 변경을 모니터링 해야 한다.
profile
자바 스터디 정리 - 하단 홈 버튼 참조.

0개의 댓글