안녕하세요. Thinkingfactory입니다.
자바 통신 중 레트로핏(Retrofit) 모듈 통신 방식 DAO/VO 모델 디자인에 대해서 소개합니다.
1. 레트로핏의 통신
레트로핏 모듈은 주로 안드로이드 어플리케이션 개발에서 많이 쓰이는데, 송수신하는 데이터 칼럼수와 모델을 매칭시켜야 하는 특징이 있습니다. MVC 패턴을 충실히 따른 모듈이라고 생각합니다.
최근 안드로이드 앱 개발의 트렌드 언어인 코틀린과 함께 사용하면 손쉬운 MVC 패턴 구현이 가능하기때문에 이를 적용하는 DAO/VO 네트워킹 방식을 사용합니다.
2. DAO / VO 모델
DAO ( Data Access Object ) / VO ( Value Object )
- DAO
- DB 질의를 통해 데이터에 접근하는 객체
- DB의 한 테이블당 DAO 클래스를 하나씩 만들어 두면 유지보수가 쉬워집니다.
- 예를 들어, User, Post 라는 두 테이블이 있을 때, User 테이블의 데이터를 접근하고 싶다면 UserDAO 클래스를 만들고, 마차간지로 Post 테이블에 접근하고 싶다면 PostDAO 클래스를 만들어서 관리를 할 수 있습니다.
- VO
- DB의 한 테이블에 존재하는 컬럼들을 멤버 변수로 작성하여, 테이블의 컬럼 값을 java에서 객체로 다루기 위해 사용합니다.
- 즉, 데이터들을 캡슐화 해서 객체로 만든 것입니다.
- 예를 들어 User 테이블에 id, name, phone 컬럼이 있다면, UserVO 클래스에는 id, name, phone 멤버 변수가 존재하고 이에 대한 접근은 getter, setter로 다룹니다.
3. DAO / VO 사용 방법
서버에서 불러오는 JSON 형식에 맞춰서 모델을 만듭니다. *Kotlin으로 작성했습니다.
VO
JSON data의 하위 객체를 작성해야하는 경우, 모델로 만들어서 작성하면 됩니다.
data class BoardVO(val count : Int, val data : List<DataPost>, val paging : Page)
data class DataPost (val createdAt : String, val updatedAt : String, val id : String, val text : String)
data class Page (val previous : Int, val next : Int)
DAO
송신을 위한 데이터 모델입니다.
data class UserDAO(val email : String, val password : String)
4. 마치며
공부합시다!
참고자료 : https://victorydntmd.tistory.com/149
'Android > 강의' 카테고리의 다른 글
안드로이드 이미지 Drawable 사용 원칙 -Densities- (0) | 2020.01.04 |
---|---|
안드로이드 스튜디오에서 Github 사용법 - 커밋, 푸시 with VCS (0) | 2020.01.03 |
PopupMenu를 이용한 팝업 메뉴 구현 (0) | 2017.07.07 |
WebSettings를 통한 WebView의 해상도 설정 (0) | 2017.07.07 |
TranslateAnimation를 이용한 이동 에니메이션 구현하기 (0) | 2017.06.28 |
댓글