Team G.HARD :: cult of hard-corder

* 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에 대해 간략하게 알아보겠다.
Posted by xHuro
teQnical/Java dev. l 2007. 1. 13. 20:58

댓글을 달아 주세요

  1. 알 수 없는 사용자  댓글주소  수정/삭제  댓글쓰기

    '이론상으로' 라는 말이 웬지 슬픔 -_ㅠ

    2007.01.13 23:09
    • Favicon of https://ghard.tistory.com BlogIcon xHuro  댓글주소  수정/삭제

      이론상이라고 해서 실전에서는 전혀 다르다는 건 아니니. 슬퍼하지 말거라...
      단지, 요구 사항의 변화가 너무 한 Layer에서 끝나는 것이 아니라, DB 구조가 변경되어야 한다던가 하면 어플리케이션의 구조가 전체적으로 바뀔 수 밖에 없는 상황이 훨씬 많으니...
      그렇다고 미리 예측해서 다 만들어둘 수 있는 것도 아니고... 머 그런거 아니겠어?

      2007.01.14 21:20 신고

1 ··· 20 21 22 23 24 25 26 27 28 ··· 32 

카테고리

분류 전체보기 (32)
G.HARD bunker (4)
daily routine (18)
rumor says... (0)
teQnical (7)
projeKt (2)

달력

«   2021/12   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
tistory!get rss Tistory Tistory 가입하기!