아키텍쳐와 객체지향
웹 애플리케이션 시스템의 기본 구조
모든 웹 애플리케이션의 근간에는 클라이언트-서버 아키텍쳐가 있습니다. 이는 서비스를 요청하는 사용자(클라이언트)와 요청을 처리하여 결과를 반환하는 중앙 컴퓨터(서버)로 시스템의 역할을 분리하는 모델입니다. 이 모델은 기술의 발전에 따라 그 구조를 달리하며 진화해왔습니다.
전통적 구조 (2-Tier)와 개선된 구조 (3-Tier)
초기의 2-Tier 아키텍쳐는 클라이언트와 서버가 직접 통신하는 단순한 구조였습니다. 이 방식은 데이터 처리를 중앙 서버에서 공통으로 관리할 수 있다는 장점이 있었지만, 애플리케이션 로직의 변경이 생길 때마다 모든 클라이언트의 프로그램을 재설치해야 했고, 클라이언트가 데이터베이스에 직접 접근함에 따른 보안 취약점을 가지고 있었습니다.
이러한 한계를 극복하기 위해 등장한 것이 바로 현대 웹 애플리케이션의 표준 구조인 3-Tier 아키텍쳐입니다. 이 구조는 시스템의 역할을 세 개의 논리적인 계층으로 명확하게 분리하여 유연성과 보안을 크게 향상시켰습니다.
3-Tier 아키텍쳐의 세 가지 계층
- 프레젠테이션 계층 (Presentation Layer)
사용자와 직접 상호작용하는 최상위 계층으로, 주로 웹 브라우저가 이 역할을 담당합니다. 이 계층의 책임은 오직 사용자 인터페이스(UI)를 표시하고 사용자 입력을 받는 것에 한정되며, 흔히 프론트엔드(Front-end) 영역으로 불립니다. - 비즈니스 계층 (Business Logic Layer)
시스템의 핵심 로직을 전담하는 중간 계층입니다. 애플리케이션 서버(WAS)가 이 역할을 수행하며, 클라이언트의 요청에 따라 데이터 유효성을 검사하고, 복잡한 연산을 처리하며, 트랜잭션을 관리합니다. 미들웨어 또는 백엔드 영역의 일부로 분류됩니다. - 데이터 계층 (Data Access Layer)
모든 데이터를 영구적으로 저장하고 관리하는 최하위 계층입니다. 데이터베이스 관리 시스템(DBMS)이 여기에 해당하며, 비즈니스 계층의 요청에 따라서만 데이터를 조회하거나 수정합니다. 이 역시 백엔드 영역에 속합니다.
객체지향
객체지향은 '효율적인 구축'을 위한 핵심적인 프로그래밍 패러다임입니다. 기능의 순차적 나열에 집중했던 과거의 절차지향 방식과 달리, 객체지향은 데이터와 그 데이터를 처리하는 행위를 하나로 묶은 '객체'들의 상호작용으로 시스템을 바라봅니다.
객체지향의 4가지 핵심 원칙
- 추상화 (Abstraction)
복잡한 요소를 단순화하여 핵심적인 속성과 행위만을 추출해 표현하는 것입니다. 클래스는 이러한 추상화를 통해 객체를 만들기 위한 설계도 역할을 합니다. - 상속 (Inheritance)
기존 클래스의 속성과 기능을 새로운 클래스가 그대로 물려받아 재사용하는 개념입니다. 코드의 중복을 줄여 개발 효율성을 극대화합니다. - 다형성 (Polymorphism)
동일한 요청(메서드 호출)에 대해 각 객체가 자신만의 방식으로 다르게 반응하는 특성입니다. 이를 통해 코드를 유연하고 확장 가능하게 만들 수 있습니다. - 캡슐화 (Encapsulation)
관련된 데이터와 행위를 하나의 객체로 묶고, 내부의 복잡한 구현은 외부로부터 숨기는 것을 의미합니다. 객체는 공개된 인터페이스를 통해서만 외부와 상호작용하여 시스템 전체의 안정성을 높입니다.
객체지향 분석과 설계
객체지향 방법론은 아이디어를 실제 소프트웨어로 구현하는 체계적인 과정을 제공합니다.
객체지향 분석 (OOA)은 '무엇을 만들 것인가'를 정의하는 단계입니다. 사용자 요구사항을 분석하여 시스템에 필요한 객체들과 그들의 관계를 식별하고 모델링합니다.
객체지향 설계 (OOD)는 '어떻게 만들 것인가'를 결정하는 단계입니다. 분석 단계에서 도출된 모델을 바탕으로, 재사용성을 고려하여 클래스 구조를 구체화하고 시스템의 전체적인 아키텍쳐를 설계합니다.
정리
2-Tier 아키텍쳐는 구조가 단순해 개발이 용이할 수 있으나, 재사용성과 성능, 관리 측면에서 한계가 명확합니다. 그러나,3-Tier 아키텍쳐는 비즈니스 로직을 모듈화하여 재사용성을 높이고, 부하 분산을 통해 안정적인 성능을 보장하며, 각 계층의 모니터링이 용이해 시스템 관리에 유리합니다.
현대 웹 애플리케이션이 3-Tier 아키텍쳐라는 견고한 구조 위에서 동작하며, 객체지향이라는 설계 철학을 통해 복잡성을 관리하고 있음을 이해했습니다.
'웹서비스와애플리케이션' 카테고리의 다른 글
| HTTP (0) | 2025.10.17 |
|---|---|
| 웹 브라우저의 역할과 기능 (0) | 2025.10.16 |
| 웹서비스 아키텍처의 구성 (0) | 2025.09.23 |
| 웹의 동작 원리, 인터넷 아키텍처와 동적 콘텐츠 (0) | 2025.09.03 |