오늘은 회사에서 남는 시간에 내가 맡고 있는 서버에 대한 기초지식을 정리해봤음
겉멋만 들고 알맹이는 없는 개발자가 많은데(나임)... 이 글을 통해 서버에 대한 기초 지식을 얻길 바람..ㅎ
우선 내가 맡은 업무는 공공기관 유지보수 업무,
서버는 제우스를 사용하는데 컨테이너별로 주요 업무 용도가 다르다.
그전에
웹 서버란, HTTP프로토콜로 클라이언트의 요청을 제공하는 서비스임

네이버에서 만약 경향신문을 클릭했을 때 넘어가는 화면이

이 화면임 이게 바로 클라이언트(네이버 화면) 에서 아이콘을 클릭 시 넘어가는 정보를 보여주는 (이미지와 글자 내용 등등) 기능을 가지고 있는 게 웹 서버
웹 서버에는 대표적으로 Apache나 Nginx (엔진엑스) 등등이 있음
그럼 이제 WAS(왓스)를 알아야 됨
WAS란 Web Application Server의 약자로 웹 서버에서 애플리케이션만 추가된 거임
웹 서버와 비슷한 역할임!!
특징으로는 서블릿 컨테이너 또는 웹 컨테이너를 제공함
WAS로는 Tomcat이나 JBoss (제이보스), Jeus, WebLogic, WebSphere (웹스피어) 등이 있음.
(웹 서버와 WAS는 실행 환경 느낌)
WEB SERVER와 WAS의 차이점은
웹 서버는 단순 정적인 파일(HTML,CSS 등) 을 처리하는 서버라면
WAS는 동적인 웹 페이지(JSP, Servlet) 를 처리함.
실제 서비스는 웹서버와 WAS를 함께 구성해서 사용하는 경우가 많음
웹 서버가 먼저 요청받고 -> WAS로 넘겨서 처리 후 -> 결과를 다시 전달
WebtoB란 티맥스소프트에서 만든 WAS임
공공기관에서는 대게 WebtoB + jeus 같이 씀
제우스 전에는 웹로직 , JBOSS (Jboss-EWS , Jboss-EAP)
회사에서는 로컬, 개발단, 운영단으로 나뉘는데
개발서버와 운영서버는 모두 제우스를 사용하지만, 로컬에서는 톰캣을 사용한다.
그래도 돼요? 라는 질문에 답변 > 상관없죠, 뭐..
그리고 또 궁금했던 게 공공기관이 왜 제우스를 선택했는지?
서칭결과는 이렇다.
"제우스를 사용하는 이유는 제우스가 국내기업 생산 제품이라 유지보수 엔지니어 지원이 좋고 톰캣은 오픈소스라 책임을 질 사람이 없어서"
여기서 그럼 다른 웹서버를 사용하면 되는 거 아닌가?

라고 하셨다.
웹서버와 WAS를 분리하는 이유는 무엇일까?
정적인 요소와 동적인 요소 처리를 분리하여 부하를 분산시키고,
WAS는 DBMS 연동이 되는 부분이라 보안상의 의미로 분리시키기도 함 -> 웹 서버와 구성되면 그만큼 공격 노출이 쉽기 때문
사실은 웹 서버와 WAS를 분리한다는 개념보단 같이 사용할 수 있는데
굳이 굳이 분리하는 이유 중 하나는 보안이 제일 큼!!
예시로,
웹서버가 인터넷망일 경우 WAS도 인터넷망을 사용하지만 인터넷망은 보안상 안좋기때문에 업무망에 WAS를 놓는 경우가 있음 -> 애초에 들어올 수 없도록 -> 보안에서는 망분리가 가장 좋음
웹 서버 > 인터넷 망
WAS > 업무망
DB > 업무망
그렇다면 다음으로 동작원리는 어떻게 될까?
클라이언트가 요청 -> WebtoB가 요청을 받고 Jeus로 전달하는 방식
사용자 브라우저
↓
웹서버 (WebtoB)
↓
WAS (Jeus)
↓
DB or 내부 로직 처리
↓
응답 생성 (Jeus)
↓
응답 전달 (WebtoB)
↓
사용자에게 최종 응답 전달