ssung_항해일지/항해99_WIL

23.02.13 - 02.19 -WIL

ssungcohol 2023. 2. 19. 18:46

ORM (Object-Relational Mapping)

  • 객체와 관계형 DB의 데이터터를 자동으로 매핑해주는 것
    • 객체 지향 프로그래밍은 클래스(class)를 사용하고, 관계형 DB는 테이블을 사용합니다
    • 객체 모델과 관계형 모델 간에 불일치가 존재
    • ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결
  • DB 데이터 <- 매핑 -> Object 필드
    • 객체를 통해 간접적으로 DB 데이터를 다움
  • Persistant API 라고도 부름
    • JPA, Hibernate 가 있음
  • 장단점
    • 장점
      • 객체 지향적인 코드로 인해 더 직관적이고, 비지니스 로직에 더 집중 가능
      • 재사용성 및 유지보수의 편리성 증가
      • DBMS에 대한 종속성 감소
        (DBMS - Datebase Management System - 데이터를 한 곳에 모은 저장소를 관리 및 기능 수행)
    • 단점
      • 완벽한 ORM으로만 서비스를 구현하기 어려움
      • 프로시저가 많은 시스템에는 ORM의 객체 지향적인 장점 활용이 어려움

SQL (Structured Query Language)

  • 구조적 쿼리 언어(SQL)는 관계형 DB에 정보를 저장하고 처리하기 위한 프로그래밍 언어
  • 모든 유형의 어플리케이션에서 자주, 널리 사용되는 쿼리 언이임 (서로 다른 프로그래밍 언어와 통합이 잘 됨)
  • SQL 명령 종류 - 데이터 정의, 데이터 쿼리, 데이터 조작, 데이터 제어, 트랜잭션 제어 언어 등이 있음

MVC (Model, View, Controller)

  • 수많은 디자인 패턴 중의 하나
  • Model, View, Controller 의 약자로, 하나의 어플리케이션, 프로젝트를 구성할 때 구성 요소를 세 가지 역할로 구분한 패턴
  • 서로 분리되어 각자의 역할에 집중할 수 있게끔 하여 개발을 하고 다양한 장점을 위해 사용
    (유지보수 용이, 확장성 증가, 유연성 증가, 중복코딩 방지

 

  • Model - 데이터를 가진 객체, 어플리케이션의 정보, 데이터를 나타냄
    • 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야한다
    • View & Controller에 대해서 어떤 정보도 알지 말아야한다
    • 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야한다
  • View - 사용자 인터페이스 요소를 나타냄. 즉, 게이터 및 객체의 입력과 보여주는 출력을 담당(사용자들이 보는 화면)
    • 모델이 가지고 있는 정보를 따로 저장해서는 안된다
    • 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 한다
    • 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야한다
  • Controller - 데이터와 사용자인터페이스 요소들을 잇는 다리역할. 즉, 사용자의 이벤트들을 처리하는 부분
    • 모델이나 뷰에 대해서 알고 있어야 한다. (컨트롤러는 모델과 뷰의 중재를 위해 알고 있어야 한다.)
    • 모델이나 뷰의 변경을 모니터링 해야한다
  • 한계
    • View는 Controller에 연결되어 화면을 구성하는 단위 요소로써 다수의 View를 가질 수 있음
    • Model은 Controller를 통해서 View와 연결되지만, Controller에 의해서 하나의 View에 연결될 수 있는 Model도 여러 개가 될 수 있어 View와 Model이 서로 의존하게 됨
    • 즉, Controller에 다수의 Model과 View가 복잫바게 연결되는 상황이 발생할 수도 있음
728x90

'ssung_항해일지 > 항해99_WIL' 카테고리의 다른 글

23.03.06 - 03.12 -WIL  (0) 2023.03.13
23.02.27 - 03.05 -WIL  (0) 2023.03.06
23.02.06 - 02.12 -WIL  (0) 2023.02.13
23.01.30 - 02.05 -WIL  (0) 2023.02.06
23.01.23 - 01.29 -WIL  (0) 2023.01.30