본문 바로가기
☕Java/Java EE(Jakarta EE)

자바 웹 애플리케이션 구조

by 캔 2022. 6. 13.

웹 개발을 한다는 것은 WAS(Web Application Server)에서 실행할 수 있는 웹 애플리케이션을 만드는 것이다. 웹 애플리케이션도 역시 프로그램이고 사람이 작성한 소스 코드대로 컴퓨터가 명령어를 실행한다. 간단한 프로그램을 만든다고 했을 때는 개발자가 모든 로직을 스스로 구현하는 것이 가능하다. 하지만 그 규모가 커지고 반복적인 작업이 많아짐에 따라 다른 사람이 작성한 코드를 가져다가 쓰게 된다. 결국 하나의 애플리케이션은 자신이 작성한 코드와 다른 사람들이 작성해 놓은 라이브러리가 결합되어 있는 구조이다. 자바 웹 애플리케이션 구조도 그와 같다.

Web Application
  │
  └─WEB-INF
         │  
         ├─ classes
         │  
         ├─ lib
         │
         └─ web.xml

자바 웹 애플리케이션 코드를 작성하고 빌드해보면 위와 같은 구조를 가진다. 자바로 작성한 코드는 클래스 파일로 컴파일된다. 이 클래스 파일들이 위치하는 곳이 classes 디렉터리이다. 그리고 코드를 작성할 때 불러와서 썼던 라이브러리도 애플리케이션에 포함시켜줘야 애플리케이션을 실행시킬 수 있는데 그 라이브러리는 lib 디렉터리에 들어간다. 즉, 내가 쓴 코드는 classes에, 남이 써놓은 코드는 lib 디렉터리 안에 들어 있다는 것이다.

 

한편, 이런 단순한 구조 외에 web.xml 파일이 보이는데 이는 웹 애플리케이션을 실행할 때 필요한 설정 파일이다. 웹 애플리케이션이 시작할 때 어떤 서블릿, 필터, 리스너 등을 불러와야 할지 정해놓는 문서인데, 서블릿 스펙 3.0 이후에는 web.xml이 없어도 동작할 수 있도록 바뀌었다. 이에 대해서는 다음번에 자세히 설명해보려고 한다.

 

단순하게 정리해보면, 웹 애플리케이션은 내가 작성한 코드의 클래스 파일들과 다른 사람들이 미리 작성해 놓은 라이브러리로 구성된다고 볼 수 있다.