데이터베이스 아키텍처 이해하기: 1티어부터 3티어까지
데이터를 효율적으로 활용하기 위해서는 데이터베이스를 만들 때 어떤 방식으로 데이터베이스를 구성해야 할지 결정해야 합니다. 데이터를 어떻게 저장하고 관리할지에 대한 구조를 데이터베이스 아키텍처라고 합니다. 이번 포스팅에서는 1티어, 2티어, 3티어 아키텍처를 하나씩 살펴보겠습니다.
글의 순서
전문 데이터베이스와 엑셀 파일
데이터베이스 아키텍처
1-티어 아키텍처 (1-Tier Architecture)
2-티어 아키텍처 (2-Tier Architecture)
3-티어 아키텍처 (3-Tier Architecture)
전문 데이터베이스와 엑셀 파일
데이터베이스(Database)는 데이터를 체계적으로 저장하고 관리하는 시스템입니다. 데이터베이스를 만들 때는 데이터를 어떻게 저장하고 관리할 지에 대한 데이터베이스 아키텍처를 먼저 선택해야 합니다. 이렇게 구축된 데이터베이스를 활용하면 데이터를 체계적 관리할 수 있고, 저장된 데이터를 빠르게 검색할 수 있으며, 데이터의 일관성을 유지할 수 있습니다. 또한 데이터를 안전하게 보관할 수 있고, 데이터가 손상되더라도 백업을 통해 복구할 수도 있습니다.
데이터의 양이 적을 때는 엑셀 스프레드시트도 데이터베이스의 대안이 될 수 있습니다. 그러나, 데이터의 양이 많아진다면 여러 가지 문제가 발생합니다. 평면 파일에 데이터를 저장하면 데이터가 중복될 수 있고, 검색 속도가 떨어지며, 그 데이터에 여러 사람이 동시 접근하기 어렵습니다. 또한 데이터 보안, 백업과 복구 측면에서 비효율적입니다.
따라서, 엑셀 파일과 같은 스프레드시트보다는 전문 데이터베이스를 사용하는 것이 훨씬 유리합니다. 이번 포스팅에서는 데이터베이스 아키텍처를 통해 데이터베이스를 더 이해해 보겠습니다.
데이터베이스 아키텍처란
데이터베이스 아키텍처는 데이터를 어떻게 저장하고 관리할지에 대한 구조를 말합니다. 데이터를 효율적으로 활용하기 위해 데이터베이스 아키텍처는 여러 가지 방식으로 구성될 수 있습니다. 데이터베이스 구조의 복잡성에 따라 데이터베이스 아키텍처를 일반적으로 1-티어, 2티어, 3티어로 구분합니다. 어떤 상황에서 어떤 아키텍처를 사용해야 할지를 알기 위해 1티어, 2티어, 3티어 아키텍처 각각의 구조와 장단점을 이해해 보겠습니다.
참고로, 1티어, 2티어, 3티어라는 용어는 표준화된 용어는 아닙니다만, IT와 소프트웨어 개발 분야에서 널리 사용되고 있습니다.
1-티어 아키텍처 (1-Tier Architecture)
1티어 아키텍처는 가장 단순한 구조입니다. 데이터베이스와 애플리케이션이 모두 하나의 컴퓨터(서버)에서 실행됩니다. 집에서 사용하는 컴퓨터에 엑셀 파일을 저장하고 그 파일을 열어서 데이터를 관리하는 것과 비슷합니다. 데이터베이스에 질문을 하면 단일 서버에서 모든 처리가 이루어집니다.
1티어 아키텍처는 설정이 간단하고 사용하기 쉽습니다. 또한 비용이 적게 듭니다. 그러나, 많은 데이터를 처리하기 어렵고, 모든 데이터가 한 곳에 모여 있어 보안에 취약하다는 단점이 있습니다.
2-티어 아키텍처 (2-Tier Architecture)
2티어 아키텍처는 데이터베이스와 애플리케이션이 분리되어 있습니다. 데이터베이스는 서버에 저장되고, 애플리케이션은 사용자의 컴퓨터(클라이언트)에서 실행됩니다. 예를들어 학교의 도서관 시스템이 일반적으로 2티어 아키텍처를 사용합니다. 도서관에 있는 컴퓨터가 데이터베이스 서버 역할을 하고, 학생들이 사용하는 컴퓨터가 클라이언트 역할을 합니다. 학생들은 도서관 컴퓨터에 저장된 데이터를 검색하고 조회할 수 있습니다.
데이터베이스와 애플리케이션이 분리되어 있어 데이터 용량이 커져도 처리할 수 있습니다. 데이터 보안에도 강점이 있습니다. 그러나, 설정이 복잡할 수 있고, 네트워크 문제가 발생한다면 데이터 접근이 느려질 수 있습니다.
3-티어 아키텍처 (3-Tier Architecture)
3티어 아키텍처는 데이터베이스, 애플리케이션, 그리고 서버가 각각 독립된 계층으로 나누어져 있고 데이터베이스 서버, 애플리케이션 서버, 그리고 클라이언트가 각각 독립적으로 동작합니다. 예를 들어 대형 쇼핑몰의 온라인 시스템이 대표적입니다. 쇼핑몰의 상품 데이터는 데이터베이스 서버에 저장되고, 쇼핑몰 웹사이트는 애플리케이션 서버에서 운영됩니다. 사용자는 자신의 컴퓨터나 스마트폰(클라이언트)으로 웹사이트에 접속하여 쇼핑을 합니다.
각 계층이 독립적으로 동작하므로 많은 데이터를 처리할 수 있어 높은 성능을 제공합니다. 데이터 접근이 여러 단계를 거치기 때문에 보안도 아주 강합니다. 또한 필요에 따라 각 계층을 독립적으로 업그레이드할 수 있어 확장성도 좋습니다. 다만, 설정이 복잡하고, 운영 비용이 많이 든다는 것은 단점입니다.
마치며 …
파이썬에서 데이터베이스를 사용해보기 전 데이터베이스에 대한 이해의 폭을 넓히고 있는 중입니다. 이번 포스팅에서는 데이터를 효율적으로 활용하기 위해 데이터베이스 아키텍처에 대해 알아보았습니다. 1티어, 2티어, 3티어 아키텍처 각각의 구조와 장단점을 이해하면, 어떤 상황에서 어떤 아키텍처를 사용해야 할지 알 수 있을 것입니다.
함께 참고하면 좋은 글
▶ 알아두면 좋을 컴퓨터 작동원리. 폰 노이만 아키텍처
▶ 판다스 데이터프레임으로 빠르게 데이터 파악하기
▶ 파이썬 데이터 분석 : 판다스 데이터프레임 통계량, 그래프
▶ 파이썬 판다스로 텍스트 파일 읽기 : read_table()
▶ 파이썬 판다스 데이터 분석 : pivot, 엑셀 입력, 출력
▶ 파이썬 판다스로 엑셀 파일의 원하는 부분 골라 읽기
▶ 호크아이 거래량 지표 (HawkEye Volume Indicator) 파이썬 코딩
참고자료
▶ Wikipedia, Database
▶ IBM, Three-tier architectures
▶ IBM, Architectural characteristics of web-based applications