일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- SQL
- localStorage
- useContext
- PathVariable
- Spring
- springboot
- assertequals
- Thymeleaf
- git amend
- react
- mybatis
- passwordencoder
- git reset
- WHEREIN
- oracle
- Variabla
- CRUD
- 부적합한열
- 이딴게개발자
- content-box
- MVC
- git
- Java
- ResultType
- HTML
- JDBC
- BCryptPasswordEncoder
- git revase
- JavaScript
- 배열
- Today
- Total
개발새발
[IT] WAS란 무엇인가? (핵단순 주의) 본문
JSP를 처음 배우면서, 모르는 용어들이 쏟아져서 상당히 힘들었던 기억이 있다.
특히 그 중, '톰캣'이라는 놈이 가장 골치 아팠던 것 같다.
뭔지도 모르는 놈을 어떻게 설치도 하고 적용도 해서 결과물까지 내봤는데..
여전히 이게 정확히 어떤 기능을 하는지 이해가 되지 않는다.
검색해보면 다들 '아아. 이것이 WAS라는 것이다' 만 하고 있는데,
도대체 와스가 뭐야?
.
.
.
해서 나름대로 공부해보는 글
일단 WAS가 무엇인지를 알기 위해서는 우리가 개발하는 웹 서비스의 동작 방식을 먼저 알아야된다.
어떤 사용자가 티스토리를 이용하기 위해 로그인을 시도하는 상황을 가정해보자.
분명 어딘가에는 사용자가 티스토리와 통신을 할 수 있도록하는 존재가 있을 것이다.
이것을 '웹 서버(Web Server)'라고 한다.
웹 서버는 사용자 컴퓨터와 직접적인 통신을 담당함으로써,
사용자 요청을 받고 정보를 전달하는 역할을 한다.
그리고 웹 서버의 역할은 여기에서 끝난다.
말그대로 딱 통신의 매개체 역할만 하고 끝.
그 이상의 기능은 하지 않는다.
그렇다면 사용자가 요청한 정보에 대한 처리는 어떻게 할 것인가?
여기서 WAS의 개념이 필요해진다.
Web Application Server의 약자로,
일전에 웹 서버가 사용자로부터 받아온 요청을 처리하는 것이 바로 이녀석의 역할이다.
둘이 무슨 차이인가 싶은데, 쉽게 말하자면
웹 서버 : 야, 사용자가 로그인 하겠대. 아이디랑 비밀번호는 뭐 이런거 들고왔네 잘 해봐
WAS : 으응... 내가 한번 확인해볼게
이렇게 말하니까 WAS가 무슨 웹서버의 따까리같기도 하다. 아무튼.
그럼 WAS는 사용자가 입력한 정보가 로그인에 적합한지 DB를 확인할 것이고..
데이터를 뒤져서 정보를 찾아내면 또 그것은 웹서버에 전달한다.
WAS : 어.. 내가 찾아봤는데 DB에 없다는데?
웹 서버 : 그래? 그럼 당신은 로그인에 실패했습니다~
돌아가는게 이런식인 셈이다.
굉장히 많은 내용이 생략된 과정일 수도 있지만
아무튼 톰캣이라는게 바로 이렇게 동적인 웹을 만들기 위한 역할을 하는 것이라 보면 될듯하다.
이게 MVC 패턴을 공부하는 중이라 그럴 수도 있는데
웹서버라는 놈은 컨트롤러를, WAS는 꼭 서비스를 담당하고 있는 것처럼 느껴졌다.
정리하자면..
웹서버 : 사용자에게 당장 눈에 보이는 정적인 페이지를 반환
WAS : 그 페이지를 반환해주기 위해 뒤에서 열심히 일하는 놈
그림으로 표현하자면 관계도는 이렇게 되지 않을까.
따지고 보면 WAS가 페이지 반환도 해주고 다 가능은하지만
보통은 서버 부하 방지, 보안 강화 등등의 목적으로 웹서버와 WAS를 분리하는 방법을 채택하는 듯하다.
그러니 위에서 상정한 웹 서비스의 동작 방식은 '일반적으로 이렇다~'라는 것이지
모두가 저 방법을 따르는 것은 아니므로 참고하시길!
'코딩지식' 카테고리의 다른 글
URI / URL / URN (0) | 2024.01.05 |
---|---|
HTTP의 정의 및 구조 (0) | 2024.01.02 |
[Java] 빌드(Bulid) feat.컴파일, 링크 - (1) (1) | 2023.12.03 |