본문 바로가기
TIL

[TIL] 2025-6-2 웹서비스 관점에서의 OSI7계층 / WAS

by Enhydra lutris 2025. 6. 2.
728x90

네트워크 회사를 다니면서 7계층을 아랫단계에서 부터 보는건 좀 해봤는데

정작 개발자에게 필요한 위에서 부터 바라보고 이해하는것을 각잡고 해보질 않은거 같아서 osi7계층에 대해 정리해 보았고

오늘 배운 WAS에 대해서도 정리해보았다

졸업할때쯤에는 스프링부트를 이용한 프로젝트를 주로 해왔고, 회사에서는 장고를 사용했기 때문에 JSP는 정말 오랜만에 해봤는데

아무래도 개발에 대해서 한참 모를때 배운 내용들이라 더 가물가물한 내용들이여서 이참에 개념들도 비교 정리해보았다! 

 

계층 계층 이름 주요 역할
7계층 응용 계층(Application Layer) 사용자와 가장 가까운 계층. 클라이언트와 서버 간 실제 데이터 송수신
6계층 표현 계층(Presentation Layer) 데이터 포맷 변환, 압축, 암호화
5계층 세션 계층(Session Layer) 세션 연결 및 관리
4계층 전송 계층(Transport Layer) 신뢰성 있는 데이터 전송 (순서, 재전송 등)

 

계층 주요 프로토콜 포맷 설명
7계층 (응용 계층) HTTP / HTTPS 웹 브라우저와 서버 간 요청/응답 처리
  WebSocket 양방향 실시간 통신 (예: 채팅, 알림 등)
  FTP 파일 전송을 위한 프로토콜
  SMTP 메일 송신용 프로토콜
6계층 (표현 계층) HTML / JSON / XML 데이터를 표현하는 포맷 (문서 구조, 데이터 구조 등)
  TLS / SSL HTTPS에서 사용하는 암호화 프로토콜
  GZIP 웹 성능 개선을 위한 데이터 압축 방식
5계층 (세션 계층) 세션 쿠키, JWT 토큰 로그인 상태 유지 방식 (브라우저 기반 세션 유지)
  TLS 세션 TLS 통신에서 세션을 유지하고 재사용 가능하도록 함
4계층 (전송 계층) TCP 연결 기반, 신뢰성 있는 데이터 전송 (3-way handshaking)
  UDP 비연결 기반, 빠른 전송이 필요할 때 사용 (예: 실시간 스트리밍)

 

 

WAS

WAS는 웹 애플리케이션을 실행하기 위한 서버로, 클라이언트의 요청을 받아 비즈니스 로직을 수행하고, 동적으로 결과를 생성하여 응답하는 소프트웨어

 

주요 기능

요청 처리 클라이언트로부터 HTTP 요청 수신 (예: /login, /user/1)
비즈니스 로직 실행 Java, Python, PHP 등으로 작성된 서버 코드를 실행
동적 페이지 생성 DB에서 데이터를 조회하고 HTML, JSON 등의 형태로 응답 생성
세션 및 인증 관리 사용자 로그인 상태 유지, 권한 체크 등
예외 처리 및 보안 에러 처리, 접근 제어 등
멀티스레드 처리 다수의 사용자 요청을 동시에 처리 (스레드 풀 기반)

 

대표 예시

Apache Tomcat 가장 널리 사용되는 Java 기반 WAS, JSP/Servlet 지원
Jetty 경량 WAS, Spring Boot 내장 WAS로 자주 사용
WildFly (JBoss) Java EE(Enterprise Edition) 전체 스펙 지원
Undertow 고성능 논블로킹 WAS, Spring Boot에서도 선택 가능

 

 

JSP를 오랜만에 보면서 JSP 특유의 서버사이드 렌더링 방식이 너무 어색하고 헷갈렸다 ㅜㅜ

그래서 내가 기존에 하던 프로젝트 구조와 JSP의 구조가 뭐가 다른지 찾아보니

내가 기존에 하던 프로젝트는 CSR구조이고 JSP는 SSR 구조 였다!

분명 CSR과 SSR에 대해서 배운적이 있었는데 제대로된 예시를 접해보질 않아서 와닿지 않는 개념이였는데

오늘 JSP를 배우면서 확 와닿았다!!

  CSR (Client Side Rendering)  SSR (Server Side Rendering)
정의 브라우저에서 JS로 렌더링 서버에서 HTML 생성 후 전달
렌더링 위치 클라이언트(프론트엔드) 서버(WAS, 템플릿 엔진)
초기 로딩 속도 느릴 수 있음 (JS 파싱 필요) 빠름 (HTML 바로 전달됨)
사용자 경험 앱처럼 부드럽고 빠름 매 요청마다 전체 새로고침
SEO 기본적으로 불리 (보완 가능) 유리 (HTML에 콘텐츠 포함)
서버 부하 낮음 (렌더링 클라이언트 처리) 높음 (매 요청마다 HTML 생성)
통신 방식 REST API (JSON 주고받기) 폼 전송 또는 내부 변수 렌더링
구조 프론트-백 분리 (SPA + API) 프론트-백 통합 (JSP, PHP 등)
예시 기술 React, Vue, Angular + Spring Boot, Django REST 등 JSP, PHP, Thymeleaf, Django(템플릿) 등

'TIL' 카테고리의 다른 글

[TIL] 2025.5.29 SQL서브쿼리  (0) 2025.06.02
[TIL] 2025.5.30 알고리즘 기초  (0) 2025.06.02
[TIL] 2025-5-28 MySQL 내장 함수 / 조인  (0) 2025.05.28
[TIL] 2025-5-27 sql  (0) 2025.05.28
[TIL] 2025-5-26 DML, DCL, TCL  (0) 2025.05.28

댓글