* MVC
: MFC 프로그래밍을 해봤으면 많이 들어봤겠지만, 일반적으로 어플리케이션은 3 layer로 나누어서 프로그래밍한다. 웹 어플리케이션 역시 구조가 나누어진다.
Layer를 나누어 프로그래밍하면 솔직히 더 많은 클래스, 인터페이스가 생기고 복잡한 메소드들도 추가되는데 왜 이렇게 나누려고 하는가?라고 의문이 들것이다.
나 역시 그런 의문이 들었었고, 서비스를 하나씩 개발하면서 알게되었다. 이렇게 명시적으로 나누어 둠으로서 각 Layer간의 결합도를 낮출 수 있으며, 무엇보다 고객의 요구사항으로 인해 한 Layer에서 변경사항이 생기더라도 그 여파가 다른 Layer에게 많이 미치지 않게할 수 있다(ripple effect). 이론상으로 OOP 관점에서 잘 만들어진 Object들끼리의 결합일 경우에는 말이다. (자자... OOP 프로그래머가 할꺼라면 디자인 패턴을 공부해보자.)
* Model
: 모델 객체. 보통 DB의 특정 테이블을 읽어와서 매핑한다. 자바의 모델 객체는 setter/getter 메소드와 property의 field로 이루어져 있다. 데이터를 담는 것외의 역할은 하지 않는다.
* View
: 웹 어플리케이션에서는 Servlet 클래스를 View단이라고 한다. 혹 front end라고도 한다. 사용자에게 데이터를 보여주거나, 데이터를 입력받는 역할을 한다.
* Controller
: Business Logic, 데이터로 수많은 operation을 처리하고 View로 데이터로 넘기거나 Model을 가지고 DB에 저장하는 역할의 Layer이다.
다음에는 실제적으로 자바 웹 어플리케이션에서 MVC 각 Layer에서 사용하는 Open Source Frame work에 대해 간략하게 알아보겠다.
: MFC 프로그래밍을 해봤으면 많이 들어봤겠지만, 일반적으로 어플리케이션은 3 layer로 나누어서 프로그래밍한다. 웹 어플리케이션 역시 구조가 나누어진다.
Layer를 나누어 프로그래밍하면 솔직히 더 많은 클래스, 인터페이스가 생기고 복잡한 메소드들도 추가되는데 왜 이렇게 나누려고 하는가?라고 의문이 들것이다.
나 역시 그런 의문이 들었었고, 서비스를 하나씩 개발하면서 알게되었다. 이렇게 명시적으로 나누어 둠으로서 각 Layer간의 결합도를 낮출 수 있으며, 무엇보다 고객의 요구사항으로 인해 한 Layer에서 변경사항이 생기더라도 그 여파가 다른 Layer에게 많이 미치지 않게할 수 있다(ripple effect). 이론상으로 OOP 관점에서 잘 만들어진 Object들끼리의 결합일 경우에는 말이다. (자자... OOP 프로그래머가 할꺼라면 디자인 패턴을 공부해보자.)
* Model
: 모델 객체. 보통 DB의 특정 테이블을 읽어와서 매핑한다. 자바의 모델 객체는 setter/getter 메소드와 property의 field로 이루어져 있다. 데이터를 담는 것외의 역할은 하지 않는다.
* View
: 웹 어플리케이션에서는 Servlet 클래스를 View단이라고 한다. 혹 front end라고도 한다. 사용자에게 데이터를 보여주거나, 데이터를 입력받는 역할을 한다.
* Controller
: Business Logic, 데이터로 수많은 operation을 처리하고 View로 데이터로 넘기거나 Model을 가지고 DB에 저장하는 역할의 Layer이다.
다음에는 실제적으로 자바 웹 어플리케이션에서 MVC 각 Layer에서 사용하는 Open Source Frame work에 대해 간략하게 알아보겠다.