코딩공부/파이썬(Python)

Python_DAO,DTO,VO,디자인패턴(MVC패턴)

diary100 2023. 3. 23. 15:47

1. DAO(Data Access Object)


* DataBase 의 data에 접근하기 위한 객체로 직접 DataBase에 접근하여 데이터를 삽입,조회.변경 삭제 등을 조회할 수 있는 기능
* DataBase 접근을 하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용

 

✔비즈니스 로직

* 업무에 필요한 데이터처리를 수행하는 응용프로그램의 일부
* 데이터의 입력,수정,조회,삭제 및 처리 등을 수행하는 각종 처리를 의미
* 유저의 눈에는 보이지 않지만 ,유저가 원하는 행위를 잘 전달하기 위해 짜여진 코드  로직

2. DTO(Data transfer Object)

* 데이터 전송(이동) 객체라는 의미
* 로직을 가지지 않는 순수한 데이터 객체이며 getter/setter 메소드만 가진 클래스를 의미


3. VO(Value Object)
* Read - only 속성을 가진 오브젝트
* DTO 와 유사하지만 VO는 setter 를 가지고 있지 않아 값을 변경할 수 없음
* DTO는 인스턴스 개념이라면 VO 는 리터럴 개념
* DTO는 Layer 간의 통신 용도로 사용하는 객체이며,VO는 특정한 비즈니스 로직의 값을 담는 객체



4. MVC 패턴
* 디자인 패턴 중 하나
* M(Model),V(View),C(Controller) 의 약자
* 사용자가 view를 통해 controller 를 조작하면
controller 는 model을 통해 데이터를 가져오고, 그 정보를 통해 시각적인 담당을 하는 view를 다시 제어해서 사용자에게 전달

Model:
    - 애플리케이션의 정보, 데이터를 나타냄
    - 사용자가 편집하길 원하는 모든 테이터를 가지고 있음
    - 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 함
    - 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야함
View:
    - 텍스트,체크박스 등과 같은 사용자 인터페이스 요소를 나타냄
    - 모델이 가지고 있는 정보를 따로 저장해서는 안됨
    - 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 함
Controller
    - 데이터와 사용자 인터페이스 요소들을 연결하는 다리
    - 모델이나 뷰에 대해 알고 있어야함
    - 모델이나 뷰의 변경을 모니터링 해야 함
    - 애플리케이션의 메인 로직은 컨트롤러가 담당



✔디자인 패턴
 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용하여 쓸 수 있는 것을 정리한 "규약"을 통해 형태로 만든것