[next] andorid에 mvc 패턴 적용하기

82
Day 9. 안드로이드 MVC 패턴 적용하기

Upload: youngsu-son

Post on 12-Jul-2015

899 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: [NEXT] Andorid에 MVC 패턴 적용하기

Day����������� ������������������  9.����������� ������������������  ����������� ������������������  

안드로이드����������� ������������������  MVC����������� ������������������  패턴����������� ������������������  적용하기

Page 2: [NEXT] Andorid에 MVC 패턴 적용하기

이번����������� ������������������  Section에서는����������� ������������������  HomeView가����������� ������������������  갖고있는����������� ������������������  기능들을����������� ������������������  분리함으로써����������� ������������������  

MVC����������� ������������������  Pattern을����������� ������������������  적용해����������� ������������������  보겠습니다.

Page 3: [NEXT] Andorid에 MVC 패턴 적용하기

MVC����������� ������������������  Pattern

모델-뷰-컨트롤러(Model­–View­–Controller,����������� ������������������  MVC)는����������� ������������������  소프트웨어����������� ������������������  공학에서����������� ������������������  사용되는����������� ������������������  아키텍처����������� ������������������  패턴이다.����������� ������������������  ����������� ������������������  

이����������� ������������������  패턴을����������� ������������������  성공적으로����������� ������������������  사용하면,����������� ������������������  사용자����������� ������������������  인터페이스로부터����������� ������������������  비즈니스����������� ������������������  로직을����������� ������������������  분리하여����������� ������������������  애플리케이션의����������� ������������������  시각적����������� ������������������  요

소나����������� ������������������  그����������� ������������������  이면에서����������� ������������������  실행되는����������� ������������������  비즈니스����������� ������������������  로직을����������� ������������������  서로����������� ������������������  영향����������� ������������������  없이����������� ������������������  쉽게����������� ������������������  고칠����������� ������������������  수����������� ������������������  있는����������� ������������������  애플리케이션을����������� ������������������  만들����������� ������������������  수����������� ������������������  있다.����������� ������������������  MVC

에서����������� ������������������  모델은����������� ������������������  애플리케이션의����������� ������������������  정보(데이터)를����������� ������������������  나타내며,����������� ������������������  뷰는����������� ������������������  텍스트,����������� ������������������  체크박스����������� ������������������  항목����������� ������������������  등과����������� ������������������  같은����������� ������������������  사용자����������� ������������������  인터페이스����������� ������������������  

요소를����������� ������������������  나타내고,����������� ������������������  컨트롤러는����������� ������������������  데이터와����������� ������������������  비즈니스����������� ������������������  로직����������� ������������������  사이의����������� ������������������  상호동작을����������� ������������������  관리한다.

http://ko.wikipedia.org/wiki/모델-뷰-컨트롤러

Page 4: [NEXT] Andorid에 MVC 패턴 적용하기

MVC����������� ������������������  Pattern

• 사용자����������� ������������������  인터페이스로부터����������� ������������������  비즈니스����������� ������������������  로직을����������� ������������������  분리����������� ������������������  

• 서로����������� ������������������  영향����������� ������������������  없이����������� ������������������  쉽게����������� ������������������  고칠����������� ������������������  수����������� ������������������  있는����������� ������������������  애플리케이션����������� ������������������  

• 모델은����������� ������������������  애플리케이션의����������� ������������������  정보(데이터)����������� ������������������  

• 뷰는����������� ������������������  사용자����������� ������������������  인터페이스����������� ������������������  요소����������� ������������������  

• 컨트롤러는����������� ������������������  데이터와����������� ������������������  비즈니스����������� ������������������  로직����������� ������������������  사이의����������� ������������������  상호동작을����������� ������������������  관리

Page 5: [NEXT] Andorid에 MVC 패턴 적용하기

NEXTGRAM에����������� ������������������  적용을����������� ������������������  해보면서����������� ������������������  ����������� ������������������  좀����������� ������������������  더����������� ������������������  자세히����������� ������������������  알아봅시다.

Page 6: [NEXT] Andorid에 MVC 패턴 적용하기

NEXTGRAM에는����������� ������������������  다양한����������� ������������������  View가����������� ������������������  있지만����������� ������������������  그����������� ������������������  중에서도����������� ������������������  

HomeView.java를����������� ������������������  수정해보겠습니다.

Page 7: [NEXT] Andorid에 MVC 패턴 적용하기

HomeView.java가����������� ������������������  하는일을����������� ������������������  살펴보니

Page 8: [NEXT] Andorid에 MVC 패턴 적용하기

…⋯

HomeView.java가����������� ������������������  하는일을����������� ������������������  살펴보니

Page 9: [NEXT] Andorid에 MVC 패턴 적용하기

HomeView.java가����������� ������������������  하는일을����������� ������������������  살펴보니

onCreate에서����������� ������������������  

SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������  

mainListView����������� ������������������  인플레이트

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

listViewSimple1����������� ������������������  실행

onResume에서����������� ������������������  

refreshData()����������� ������������������  실행

Page 10: [NEXT] Andorid에 MVC 패턴 적용하기

HomeView.java가����������� ������������������  하는일을����������� ������������������  살펴보니

SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������  

mainListView����������� ������������������  인플레이트

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

listViewSimple1����������� ������������������  실행

refreshData()����������� ������������������  실행

Page 11: [NEXT] Andorid에 MVC 패턴 적용하기

HomeView.java가����������� ������������������  하는일을����������� ������������������  살펴보니

SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������   mainListView����������� ������������������  인플레이트

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

listViewSimple1����������� ������������������  실행refreshData()����������� ������������������  실행

Controller가����������� ������������������  할일 View가����������� ������������������  할일

Page 12: [NEXT] Andorid에 MVC 패턴 적용하기

SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������   mainListView����������� ������������������  인플레이트

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

listViewSimple1����������� ������������������  실행refreshData()����������� ������������������  실행

Controller가����������� ������������������  할일 View가����������� ������������������  할일

View가����������� ������������������  할일은����������� ������������������  HomeView.java에����������� ������������������  그대로����������� ������������������  두고����������� ������������������  HomeController.java를����������� ������������������  생성해����������� ������������������  만들어����������� ������������������  봅시다.

Page 13: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController.java����������� ������������������  작성하기 SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������  

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

refreshData()

Page 14: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeController.java를����������� ������������������  생성한����������� ������������������  후����������� ������������������  Context를����������� ������������������  담아����������� ������������������  둘����������� ������������������  수����������� ������������������  있게����������� ������������������  

생성자를����������� ������������������  작성합니다.

HomeController.java

Page 15: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController.java����������� ������������������  작성하기 SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������  

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

refreshData()

Page 16: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController.java에����������� ������������������  initSharedPreferences()����������� ������������������  메서드를����������� ������������������  생성합니다.

HomeController.java

HomeController����������� ������������������  작성하기

Page 17: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeView.java

다음����������� ������������������  HomView.java에서����������� ������������������  SharedPreferences와����������� ������������������  ����������� ������������������  

관련있던����������� ������������������  부분을����������� ������������������  모두����������� ������������������  복사한후

Page 18: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeController.java

HomeController의����������� ������������������  initSharedPreferences()����������� ������������������  안에����������� ������������������  붙여넣습니다.

Page 19: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeController.java

Application����������� ������������������  Context의����������� ������������������  함수들은����������� ������������������  context가����������� ������������������  호출하도록����������� ������������������  추가����������� ������������������  작성합니다.

Page 20: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeView.java에����������� ������������������  HomeController의����������� ������������������  인스턴스를����������� ������������������  생성한����������� ������������������  후����������� ������������������  

initSharedPreferences()메서드를����������� ������������������  실행하도록����������� ������������������  합니다.

HomeView.java

Page 21: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController.java����������� ������������������  작성하기

SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������  

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

refreshData()

Page 22: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeView.java의����������� ������������������  refreshData()����������� ������������������  함수를����������� ������������������  복사한����������� ������������������  후����������� ������������������  

외부에서����������� ������������������  사용할����������� ������������������  수����������� ������������������  있게����������� ������������������  private를����������� ������������������  public으로����������� ������������������  변경합니다.

HomeView.java

Page 23: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeController.java

HomeController.java에����������� ������������������  붙여넣습니다.����������� ������������������  

Proxy와����������� ������������������  Dao가����������� ������������������  없으니!

Page 24: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController.java����������� ������������������  작성하기

SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������  

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

refreshData()

Page 25: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeController.java

Proxy와����������� ������������������  ProviderDao����������� ������������������  객체를����������� ������������������  선언하고����������� ������������������  생성합니다.

Page 26: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeView.java

����������� ������������������  onResume과����������� ������������������  onOptionItemSelected에서����������� ������������������  refreshData()를����������� ������������������  ����������� ������������������  

homeController로부터����������� ������������������  호출하도록����������� ������������������  합니다.

Page 27: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController.java����������� ������������������  작성하기

SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������  

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

refreshData()

Page 28: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeView.java

HomeView.java로����������� ������������������  부터����������� ������������������  Service를����������� ������������������  실행하기����������� ������������������  위한����������� ������������������  코드를����������� ������������������  ����������� ������������������  

복사한����������� ������������������  후에

Page 29: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeController.java

HomeController.java에����������� ������������������  startSyncDataService()����������� ������������������  메서드를����������� ������������������  작성한����������� ������������������  후

Page 30: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeController.java

붙여넣기를����������� ������������������  합니다.����������� ������������������  

이때����������� ������������������  startService()는����������� ������������������  Context의����������� ������������������  함수이니����������� ������������������  context가����������� ������������������  호출하도록����������� ������������������  합니다.

Page 31: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController����������� ������������������  작성하기

HomeView.java

마지막으로����������� ������������������  HomeView.java의����������� ������������������  onCreate에서����������� ������������������  ����������� ������������������  

homeController.startSyncDataService()를����������� ������������������  실행하도록����������� ������������������  합니다.

Page 32: [NEXT] Andorid에 MVC 패턴 적용하기

이전보다는����������� ������������������  깔끔해����������� ������������������  졌지만����������� ������������������  한줄기가����������� ������������������  한줄기가����������� ������������������  남아있네요.

더����������� ������������������  고민해보기

Page 33: [NEXT] Andorid에 MVC 패턴 적용하기

listViewSimple1에게����������� ������������������  ArrayList<ArticleDTO>는����������� ������������������  ����������� ������������������  

어떻게����������� ������������������  전달해����������� ������������������  줄지����������� ������������������  고민하도록����������� ������������������  합시다.

HomeView.java����������� ������������������  -����������� ������������������  onCreate

listViewSimple1����������� ������������������  실행

더����������� ������������������  고민해보기

Page 34: [NEXT] Andorid에 MVC 패턴 적용하기

After

Before

Page 35: [NEXT] Andorid에 MVC 패턴 적용하기

마무리

MVC를����������� ������������������  적용해보자구조를����������� ������������������  더����������� ������������������  매끄럽게����������� ������������������  만들기����������� ������������������  

section����������� ������������������  4

Page 36: [NEXT] Andorid에 MVC 패턴 적용하기

����������� ������������������  HomeView.java의����������� ������������������  기능

SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������  

mainListView����������� ������������������  인플레이트

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

listViewSimple1����������� ������������������  실행

refreshData()����������� ������������������  실행

Page 37: [NEXT] Andorid에 MVC 패턴 적용하기

����������� ������������������  HomeView.java

Controller와����������� ������������������  View의����������� ������������������  기능을����������� ������������������  모두����������� ������������������  하는����������� ������������������  ����������� ������������������  

HomeView를

Page 38: [NEXT] Andorid에 MVC 패턴 적용하기

우리는����������� ������������������  Controller와����������� ������������������  View의����������� ������������������  기능을����������� ������������������  가지고����������� ������������������  있던����������� ������������������  HomeView.java를����������� ������������������  

하는일을����������� ������������������  나누어����������� ������������������  본����������� ������������������  후����������� ������������������  HomeController와����������� ������������������  HomeView로����������� ������������������  분리하였습니다.

SharedPreferences를����������� ������������������  사용����������� ������������������  ����������� ������������������   mainListView����������� ������������������  인플레이트

Proxy����������� ������������������  인스턴스화

Dao����������� ������������������  인스턴스화

SyncDataService����������� ������������������  실행

listViewSimple1����������� ������������������  실행refreshData()����������� ������������������  실행

HomeController.java ����������� ������������������  HomeView.java

Page 39: [NEXT] Andorid에 MVC 패턴 적용하기

����������� ������������������  HomeView.java

HomeController.java

Page 40: [NEXT] Andorid에 MVC 패턴 적용하기

• 사용자����������� ������������������  인터페이스로부터����������� ������������������  비즈니스����������� ������������������  로직을����������� ������������������  분리����������� ������������������  

• 서로����������� ������������������  영향����������� ������������������  없이����������� ������������������  쉽게����������� ������������������  고칠����������� ������������������  수����������� ������������������  있는����������� ������������������  애플리케이션

이를����������� ������������������  통해����������� ������������������  MVC����������� ������������������  Pattern의����������� ������������������  효과인

를����������� ������������������  달성하기����������� ������������������  위해����������� ������������������  한걸음����������� ������������������  더����������� ������������������  나아갔습니다.

Page 41: [NEXT] Andorid에 MVC 패턴 적용하기

MVC����������� ������������������  Pattern����������� ������������������  외에도����������� ������������������  Android에는����������� ������������������  

MVP����������� ������������������  Pattern이����������� ������������������  적합하다는����������� ������������������  의견도����������� ������������������  있으니����������� ������������������  ����������� ������������������  

함께����������� ������������������  학습해����������� ������������������  보기를����������� ������������������  권장합니다.

Page 42: [NEXT] Andorid에 MVC 패턴 적용하기

section����������� ������������������  5

DTO를����������� ������������������  활용해보자객체를����������� ������������������  통해����������� ������������������  데이터를����������� ������������������  전달하기

Page 43: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직을����������� ������������������  살펴본����������� ������������������  후����������� ������������������  그에����������� ������������������  따른����������� ������������������  문제점을����������� ������������������  확인해����������� ������������������  보겠습니다

Page 44: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직

ProxyProviderDao

ProviderDao,����������� ������������������  Proxy,����������� ������������������  Server와

Page 45: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직

ProxyProviderDao

JSONJSON

ProviderDao,����������� ������������������  Proxy,����������� ������������������  Server와����������� ������������������  

그����������� ������������������  사이에서����������� ������������������  전달되는����������� ������������������  데이터의����������� ������������������  형태

Page 46: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직

ProxyProviderDao

ProviderDao,����������� ������������������  Proxy,����������� ������������������  Server와����������� ������������������  

그����������� ������������������  사이에서����������� ������������������  전달되는����������� ������������������  데이터의����������� ������������������  형태����������� ������������������  

에����������� ������������������  관한����������� ������������������  이야기����������� ������������������  입니다.

JSONJSON

Page 47: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직

ProxyProviderDao

현재는����������� ������������������  서버에서����������� ������������������  JSON으로����������� ������������������  데이터를����������� ������������������  전달해줍니다.

JSONJSON

Page 48: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직

ProxyProviderDao

Proxy는����������� ������������������  getJSON()메서드를����������� ������������������  통해����������� ������������������  ����������� ������������������  

데이터를����������� ������������������  서버에����������� ������������������  요청하구요

JSONJSON

Page 49: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직

ProxyProviderDao

ProviderDao는����������� ������������������  JSON����������� ������������������  데이터를����������� ������������������  받아����������� ������������������  

insertJsonData()����������� ������������������  함수를����������� ������������������  통해����������� ������������������  DB에����������� ������������������  저장합니다.

JSONJSON

Page 50: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직

ProxyProviderDao

JSONJSON

만약����������� ������������������  서버가����������� ������������������  XML

Page 51: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직

ProxyProviderDao

XMLXML

Proxy에서는����������� ������������������  getXML()을����������� ������������������  만들고����������� ������������������  

ProviderDao는����������� ������������������  insertXMLData()����������� ������������������  을����������� ������������������  추가해야����������� ������������������  합니다

Page 52: [NEXT] Andorid에 MVC 패턴 적용하기

현재����������� ������������������  Article들을����������� ������������������  받아오는����������� ������������������  로직

ProxyProviderDao

XMLArticleDTO

Proxy����������� ������������������  가����������� ������������������  xml,����������� ������������������  json,����������� ������������������  또다른����������� ������������������  형태의����������� ������������������  데이터라도����������� ������������������  ����������� ������������������  

ArticleDTO를����������� ������������������  ProviderDao에게����������� ������������������  전달하는����������� ������������������  것이����������� ������������������  낫지����������� ������������������  않을까?

JSON

Page 53: [NEXT] Andorid에 MVC 패턴 적용하기

구조를����������� ������������������  변경해보자!(두둥)

Page 54: [NEXT] Andorid에 MVC 패턴 적용하기

Proxy.java����������� ������������������  수정하기

Page 55: [NEXT] Andorid에 MVC 패턴 적용하기

Proxy.java����������� ������������������  수정하기

Proxy.java

Proxy.java에����������� ������������������  getArticleDTO()라는����������� ������������������  메서드를����������� ������������������  만들고����������� ������������������  

ArrayList<ArticleDTO>를����������� ������������������  반환하도록����������� ������������������  합니다.

Page 56: [NEXT] Andorid에 MVC 패턴 적용하기

Proxy.java����������� ������������������  수정하기

Proxy.java

jsonData로부터����������� ������������������  DTO를����������� ������������������  만들기����������� ������������������  위한����������� ������������������  멤버변수들을����������� ������������������  선언.

Page 57: [NEXT] Andorid에 MVC 패턴 적용하기

Proxy.java����������� ������������������  수정하기

Proxy.java

jsonData와����������� ������������������  ArrayList에����������� ������������������  담을����������� ������������������  ArticleDTO도����������� ������������������  준비해줍니다.

Page 58: [NEXT] Andorid에 MVC 패턴 적용하기

Proxy.java����������� ������������������  수정하기

Proxy.java

다음����������� ������������������  슬라이드는����������� ������������������  위의����������� ������������������  부분을����������� ������������������  작성할����������� ������������������  것입니다.

Page 59: [NEXT] Andorid에 MVC 패턴 적용하기

Proxy.java����������� ������������������  수정하기

Proxy.java

jsonData를����������� ������������������  JSONArray로����������� ������������������  객체화����������� ������������������  시킵니다.

Page 60: [NEXT] Andorid에 MVC 패턴 적용하기

Proxy.java����������� ������������������  수정하기

Proxy.java

JSONArray객체에����������� ������������������  접근하기����������� ������������������  위한����������� ������������������  반복문을����������� ������������������  작성

Page 61: [NEXT] Andorid에 MVC 패턴 적용하기

Proxy.java����������� ������������������  수정하기

Proxy.java

articleDTO를����������� ������������������  만들어����������� ������������������  줍니다.

Page 62: [NEXT] Andorid에 MVC 패턴 적용하기

Proxy.java����������� ������������������  수정하기

Proxy.java

생성한����������� ������������������  articleDTO를����������� ������������������  articleList에����������� ������������������  추가!

Page 63: [NEXT] Andorid에 MVC 패턴 적용하기

ProviderDao.java����������� ������������������  수정하기

Page 64: [NEXT] Andorid에 MVC 패턴 적용하기

ProviderDao.java����������� ������������������  수정하기

ProviderDao.java

ProviderDao.java에����������� ������������������  insertData()����������� ������������������  메서드를����������� ������������������  작성하고����������� ������������������  ����������� ������������������  

필요한����������� ������������������  변수들을����������� ������������������  작성합니다.

많은����������� ������������������  코드가����������� ������������������  insertJsonData와����������� ������������������  겹치니����������� ������������������  코드를����������� ������������������  복사하시고����������� ������������������  ����������� ������������������  

수정하시는����������� ������������������  것을����������� ������������������  권장합니다.

Page 65: [NEXT] Andorid에 MVC 패턴 적용하기

ProviderDao.java����������� ������������������  수정하기

ProviderDao.java

articleList를����������� ������������������  순회하는����������� ������������������  반복문들����������� ������������������  작성합니다.

Page 66: [NEXT] Andorid에 MVC 패턴 적용하기

ProviderDao.java����������� ������������������  수정하기

ProviderDao.java

ArticleDTO에����������� ������������������  있는����������� ������������������  값을����������� ������������������  추출해����������� ������������������  변수에����������� ������������������  넣습니다.

Page 67: [NEXT] Andorid에 MVC 패턴 적용하기

ProviderDao.java����������� ������������������  수정하기

ProviderDao.java

마지막으로����������� ������������������  받아온����������� ������������������  articleNumber도����������� ������������������  저장하는����������� ������������������  것을����������� ������������������  잊지����������� ������������������  않습니다.

다시한번����������� ������������������  말씀드리지만����������� ������������������  많은����������� ������������������  코드가����������� ������������������  insertJsonData와����������� ������������������  겹치니����������� ������������������  코드를����������� ������������������  복사하시고����������� ������������������  ����������� ������������������  

수정하시는����������� ������������������  것을����������� ������������������  권장합니다.

Page 68: [NEXT] Andorid에 MVC 패턴 적용하기

ProviderDao.java����������� ������������������  수정하기

ProviderDao.java

다음����������� ������������������  슬라이드에����������� ������������������  나오는����������� ������������������  코드����������� ������������������  위치

Page 69: [NEXT] Andorid에 MVC 패턴 적용하기

ProviderDao.java����������� ������������������  수정하기

ProviderDao.java

DB에����������� ������������������  넣기����������� ������������������  위한����������� ������������������  코드들도����������� ������������������  추가합니다.

이부분의����������� ������������������  코드는����������� ������������������  insertJsonData와����������� ������������������  동일하니����������� ������������������  꼭����������� ������������������  복사하시길����������� ������������������  권장합니다.

Page 70: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController.java����������� ������������������  수정하기

Page 71: [NEXT] Andorid에 MVC 패턴 적용하기

HomeController.java����������� ������������������  수정하기

HomeController.java의����������� ������������������  refreshData안의����������� ������������������  코드를����������� ������������������  

수정해����������� ������������������  줍시다.

HomeController.java

Page 72: [NEXT] Andorid에 MVC 패턴 적용하기

SyncDataService.java����������� ������������������  수정하기

Page 73: [NEXT] Andorid에 MVC 패턴 적용하기

SyncDataService.java����������� ������������������  수정하기

SyncDataService.java

SyncDataService.java의����������� ������������������  onStartCommand안의����������� ������������������  코드를����������� ������������������  

수정해����������� ������������������  줍시다.

Page 74: [NEXT] Andorid에 MVC 패턴 적용하기

마무리

DTO를����������� ������������������  활용해보자객체를����������� ������������������  통해����������� ������������������  데이터를����������� ������������������  전달하기

더section����������� ������������������  5

Page 75: [NEXT] Andorid에 MVC 패턴 적용하기

After

Before

Page 76: [NEXT] Andorid에 MVC 패턴 적용하기

ProxyProviderDao

JSONJSON

이렇게����������� ������������������  구성되었던����������� ������������������  기존의����������� ������������������  로직을

Page 77: [NEXT] Andorid에 MVC 패턴 적용하기

ProxyProviderDao

ArticleDTO JSON

ProviderDao의

를����������� ������������������  

변경하고.����������� ������������������  

Page 78: [NEXT] Andorid에 MVC 패턴 적용하기

ProxyProviderDao

ArticleDTO JSON

Proxy의����������� ������������������  기능들을����������� ������������������  

Page 79: [NEXT] Andorid에 MVC 패턴 적용하기

ProxyProviderDao

ArticleDTO JSON

Proxy의����������� ������������������  기능����������� ������������������  

getJson����������� ������������������  :����������� ������������������  서버에서����������� ������������������  jsonData를����������� ������������������  가져온다.����������� ������������������  

Page 80: [NEXT] Andorid에 MVC 패턴 적용하기

ProxyProviderDao

ArticleDTO JSON

Proxy의����������� ������������������  기능����������� ������������������  

getArticleDTO����������� ������������������  :����������� ������������������  ArrayList<articleDTO>����������� ������������������  데이터를����������� ������������������  가져온다

Page 81: [NEXT] Andorid에 MVC 패턴 적용하기

ProxyProviderDao

ArticleDTO JSON

이렇게����������� ������������������  수정함으로써

Page 82: [NEXT] Andorid에 MVC 패턴 적용하기

우리는����������� ������������������  서버의����������� ������������������  API가����������� ������������������  변경되더라도����������� ������������������  

유지보수하기����������� ������������������  용이한����������� ������������������  방향으로����������� ������������������  DTO객체를����������� ������������������  활용했습니다.

ProxyProviderDao

XMLArticleDTO

JSON