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
'파이썬' 카테고리의 다른 글
Day14_MYSQL_Python 회원가입 프로그램을 만들어보자 (0) | 2023.03.22 |
---|---|
Day14_MySQL _Python 데이터 삽입+삭제+수정+출력 (0) | 2023.03.22 |
Day 9 파일 읽기 및 저장하기 (0) | 2023.03.14 |
Day 8 변수 타입 어노테이션 (0) | 2023.03.14 |
Day 8 클로저와 데코레이터 (0) | 2023.03.14 |