웹의 구조
웹은 클라이언트와 서버 간의 통신으로 구성된 시스템이다. 클라이언트는 서버에 HTTP 요청을 보내고, 서버는 해당 요청에 대한 데이터를 응답한다.
요청을 보내는 쪽을 클라이언트 컴퓨터라고 하고, 요청을 받아 처리하는 쪽을 서버 컴퓨터라고 하며, 이 과정에서 HTTP 통신 방식이 사용된다.
웹 서버(Web Server)
클라이언트의 HTTP 요청에 따라 정적 콘텐츠(HTML, 이미지, CSS파일 등)를 제공하는 역할을 한다.
요청된 파일을 찾아 전송하는데 최적화되어 있다.
장점
- 빠른 응답 속도: 정적인 파일을 처리하는 데 최적화되어 있어 빠른 응답을 제공합니다.
- 단순한 구조: 요청을 단순히 파일 시스템에서 찾아 반환하는 방식이기 때문에 구조가 단순하고 빠릅니다.
ex) Apache, Nginx, Microsoft IIS등
웹 애플리케이션 서버(WAS- Web Application Server)
동적 웹 애플리케이션을 실행하고 처리하며, 정적 리소스도 제공할 수 있는 서버다. HTTP기반으로 동작하며, 서블릿, JSP, 스프링 MVC 등의 기술을 사용해 애플리케이션 로직을 수행하고 동적 HTML 및 HTTP API(JSON)를 생성한다.
장점
- 동적 콘텐츠 처리: 복잡한 비즈니스 로직을 서버 측에서 처리하고, 클라이언트에게 동적으로 생성된 콘텐츠를 제공합니다.
- 확장성: 애플리케이션 서버는 더 많은 기능을 제공하므로, 고급 비즈니스 로직과 엔터프라이즈급 애플리케이션에 적합합니다.
ex) Tomcat, Jetty, Undertow 등
웹 서버, 웹 애플리케이션 서버(WAS) 차이
구분 | 웹 서버(Web Server) | 웹 애플리케이션 서버(Web Application Server) |
주요 역할 | HTTP 요청을 받아 정적 콘텐츠 제공 | 동적 콘텐츠 생성 및 서버 -side 로직 처리 |
처리하는 콘텐츠 | 정적 콘텐츠(HTML, 이미지, CSS 등) | 동적 콘텐츠 (서버 -side 스크립트 실행, 데이터베이스 연동 등) |
비즈니스 로직 | 없음 | 있음 (비즈니스 로직 실행) |
예시 | Apache HTTP Server, Nginx | Apache Tomcat, JBoss, WildFly, GlassFish 등 |
언어 및 프레임워크 지원 | 주로 HTML, CSS, JavaScript | Java, PHP, Python, Ruby, .NET 등 다양한 언어 지원 |
데이터베이스 연결 | 직접 처리하지 않음 | 데이터베이스와의 연결 및 CRUD 작업 처리 |
세션 관리 | 기본적인 세션 관리(세션 파일 처리) | 고급 세션 관리 기능(예 : 클러스터링, 지속적인 세션 유지) |
Tomcat이란?
아파치 소프트웨어 재단의 웹 애플리케이션 서버(Web Application Server, WAS)
자바 서블릿을 실행시키고 JSP코드가 포함되어 있는 동적 웹 페이지를 구동시켜 주는 프로그램
Tomcat의 주요 특징
1. 서블릿 컨테이너(Servlet Container)
- Tomcat은 서블릿과 JSP의 실행을 위한 컨테이너 역할을 합니다.
- 서블릿은 Java로 작성된 서버-side 애플리케이션으로, 클라이언트의 요청을 처리하고 응답을 생성하는 기능을 담당합니다.
- JSP는 HTML과 Java 코드를 혼합하여 작성하는 서버-side 페이지입니다. Tomcat은 이 JSP 파일을 서블릿으로 변환하여 실행합니다.
2. 유명한 Java 웹 서버
- Tomcat은 Java 웹 애플리케이션 서버 중 가장 많이 사용되는 서버 중 하나로, 많은 기업과 개발자가 선택하고 있다.
Tomcat의 구성 요소
구성 요소 | 역할 |
Cataline | Tomcat의 핵심인 Servlet 컨테이너(Servlet을 실행하는 역할) |
Coyote | 클라이언트의 HTTP 요청을 받아 처리하는 웹 서버 역할 |
Jasper | JSP(Java Server Pages)를 Servlet으로 변환하고 실행하는 JSP 엔진 |
Realm | 사용자 인증과 권한을 관리하는 보안 관리 모듈 |
Cluster | 여러 개의 Tomcat 서버를 묶어 로드 밸런싱 및 세션 복제를 제공 |
Valves | 요청과 응답을 가로채어 로깅, 필터링 등의 추가 기능을 제공 |
Connectors | Tomcat과 외부 웹 서버(Apache, Nginx)와 연동하는 역할 |
이제 Tomcat을 사용하기 위해 Tomcat 설치과정과 설정방법들을 알아보자
1. 구글에 Tomcat 검색
2. Download 클릭
3. 왼쪽의 다운로드 Tomcat 10(자신이 설치한 자바 버전이랑 tomcat의 자바 버전이랑 일치해야 한다.
4. Binary Distributions -> 64-bit Windows zip 설치
5. 다운로드받은 압축파일 풀기
6. 새로운 폴더를 만들고 이클립스(Eclipse)로 해당 폴더 열기
7. window → preferences에서 utf8설정을 해준다
7-1) general → editors → text editors → spelling → encodeing
7-2) web → css files, html files, jsp files전부 encodeing
7-3) json → json files, xml → xml files 전부 encodeing
8. window → preferences → XML(web) → Download extemal resources like referenced DTD, XSD체크
9. window → preferences → server runtime environments에 다운로드한 tomcat 10.1 추가
10. Compiler 검색 후 버전 확인 17
11. 아래쪽 severs에 tomcat10.1 서버 추가
12 아래쪽 생성된 서버 더블클릭 후 http포트번호 변경(ex. 8888), 서브모듈 위다웃 퍼블리싱 체크 후 저장
13. 왼쪽 프로젝트목록에서 오른쪽마우스 클릭 후 다이나믹 웹프로젝트 생성
13-1) 프로젝트명입력 후 next
13-2) default output filder에 src/main/webapp/WEB-INF/classes경로 입력 후 next
13-3) generate web.xml deployment descriptor 체크 후 finish
14. 아래 servers에서 서버오른쪽 클릭 후 add → 웹프로젝트 생성한 것 추가해 주면 완료