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

2024. 12. 5. 18:41CS

 

1. 클라이언트(프레젠테이션 계층)

  • 사용자가 직접 상호작용하는 인터페이스.
  • 사용자가 브라우저(또는 모바일 앱)를 통해 웹 서버에 요청을 보냄. (HTTP/HTTPS 통신 프로토콜 사용)
  • 브라우저는 요청을 보낼 때 필요한 데이터를 포함해 보냄(쿠키, 헤더 등).

 

2. 웹 서버와 애플리케이션 서버 (애플리케이션 계층)

클라이언트의 요청은 웹 서버로 전달된 뒤, 필요한 작업에 따라 애플리케이션 서버로 전달됩니다.

(1) 웹 서버(Web Server)

  • 역할: HTTP 요청을 처리하고 정적 리소스(HTML, CSS, JS 파일 등)를 클라이언트에 바로 제공.
    • 정적 리소스 요청이라면 웹 서버가 자체적으로 처리하고 응답.
    • 예: 사용자가 이미지를 요청할 경우, 웹 서버가 이미지 파일을 찾아 응답.

(2) 애플리케이션 서버(Application Server)

  • 역할: 동적 요청을 처리하며, 비즈니스 로직을 실행.
    • 웹 서버로부터 동적 요청을 전달받아 데이터베이스와 통신.
    • 예: 사용자가 게시글을 요청하면, 게시글 데이터를 조회하는 로직 실행.

 

3. 데이터베이스 서버 (데이터 계층)

  • 역할: 데이터를 저장하고 애플리케이션 서버의 요청을 처리.
    • 애플리케이션 서버는 데이터베이스에 SQL 쿼리를 전송해 데이터를 가져오거나 업데이트.
    • 예: SELECT * FROM articles WHERE id = 123;
    • 데이터베이스 서버는 요청받은 데이터를 반환하고, 애플리케이션 서버는 이 데이터를 가공 후 클라이언트에 전달.

데이터 흐름 요약

 

1️⃣ 사용자: "이 글을 보고 싶어!"

  • 브라우저(클라이언트)는 HTTP 요청을 생성하고 웹 서버에 전달.

2️⃣ 웹 서버: "이 요청이 동적 콘텐츠 관련이네. 앱 서버에 넘길게."

  • 요청을 애플리케이션 서버로 전달.

3️⃣ 애플리케이션 서버: "이 데이터가 필요하니, 데이터베이스야, 쿼리 좀 해줘."

  • 데이터베이스에 쿼리 요청을 전송.

4️⃣ 데이터베이스 서버: "여기 요청한 데이터를 가져가!"

  • 애플리케이션 서버로 결과 전달.

5️⃣ 애플리케이션 서버: "데이터를 가공해서 클라이언트가 읽을 수 있게 만들어야지."

  • JSON, HTML 등의 형식으로 가공 후 웹 서버로 전달.

6️⃣ 웹 서버: "응답 준비 완료! 클라이언트로 보낼게."

  • 클라이언트에 응답을 반환.

7️⃣ 클라이언트: "요청한 데이터가 화면에 표시된다!"


 

 

여러 기술들이 이러한 웹 데이터의 흐름 안에서 어떤 역할을 하는지를 파악하고, 이후 자세한 내용을 공부하는 것이 필요하다.

예를 들어 REST API는 클라이언트와 서버 간의 데이터 통신을 담당하며, 서버의 엔드포인트를 통해 요청과 응답을 주고받는 방식으로 작동한다. 반면, JPA는 자바 환경에서 애플리케이션 서버와 DB 서버 간의 데이터 처리 및 매핑을 담당하며, 객체 지향적으로 데이터를 다룰 수 있게 도와주는 기술이다.

 

  •