본문 바로가기
교재 실습/자바 웹 프로그래밍 Next Step

5장 웹 서버 리팩토링, 서블릿 컨테이너와 서블릿의 관계

by Jint 2025. 3. 14.

웹 서버를 구현하면서 리팩토링을 거의 하지 않았다. 리팩토링을 하지 않은 결과 https://github.com/slipp/web-application-server 저장소의 was-step1-bad-version 브랜치에 있는 RequestHandler 클래스와 같은 코드를 구현하게 되었다. 자신이 구현한 소스 코드와 비교했을 때 더 깔끔하고 읽기 좋은 코드를 구현했길 기대한다.

실무에서 진행하는 대부분의 프로젝트는 이와 같이 무작정 개발을 시작하지 않는다. 프로젝트 성격과 규모에 따라 다르지만 메서드 수준까지 철저한 설계를 한 후 개발을 시작하는 경우도 있으며, 대략적인 클래스 설계를 한 후 진행하는 경우도 있다. 하지만 대부분의 프로젝트는 프로젝트 요구사항이 명확하지 않고, 프로젝트를 진행하면서 요구사항이 변경되는 경우가 많기 때문에 초반의 설계대로 개발하는 경우는 거의 없다.

그렇다고 설계를 하지 말아야 하는 것은 아니다. 설계는 필요하지만, 설계를 한 번만 해야 한다는 생각을 가질 필요는 없다. 3장의 요구사항을 구현하면서 HTTP 웹 서버에 대한 지식이 많아졌듯이 프로젝트 요구사항에 대한 지식은 프로젝트를 진행하면서 점차 높아진다. 요구사항에 대한 지식이 높아질수록 더 좋은 설계를 할 수 있으며, 더 깔끔한 코드를 구현할 수 있다. 이와 같이 설계는 한 번의 작업으로 끝내야 하는 것이 아니라 애플리케이션을 개발하고 배포해 운영하는 동안 끊임없이 진행해야 하는 것이다. 지속적인 설계와 구현을 잘 할 수 있는 방법이 지속적인 리팩토링이다. 리팩토링은 설계를 개선하기 위한 일련의 활동이다.

4장에서 구현한 HTTP 웹 서버를 리팩토링하면서 설계를 개선하는 경험을 한다.



참고도서 : https://roadbook.co.kr/169

 

[신간안내] 자바 웹 프로그래밍 Next Step

● 저자: 박재성 ● 페이지: 480 ● 판형: 사륙배변형(172*225) ● 도수: 1도 ● 정가: 30,000원 ● 발행일: 2016년 9월 19일 ● ISBN: 978-89-97924-24-0 93000 [강컴] [교보] [반디] [알라딘] [예스24] [인터파크] [샘

roadbook.co.kr

 

댓글