티스토리 뷰

donaricano-btn
반응형

WAS를 구현하게 된 이유

WAS를 구현하는 것은 원래 지금 다니고 있는 회사의 인턴 과제 중 하나였습니다. 하지만 저는 이 과제에 아주 부정적인 평가를 받았었습니다. 그때는 정규직 전환이 물 건너갔다고 생각을 했었죠. 이후 다행히 정규직 전환은 했으나 부정적인 평가를 받았던 이 프로젝트는 인턴기간 내내 저를 불편하게 만들었습니다.

 

그러던 도중 우연히 우아한 형제들에서 새롭게 시작한 우아한 테크캠프라는 코딩 교육과정에 대해 알게 되었습니다. 이 과정이 시작할 때만 해도 저는 정규직 전환이 결정되지 않은 상태였기 때문에 이 과정을 신청했고 본격적인 수업이 시작되기 전 온라인으로 이뤄지는 프리코스에 참여해 볼 수 있었습니다.

 

그런데 이 우아한 테크코스의 정규 커리큘럼에도 웹 서버를 직접 구현하고 서블릿 컨테이너의 동작 원리를 이해해 보는 과정이 포함되어 있었습니다. 

우아한 테크코스 커리큘럼, '웹 서버를 직접 구현'이라는 단어가 등장한다

웹서버를 실제로 구현해 보는 것이 웹 개발에 있어서 상당히 도움이 되는 부분이라는 생각이 강하게 들었고, 제대로 마치지 못한 인턴시절의 과제를 다시 제대로 완료해 보고 싶었습니다.  마침 모여서 각자 코딩(줄여서 모각코) 모임에 참여하게 되면서 이 시간에 코딩 주제로 WAS를 선택하게 되었습니다.

 

지금부터 이 블로그에 웹 서버의 구현 과정을 한 단계씩 소개하며 저만의 작은 was 를 만들어 보도록 하겠습니다.

 

WAS 구현이 필요한 이유

웹 애플리케이션은 HTTP 프로토콜로 통신하는 네트워크 프로그램의 일종입니다. 그러나 웹 개발자 대부분(아마도?)은 웹 개발을 하면서 스스로 만든 웹 애플리케이션이 어떤 과정을 통해 HTTP 프로토콜을 다루는지 생각하지 않고 있을 것입니다. 대부분 그 일을 WAS(Web Application Server) 제품이 제공하기 때문입니다. 

 

물론 이렇게 네트워크와 관련된 복잡한 하부 작업을 웹 애플리케이션 서버에 위임하고 필요한 비즈니스 로직에 집중하는 편이 훨씬 훨씬 효율적이고 생산성을 높이는 방법임에는 틀림없습니다. 그러나 웹 개발의 영역은 지속적으로 넓어지고 있습니다. 웹 기반으로 제공되는 서비스는 훨씬 거대해지고 복잡한 수준으로 성장했습니다. 이제 웹 개발자가 구현해야하는 비즈니스 로직은 웹 애플리케이션 서버가 제공하는 기능의 단순한 조합 만으로는 힘든 수준에 이르고 있습니다.

 

어떤 종류의 문제가 발생했을 때, 애플리케이션 서버가 담당하는 부분을 제대로 모르고서는 근원적으로 원인규명을 할 수 없는 경우도 존재합니다. 웹 애플리케이션 서버의 내부 구조와 동작원리를 제대로 모르는 웹 개발자가 고성능, 고가용성 등의 대한 요구를 충족시키기 힘들 것입니다.

 

자바의 경우에도 웹 프레임워크 사용이 대중화 되면서 웹 개발자가 서블릿을 사용하여 서비스를 제공하는 일이 점점 줄어들고 있습니다. 하지만 웹 프레임워크도 결국은 서블릿으로 전환되어 서블릿 컨테이너 위에서 처리된다는 점에서 서블릿과 서블릿 컨테이너의 정확한 이해가 웹 프로그래밍에서 차지하는 비중은 여전히 크다고 할 수 있을 것입니다.

 

참고 서적

웹 프로그래머를 위한 서블릿 컨테이너의 이해 - 최희탁 지음, 한빛 미디어, 2014

지난 번 인턴 과제를 진행하며 가장 많이 참고한 것은 바로 이 책입니다. 시중에 서블릿 컨테이너에 대해 상세하게 설명한 서적이 그렇게 많지 않은데 이 책은 아주 얇으면서도 핵심적인 내용을 잘 담고 있습니다. 모든 내용을 다 이해하지는 못했지만 그럼에도 불구하고 큰 도움이 되었습니다.

반응형
donaricano-btn
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함