서버-클라이언트 통신 / WAS-DB서버 연동
2024. 12. 5. 21:04ㆍCS
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)
- SQL (Structured Query Language): DB와 상호작용하기 위한 언어
쇼핑몰 예시 🛒
- 서버-클라이언트 통신
- 사용자가 "상품 검색"을 요청.
- 클라이언트 → 서버: GET /products?name=shoes
- 서버 → 클라이언트: 검색된 상품 리스트 반환.
- 사용자가 "상품 검색"을 요청.
- 서버-DB 상호작용
- 서버는 상품 리스트를 얻기 위해 DB에 쿼리 실행.
- 서버 → DB: SELECT * FROM products WHERE name LIKE '%shoes%';
- DB → 서버: 상품 데이터를 반환.
- 서버는 데이터를 클라이언트가 이해할 수 있는 JSON 형태로 변환해서 반환.
- 서버는 상품 리스트를 얻기 위해 DB에 쿼리 실행.
한 줄로 정리
- 서버-클라이언트: 네트워크 중심의 데이터 요청/응답.
- 서버-데이터베이스: 데이터 처리 중심의 상호작용.
클라이언트 ↔ 웹서버 (Web Server)
- 웹서버는 클라이언트(브라우저나 앱 등)와의 HTTP 통신을 담당하는 서버야.
- 클라이언트가 요청한 정적 파일(HTML, CSS, JavaScript 등)을 제공하거나, 동적인 요청을 WAS로 넘기는 역할을 하지.
- 웹서버는 주로 정적 자원을 제공하고, 클라이언트가 보낸 HTTP 요청을 처리하여 응답을 보내는 일을 해.
- 예를 들어, Apache HTTP Server나 NGINX와 같은 웹서버가 여기 해당돼.
웹서버↔ WAS ↔ Database
- WAS는 클라이언트와의 요청을 받아 DB와 상호작용하고, 비즈니스 로직을 처리하여 그 결과를 웹서버에 전달해.
- WAS는 보통 동적 자원을 처리하는 서버로, 데이터베이스와의 연결, 비즈니스 로직 처리 등 복잡한 작업을 담당해.
- 웹서버가 클라이언트에게 동적인 콘텐츠를 제공하기 위해서는 WAS에 요청을 전달하고, WAS가 데이터를 처리한 후 웹서버에 결과를 넘기는 방식으로 동작해.
- 예를 들어, Tomcat, Jetty, JBoss 같은 서버가 WAS에 해당돼.
정리
- 웹서버는 클라이언트와의 HTTP 통신을 담당하고 주로 정적 파일을 제공
- WAS는 비즈니스 로직 처리 및 DB와의 상호작용을 담당하여 동적인 요청을 처리
관련글 👇
https://hnjee.tistory.com/69?category=1144572