본문 바로가기
Etc

[2021.07.01] 3 Tier Architecture & MVC & auto commit (CS)

by injekim97 2021. 7. 1.
반응형

[2021.07.01]  3 Tier Architecture & MVC & auto commit (CS)

 

 

 

3 Tier Architecture란?

* 3계층 구조에서 각 계층은 물리적이면서, 독립적(계층의 변경이 다른 계층에 의존X)

* 3 계층으로 나누어 별도의 논리적/물리적인 장치에 구축 및 운영하는 형태를 말함

* 층(Layer) : 컴포넌트들의 논리적인 분리를 뜻함

 

 


1. Client(presentation) Layer == GUI & front-end Layer

- 사용자가 직접 마주하게되는 계층(사용자 인터페이스 지원)

e.g ; 인터넷 브라우저

- 주로 웹서버를 뜻함 (물리적 : WEB서버)
ex) CSS, HTML, javascript, , 사진 자료(image)

 


2. application Layer == Middleware & back-end Layer

- 요청되는 정보를 어떠한 규칙을 바탕으로 처리 및 가공 (동적 데이터 제공)

- 비즈니스 로직 계층 또는 트랜잭션 계층이라고 부름

* 비즈니스 로직은 워크스테이션으로부터의 클라이언트 요청에 대해 마치 서버처럼 행동

ex) Java EE, ASP.NET, PHP

    

3. Data Tier  
- 데이터베이스와 그것에 액세스해서 읽거나 쓰는 것을 관리하는 프로그램을 포함

- DB & File System 접근 및 관리

ex) MySQL DB, Oracle DB




3계층구조 장단점
* 장점
- 각 계층을 구분하여, 업무 분담을 통해 -> 업무 효율성 증가 & 서버의 부하 감소

- 서로 다른 물리적인(논리적인) 서버들을 구성 -> 리스크 감소 (백업 등등)

 

* 단점
- 1계층 보다 장애가 많이 발생함

- 비용도 많이 발생함 -> 서비스 규모 및 사용자 증가에 따라 계층 구조를 설계 및 고려

 

 

 

Mulit Tier Architecture (다층 구조)란?

출처 : https://www.oreilly.com/library/view/web-database-applications/0596005431/ch01.html

 

 

다층 구조(Mulit Tier Architecture)란?

-> 분산 네트워크에서 세 개 이상의 서로 다른 컴퓨터 사이에 분산되는 것
-> 소프트웨어 개발자가 최대한의 유연성으로 재사용 가능한 애플리케이션 & 시스템을 만들 수 있도록 도와줌

 

 

 

Advantages(장점)

1. 확장성
2. 데이터 무결성 
3. 재사용성 
4. 배포 감소
5. 향상된 보안
6. 가용성 향상

 

 

 


Disadvantages(단점)
- 복잡성이 증가

 

 

 

 

 

--------------------------------------------------------------------------------------------------------------------
* MVC 모델

출처 : https://www.oreilly.com/library/view/web-database-applications/0596005431/ch01.html


* Model

-> 실제 데이터 처리

 

 

* View

-> Model의 상태 표시

-> 사용자가 보는 화면 담당(UI) -  HTML/CSS로 구성
-> Controller가 View에게 동적 데이터 전달

 

 

* Controller

-> Model & View 처리 요청

-> Model이 Controller에게 data 전송
-> View에게 data 전송

-> Request를 처리함(GET, POST, PUT, DELTE)

 

e.g : Excel

 

 

MVC 모델의 장점
- 기능별로 분리 -> 작업 할 때 편리함 ,  변경 & 수정이 필요한 경우 다른 영역에 영향 X

 

 

 

 

--------------------------------------------------------------------------------------------------------------------
db에서 commit을 할 때, autocommit을 사용하면 안되는 이유 ?

e.g : 왼쪽 db 에서 -50, 빼서 autocommit을 했는데, 오른쪽에 +50이 안되면 손실되기 때문

- 그렇기 때문에,  precommit으로 양 측에서 둘다 작동했을 때, commit을 해야함

반응형

댓글