글

라벨이 MVC인 게시물 표시

[Android] 디자인패턴 2 - MVC 패턴

이미지
MVC패턴이란? - Model, View, Controller의 약자 - 비즈니스 처리 로직과 UI 요소를 분리시켜 서로 영향없이 개발  - 웹에서 주로 사용되는 디자인패턴 (안드로이드에서는 조금 다른 형태로 표현됨) *Model : 데이터를 가진다. *View : 사용자에게 보여 질 화면을 표현한다. *Control : 사용자로부터 입력을 받고, 이를 모델에 의해 View를 정의한다.  MVC 구조에서 입력은 모두 Control 에서 발생하게 된다.  이벤트가 발생한 Control에 의해 모듈의 정의와 View의 용도가 결정된다.  이미지1 웹 MVC 동작 순서 1. Control : 사용자 이벤트 발생 2. Control : 사용자 이벤트 발생 후 Update가 필요한지 Model에 확인 3. Model : 데이터 Update가 필요한지 여부 판별 4. Model : Update가 필요한 경우 View에 알림 5. View : Model로부터 Update 이벤트 수신 6. View : Model에 필요한 데이터 요청 7. Model : 요청받은 데이터를 View에 전송 8. View : Model로부터 실제 필요한 데이터를 수신받아 View 갱신  안드로이드의 MVC  *안드로이드에는 Activity 혹은 Fragment와 같은 View들이 View와 Control을 모두 가지고 있다.  public class MainActivity extends AppCompatActivity { @Override protected void onCreate ( Bundle savedInstanceState ) { super .onCreate( savedInstanceState ) ; // View setContentV...

[Android] 디자인패턴 1 - 디자인패턴이란?

이미지
디자인 패턴 mvc - mvp - mvvm을 사용해보기위해 공부해보니 안드로이드 개발 시 사용하는 디자인패턴이라는 것을 알게되었다.  그렇다면 먼저 디자인 패턴에 대해 공부를 해봐야 할 것 같아서 찾아보기 시작했는데 공부해야 할 것이 너무 많다... 앞으로 꾸준히 해야 한다고 생각하고 여기서는 간단하게 개념만 정리한 후 예제를 만들고 실제 프로젝트에 적용해보면서 공부해 나가도록 하겠다.  디자인패턴이란 무엇인가? - 여기서 다루는 디자인패턴이란 '소프트웨어 공학'의 개념이다. - 프로그래밍할 때 다양한 문제 상황에 대한 재사용 가능한 해결책이다.   *일반적인 문제를 해결하기 위해 최선의 방법을 공식화 혹은 정의 하는 것   - 패러다임과 알고리즘과는 다르다.   * 객체지향 패러다임이든 함수형 프로그래밍 패러다임이든 문제상황은 일관되기에 패러다임과 디자인패턴은 동의어가 될 수 없다. 또한 어떠한 알고리즘이라도 마찬가지로 문제상황은 일관되기 때문에 알고리즘과도 동의어가 될 수 없다. 디자인패턴은 일반화된 해결책이다.  - 디자인 패턴은 객체지향 패러다임의 개념이 아니다.   * 디자인 패턴에 대한 내용을 보면 객체지향 패러다임에 국한된 내용들이 많은데 엄밀히 말하면 아니다. 디자인 패턴이 반드시 객체지향에 적합해야 할 필요는 없다. 다만 객체지향이 굉장히 유용한 패러다임이기 때문에 이에 대한 연구가 더 많이 진행되었던 것이다.  - Creational(창조), Structural(구조), Behavioral(행동)으로 구분한다.  * 클래스와 인스턴스에 관한 생성, 구조화, 행동과 관련있다. 여기서 디자인 패턴이 객체지향에 초점을 맞추고 있음을 알 수 있다. Creational patterns - 'Creat'이라는 어미에 맞게 클래스의 인스턴스를 만드는 것과 관련있다. - Class creation patterns : 상속을...