웹서비스란

웹 서비스는 클라이언트(사용자)와 서버 간의 상호작용을 통해 데이터를 주고받으며 작동하는 시스템입니다. 이 과정은 HTTP 프로토콜을 기반으로 클라이언트가 요청(Request)을 보내고 서버가 응답(Response)을 반환하는 방식으로 이루어집니다.

 

웹 서비스는 주로 Stateless(상태 비저장) 특성을 가지며, 이는 요청 간에 상태가 유지되지 않음을 의미합니다. 이를 보완하기 위해 Cookie와 같은 기술이 사용됩니다.

구성 요소

1. 클라이언트(Client):

  • 사용자 인터페이스를 제공하며, HTTP 요청을 생성하여 서버로 전달합니다.
  • 클라이언트의 예시: 웹 브라우저, 모바일 앱 등.
  • 요청 방식: GET, POST, PUT, DELETE와 같은 HTTP 메서드.

2. 서버(Server):

  • 클라이언트로부터 요청을 받고 이를 처리한 뒤 응답합니다.
  • 정적 리소스(HTML, CSS, JS 파일) 제공 또는 동적 데이터 생성.
  • 주요 구성 요소: 웹 애플리케이션 서버(WAS), 미들웨어, 데이터베이스.

3. 데이터베이스(Database):

  • 데이터의 영구 저장소로 사용됩니다.
  • 서버 요청에 따라 데이터를 저장하거나 반환합니다.
  • SQL을 통해 데이터를 관리하며, ODBC/JDBC 드라이버를 사용해 서버와 연결됩니다.

요청과 응답의 흐름

웹 서비스의 핵심은 클라이언트 요청과 서버 응답의 흐름에 있습니다. 

 

1. 사용자의 요청:

2. HTTP 요청 처리:

  • 요청은 브라우저에서 HTTP 메서드(GET, POST 등)를 통해 전달됩니다.
  • 요청 헤더(Header)에는 필요한 인증 정보 및 클라이언트 정보를 포함.

3. 서버 응답:

  • 서버는 요청을 분석하고 비즈니스 로직에 따라 데이터를 처리한 뒤 HTTP 응답을 반환합니다.
  • HTTP 응답 코드: 200(성공), 404(리소스 없음), 500(서버 오류) 등.

 

웹 서비스 아키텍처

클라이언트 측 기술

1. HTML (HyperText Markup Language):

  • 웹 페이지의 구조를 정의합니다.
  • 예: <div>, <h1> 태그를 사용하여 콘텐츠 계층화.

2. CSS (Cascading Style Sheets):

  • HTML 요소의 시각적 스타일(색상, 레이아웃 등)을 적용합니다.

3. JavaScript:

  • 동적 콘텐츠와 사용자와의 상호작용을 구현합니다.
  • 주요 역할:
    • 비동기 데이터 요청(예: Ajax).
    • 이벤트 처리(버튼 클릭, 입력 폼 제출 등).
  • 프레임워크 예시: React.js, Vue.js.

서버 측 기술

1. WAS (Web Application Server):

  • 클라이언트의 요청을 처리하고 응답을 생성하는 역할.
  • 주요 예: JSP(Java Server Pages), PHP, ASP.

2. Middleware (미들웨어):

  • 웹 애플리케이션 서버와 데이터베이스 사이의 데이터 흐름을 중재합니다.
  • 역할: 데이터 변환, 보안 정책 적용.

3. Spring Framework:

  • Java 기반의 웹 애플리케이션 개발을 위한 프레임워크.
  • Spring Container를 통해 비즈니스 로직 관리.

데이터베이스와 연결

1. ODBC (Open Database Connectivity) / JDBC (Java Database Connectivity):

  • 서버와 데이터베이스 간 연결을 제공하는 표준 드라이버.
  • 요청에 따라 데이터를 조회하거나 저장.

2. SQL (Structured Query Language):

  • 데이터베이스와의 상호작용을 위한 언어.
  • 주요 명령어: SELECT, INSERT, UPDATE, DELETE.

 

아키텍처 계층 구조

3-Tier Architecture (3계층 구조)

 

웹 서비스는 클라이언트와 서버, 데이터베이스로 구성된 3계층 구조를 따릅니다. 이 구조는 기능을 분리하여 확장성과 유지보수성을 높입니다.

1. Presentation Layer (프레젠테이션 계층):

  • 클라이언트가 직접 상호작용하는 인터페이스 제공.

2. Application Layer (애플리케이션 계층):

  • 비즈니스 로직과 데이터 처리 수행.
  • 주요 기술: Spring Framework, RESTful API.

3. Data Layer (데이터 계층):

  • 데이터 저장 및 관리.
  • 데이터베이스와의 직접적인 연결.

RESTful API

  • HTTP 기반으로 클라이언트와 서버 간의 통신 방식을 정의.
  • 주요 특징:
    • 요청 URL은 리소스를 명확히 식별.
    • HTTP 메서드를 사용하여 작업(GET, POST 등) 지정.

 

보안 및 최적화

보안

1. SSL (Secure Sockets Layer):

  • HTTPS(HTTP + SSL)를 통해 클라이언트와 서버 간 데이터를 암호화하여 전송.

2. Web Application Firewall (WAF):

  • 클라이언트 요청 중 악성 요청을 탐지하고 차단.

3. IPS (Intrusion Prevention System):

  • 네트워크 계층에서 웹 서비스로 향하는 악성 트래픽을 실시간으로 감지 및 차단.

4. Cookie 보안:

  • Key-Value 구조로 사용자의 세션을 관리.
  • 데이터 암호화와 Secure 플래그로 보안 강화.

최적화

1. Application Performance Monitoring (APM):

  • 서버 및 애플리케이션의 성능을 모니터링.
  • 주요 기능: 트래픽 분석, 병목현상 탐지.

2. 캐싱(Cache):

  • 서버와 클라이언트 간 자주 사용하는 데이터의 전달 속도를 향상.

 

'네트워크' 카테고리의 다른 글

IDS, IPS  (2) 2024.11.13
방화벽 Firewall  (0) 2024.01.18
DDoS  (0) 2024.01.10
Well Known Port  (0) 2023.11.10
DNS  (0) 2023.11.10

+ Recent posts