220807

Jongleee·2022년 8월 7일

WIL

목록 보기
3/9

ORM

  • Object-Relational Mapping (객체와 관계형 데이터베이스 매핑)
    - 객체와 DB의 테이블을 짝지어주는 것
    • 객체지향을 지향하는 JAVA와의 관계형 데이터베이스 간의 문제를 해결하기 위함
    • 매핑을 한 경우 쿼리 작성을 하지않고 코드로 직관적인 사용 가능
    • JPA와 hibernate

SQL

  • Structured Query Language(구조화 질의어)
    - 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
    • SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있음
    • 관계형 데이터베이스에는 핵심적인 두 가지 특징이 있다.
      • 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
      • 데이터는 관계를 통해 여러 테이블에 분산된다.

데이터는 테이블에 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있다. 해당 구조는 필드의 이름과 데이터 유형으로 정의된다.

따라서 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다. 즉, 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가가 가능한 것이 관계형 데이터베이스의 특징 중 하나다.

또한, 데이터의 중복을 피하기 위해 '관계'를 이용한다.

  • SQL 장점
    - 명확하게 정의된 스키마, 데이터 무결성 보장
    - 관계는 각 데이터를 중복없이 한번만 저장
  • SQL 단점
    - 덜 유연함. 데이터 스키마를 사전에 계획하고 알려야 함. (나중에 수정하기 힘듬)
    - 관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있음
    - 대체로 수직적 확장만 가능함

MVC

 Model, View, Controller의 약자
  • Model
    - 정보(data)들의 가공을 책임지는 컴포넌트
    - 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달
    - 규칙

    • 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
    • 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
    • 변경이 일어나면 변경 통지에 대한 처리 방법을 구현해야 한다.
  • View
    - 사용자에게 보여지는 부분(User Interface)
    - 모델에게 질의하여 데이터를 전달 받으며 받은 데이터를 화면에 표시해주는 역할
    - 모델에게 전달받은 데이터를 별도로 저장하지 않아야 하며 사용자가 화면에 표시된 내용을 변경하게 되면 모델에게 전달하여 모델을 변경해야 한다.
    - 규칙

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

    • 모델이나 뷰로부터 변경 내용을 통지 받으면 이를 각 구성 요소에게 통지
    • 사용자가 어플리케이션을 조작하여 발생하는 변경 이벤트들을 처리하는 역할
    • 규칙
      - 모델이나 뷰에 대해서 알고 있어야 한다.
      - 모델이나 뷰의 변경을 모니터링 해야 한다.
  • 장점
    - MVC 패턴을 이용하면 유지보수가 쉬워지며 중복되는 코드를 줄일 수 있음

0개의 댓글