본문 바로가기

Retrofit의 통신에서 Model DAO/VO

by 머니해커_개발자 2019. 12. 8.

안녕하세요. 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

 

댓글

최신글 전체

이미지
제목
글쓴이
등록일