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