서버-클라이언트 통신 / WAS-DB서버 연동

2024. 12. 5. 21:04CS

 

1. 서버-클라이언트 통신 (Frontend ↔ Backend)

  • 클라이언트(웹/앱)가 사용자 요청을 서버에 전달하고, 서버가 응답을 클라이언트에 보내는 역할.
    예: 브라우저에서 "로그인 버튼"을 클릭하면 서버로 사용자 정보가 전달되고, 서버는 결과를 반환.
  • 주요 기술:
    • REST API, GraphQL, gRPC: 클라이언트와 데이터를 주고받는 방식
    • HTTP/HTTPS: 통신 프로토콜
    • WebSocket: 실시간 양방향 통신
    • 데이터 포맷: JSON, XML

 

2. WAS-DB 연동 (Backend ↔ Database)

  • 서버는 클라이언트의 요청을 처리하기 위해 데이터를 DB로부터 읽거나 쓰는 작업을 수행.
    예: 사용자가 로그인하려고 하면, 서버는 DB에서 해당 사용자의 정보를 검색해 확인.
  • 주요 기술:
    • SQL (Structured Query Language): DB와 상호작용하기 위한 언어
      • 예: SELECT * FROM users WHERE id = 1;
    • ORM (Object-Relational Mapping): 프로그래밍 언어에서 DB를 쉽게 다룰 수 있게 해주는 도구
      • 예: JPA (Java), Hibernate, Entity Framework
    • Database Drivers: 서버와 DB를 연결해주는 소프트웨어
      • 예: JDBC (Java), psycopg2 (Python)

쇼핑몰 예시 🛒 

  • 서버-클라이언트 통신
    • 사용자가 "상품 검색"을 요청.
      • 클라이언트 → 서버: GET /products?name=shoes
      • 서버 → 클라이언트: 검색된 상품 리스트 반환.
  • 서버-DB 상호작용
    • 서버는 상품 리스트를 얻기 위해 DB에 쿼리 실행.
      • 서버 → DB: SELECT * FROM products WHERE name LIKE '%shoes%';
      • DB → 서버: 상품 데이터를 반환.
      • 서버는 데이터를 클라이언트가 이해할 수 있는 JSON 형태로 변환해서 반환.

한 줄로 정리

  • 서버-클라이언트: 네트워크 중심의 데이터 요청/응답.
  • 서버-데이터베이스: 데이터 처리 중심의 상호작용. 
 

 

 

클라이언트 웹서버 (Web Server)

  • 웹서버는 클라이언트(브라우저나 앱 등)와의 HTTP 통신을 담당하는 서버야.
  • 클라이언트가 요청한 정적 파일(HTML, CSS, JavaScript 등)을 제공하거나, 동적인 요청을 WAS로 넘기는 역할을 하지.
  • 웹서버는 주로 정적 자원을 제공하고, 클라이언트가 보낸 HTTP 요청을 처리하여 응답을 보내는 일을 해.
  • 예를 들어, Apache HTTP ServerNGINX와 같은 웹서버가 여기 해당돼.

웹서버↔ WAS ↔ Database

  • WAS는 클라이언트와의 요청을 받아  DB와 상호작용하고, 비즈니스 로직을 처리하여 그 결과를 웹서버에 전달해.
  • WAS는 보통 동적 자원을 처리하는 서버로, 데이터베이스와의 연결, 비즈니스 로직 처리 등 복잡한 작업을 담당해.
  • 웹서버가 클라이언트에게 동적인 콘텐츠를 제공하기 위해서는 WAS에 요청을 전달하고, WAS가 데이터를 처리한 후 웹서버에 결과를 넘기는 방식으로 동작해.
  • 예를 들어, Tomcat, Jetty, JBoss 같은 서버가 WAS에 해당돼.

정리

  • 웹서버는 클라이언트와의 HTTP 통신을 담당하고 주로 정적 파일을 제공
  • WAS는 비즈니스 로직 처리DB와의 상호작용을 담당하여 동적인 요청을 처리

 

관련글 👇

https://hnjee.tistory.com/69?category=1144572

 

3계층형 아키텍처 - 웹 데이터 흐름

1. 클라이언트(프레젠테이션 계층)사용자가 직접 상호작용하는 인터페이스.사용자가 브라우저(또는 모바일 앱)를 통해 웹 서버에 요청을 보냄. (HTTP/HTTPS 통신 프로토콜 사용)브라우저는 요청을

hnjee.tistory.com