3-tier vs MVC

GuruneLee·2021년 3월 9일
0

Let's Study 공부해요~

목록 보기
6/36

"MVC패턴을 적용하였고, 3tier구조로 되어있는 프레임워크를 갖추고 있다"

이게 무슨말인지 배워보자!!

아키텍쳐

Software Architecture

: 소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고, 스프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙

Layering Model: n-tier Architecture(Multi-tier)

: [ 클라이언트 - 비지니스로직 - 데이터베이스시스템 ] 을 완전 분리한 '클라이언트-서버'시스템의 일종
ex. 데이터 요구 서비스에 있는 미들웨어

  • n-tier라고 하지만, 보통 3-tier 아키텍쳐를 쓴다

디자인 패턴

  • 물리적으로 구분할 수 없는 설계를 문서화 하면서 고안된 방법
  • 프로그램의 규모가 커질수록 다양한 문제를 겪게 되는데, 이 문제들을 효율적으로 해결할 수 있게 하기위해 유형별로 패턴화 한 것!

3-tier vs MVC

3-tier 'Architecture'

: [ 프레젠테이션 계층 - 비지니스 계층 - 데이터 계층 ] 을 각각 '물리적으로 독립된'모듈로 개발하고 유지하는 구조. 각 계층(레이어)는 접촉 계층과의 통신만 하면 된다. 무조건 비지니스 계층을 통해야 한다는 말!

  • 프레젠테이션 계층 (Presentation Layer)
    - 응용 프로그램의 최상위에 위치하고있으며, 서로 다른층에 있는 데이터 등과 커뮤니케이션 함
  • 비지니스 계층/ 애플리케이션 계층 (Business Layer)
    - '비지니스 로직' '트랜잭션 계층' 이라고도 불림
    - 클라이언트 요청에 대해 마치 '서버처럼 행동'함 + 데이터 계층에 대해선 '클라이언트처럼 행동'함
  • 데이터 계층 (Data Access Layer)
    - 데이터베이스 + 데이터베이스에 액세스해서 읽거나 쓰는 프로그

MVC 'pattern'

: [ 모델 - 뷰 - 컨트롤러 ]로 분리된 애플리케이션. '물리적으로 구분할 수 없음'.
[ view -> controller ]: 사용자의 요청을 view에서 받아 controller로 전달
[ controller -> model ]: controller에서 model단에 데이터 처리 요청
[ model -> view ]: 처리 결과를 view로 보여줌
-> 트라이앵글 패턴

  • 모델 (Model)
    - 어떤 동작을 수행하는 코드
    - 표시형식에 의존하지 않음 (사용자가 이것을 볼 수 없음)
    - public함수로만 이루어짐 (애플리케이션의 모든 코드에서 사용할 수 있어야 함)
    - 함수는 사용자의 query에 대해 상태 정보를 제공하거나 그 상태를 수정함
  • 뷰 (View)
    - 모델에게 query하여 모델로부터 값을 가져와 사용자에게 보여줌
    - MVC에서 모델은 여러 뷰를 가질 수 있음
  • 컨트롤러 (Controller)
    - 사용자는 컨트롤러를 사용하여 모델의 상태를 바꾼다
    • 컨트롤러는 모델의 mutator함수를 호출하여 상태를 바꾼다
    • 모델의 상태가 바뀔 때, 모델은 등록된 뷰에 자신의 상태가 바뀌었다고 알린다

3tier와 MVC의 관계

  • 3계층이 물리적으로 구분되어 있고, 이 안에 MVC가 통신 중

ref

profile
Today, I Shoveled AGAIN....

1개의 댓글

comment-user-thumbnail
2022년 12월 22일

3티어 = 물리적 개념, mvc는 3티어의 논리적 개념 맞나요?
개발자끼리 커뮤니케이션할 떄는 거의 동의어로 봐도 되나요?

답글 달기