부자 되기 위한 블로그, 머니킹

Description

JDBC를 공부하다가 문득 JDBC 가 2계층과 3계층 모두를 지원한다는 이야기를 들었다. 문득 2계층과 3계층에 대해 정리가 덜 된 상태라 이번 기회에 제대로 공부하기로 했다. 개념 자체는 쉽기 떄문에 그림으로만으로도 이해가 충분하다.

 

개념

계층을 나눈다는 것은 최종적으로 사용자에게 보이끼까지 몇단계를 둘것인가를 설정하는 것이다. 최근 대부분의 웹개발은 3계층으로 구성되어 있다. 정말 간단한 웹개발이라면 2계층도 고려하지만 기본적으로 3계층으로 구성하는 것을 추천한다.

 

 

 

2-tier (2계층)

클라이언트가 직접 DB 서버에 접근하여 데이터를 가져온다.

 

 

 

2 tier 단점

  • 거의 모든 비지니스 로직을 클라이언트에서 처리한다 (속도 문제)
  • 비지니스 로직 변경시 클라이언트로 프로그램을 다시 배포해야 한다 (업데이트 문제)
  • 클라이언트에서 db를 처리하기 떄문엘 보안에 취약하다 (보안성 문제)

 

 

 

3-tier (3계층)

클라이언트가 웹 애플리케이션 서버 (WEB SERBER → WAS)를 경유하여 DB에 접근하고 직접 데이터 관리 역할을 서버가 하지 않으며 DB 서버를 별도로 구성한다.

 

 

 

3 tier 특징

  • 비지니스 로직을 수정시 클라이언트를 수정할 피요가 없다.
  • 비지니스 로직을 모듈확시켜 재사용할 수 있다.
  • 동시 사용자 수가 증가해도 일정한 응답속도와 처리량을 보장한다.