Day13_Python_ DAO,DTO,VO

2023. 3. 21. 17:47파이썬

1) DAO 

DB의 data에 접근하기 위한 객체
직접 database에 접근하여 데이터를 삽입,조회,변경,삭제등을 조작할 수 있는 기능 

DB접근을 하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용


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

한마디: 원본 데이터를 가공하기 위한 로직을 의미 (10개 데이터 중 3개만 추출하기) 

 

 

해석
1번코드 __init__  : self.datas라는 빈 리스트 생성

2번코드 insert에 word 값이 대입되면 self.datas 리스트에 추가
(ex) WordsDao.insert('가나다라')  -> WordsDao.datas = ['가나다라']

3번코드 update에 word값이 대입
for를 이용하여 self.datas의 요소들을 차례대로 i에 대입 
만약 i.GetEng() = self.datas의 요소 1개의 객체를 getEng으로 호출 했을 때 
수정필수!

4번째 코드: search에 eng값 대입
self.datas (값이 모여있는 리스트)에서 반복문을 돌릴거다.
1개의 요소의 eng를 뽑은 것이 eng과 일치하냐
ex) self.datas = [kor = 사과, eng = apple, lev =1]에서 

search('apple')
 [kor = 사과, eng = apple, lev =1]의 eng 값과 = 'apple'의 일치여부 확인
맞으면 return i니까  =    [kor = 사과, eng = apple, lev =1] 리턴

5번코드  :  searchAll()
self.datas 안에 모든 리스트들 (내용물은 객체)가 리턴

6번코드 :


2) DTO

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

* 데이터의 불변성을 보장할 수 있다.
✔  getter / setter 

Getter : 해당 속성 값을 반환하는 메소드  (파란색)
Setter : 해당 속성 값을 설정하는 메소드  (노란색)

예시

 

3)VO

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