울음참고 개발공부
article thumbnail
728x90

 

 

 

 

서버를 설정할 때, Deployment 옵션을 지정하게된다. 

 

내가 진행했던 프로젝트에서는 'WAR exploded' 옵션을 사용하였는데 왜 이 옵션을 사용하였을까?

 

WAR / WAR exploded 옵션은 톰캣(Tomcat) 서버에서 애플리케이션을 배포할 때 방식을 지정하는 방법인데

두 옵션의 차이를 알아보자.

 

 


 

 

WAR ( Web Application Archive)

 

  • WAR 파일 정의 
    • 웹 애플리케이션을 하나의 압축 팡리로 묶은 것
    • JSP, 서블릿, HTLM, CSS, JavaScript, 라이브러리(JAR 파일) 등이 포함됨
  • 작동 방식
    • WAR 파일을 톰캣 서버의 'webapps' 디렉터리에 배포하면, 톰캣 서버가 이 파일을 자동으로 해제하고, 이 애플리케이션을 실행할 준비를 함
  • 특징 
    • 관리 용이 : 파일 하나로 모든 애플리케이션을 포함하므로, 배포하고 관리 하기 쉬움
    • 자동 해제 : 톰캣이 알아서 WAR 파일을 해제하고, 애플리케이션을 실행함

 

 

WAR exploded (해제된 WAR)

 

  • 정의 
    • WAR 파일의 압축을 미리 풀어 놓은 상태 (톰캣 서버에 배포할 때 이미 폴더 구조로 파일들이 해제되어 있는 상태)
  • 작동 방식 
    • 압축을 풀어놓은 폴더를 톰캣의 'webapps' 디렉터리에 배치하면 톰캣이 이 폴더를 그대로 사용하여 애플리케이션을 실행함
  • 특징
    • 빠른 배포 : 이미 압축이 풀려 있으므로 톰캣이 추가로 압축을 해제하는 시간이 필요없음
    • 직접 수정 가능 : 파일이 압축되어 있지 않기 때문에, 톰캣 서버를 재시작 하지 않고도 파일을 직접 수정할 수 있음

 

 

 

 

'WAR exploded' 사용 이유 ? 

 

1. 안정성 ( Stability)

  • 문제방지 
    • 원본 소스는 애플리케이션이 제대로 작동하도록 만들어진 코드이기 때문에 실행할 때 오류없이 정상적으로 동작할 수 있다.
  • 재현 가능성
    • 만약 어떤 문제가 발생했을 때, 원본소스가 존재한다면 이전 상태로 되돌릴 수 있다. 

 

 

2. 유지보수 ( Maintainablility)

 

  • 코드 일관성 유지
    • 팀에서 여러 사람이 함께 일할 때, 모두가 동일한 원본 소스를 사용하는 것이 중요
  • 업데이트 용이성
    • 만약 원본 소스를 변경하지 않았다면, 새로운 업데이트를 적용하기 쉽다. 

 

원본 소스를 건드리지 않고 배포를 원하는 경우에 적합한 방법 ?

👉 'WAR exploded' 상태로 배포 
원본 소스를 건드리지 않는 것은 중요한 문서를 그대로 보관하고, 복사본을 사용해 필요한 작업을 하는 것과 같다

 

 

 

 

 

 

 

두 옵션을 사용하기에 적합한 상황

 

 

위에서 WAR exploded의 장점을 나열했지만 , 이것이 WAR 방식보다 항상 뛰어나다는 것은 아니다. 

 

장단점과 비교해서 각 옵션을 사용하기에 적합한 경우를 보자 

 

  WAR WAR exploded
장점 - 일관된 배포 
  : 하나의 압축 파일로 묶여있어 배포가 간단

- 보안 강화
  : 모든 파일이 압축되어 있기 때문에 개별 파일이 노출될 가능성이 적고 안전함

- 간편한 롤백
 : 문제가 발생했을 때, 기존의 WAR 파일로 쉽게 롤백할수 있음 ( 하나의 파일만 교체하면 되기때문)
- 빠른 수정 가능 
 : 압축되지 않은 상태로 배포되기 때문에, 서버를 재시작 하지않고 직접 수정할 수 있음
( 개발 중이거나 디버깅할 때 매우 유용)

- 배포 속도
 : 이미 압축이 풀려있는 상태기 때문에, 톰캣이 추가로 압축 해제할 필요없어 속도가 빠름

- 파일 접근 용이성 
 : 파일이 폴더 구조로 존재하므로, 특정 파일에 바로 접근하거나 개별 파일만 교체 가능 
단점 - 수정 어려움
- 배포 속도
- 파일 관리 복잡성 
 : 파일이 개별적으로 여러개 존재하므로 일관되게 관리하기 어려움

- 보안 취약성 
 : 파일이 개별적으로 노출되어 있으므로, 보안 측면에서 WAR 파일 보다 취약

- 추적 어려움
 : 여러 파일이 분산되어 있어 특정 버그나 문제 발생시 어느 파일에서 문제가 발생했는지 추적하기 어려울 수 있음

 

 

 

 

언제 사용 ?! 

 

 

WAR 

 

  • 운영 환경(Production) 에서 안정적이고 일관된 배포가 필요할 때 
  • 보안이 중요시되는 환경에서 파일이 직접 노출되는 것을 방지하고 싶을 때

 

WAR exploded

 

  • 개발 중이거나 테스트 환경에서 자주 파일을 수정하고 바로바로 반영해야할 때
  • 특정 파일만 수정하거나 업데이트 하는 상황이 많을 때 

 

 

 

 

가장 어려운 서버 환경설정.. 하나하나 이해해 나가보자 !! 

 

 

 

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!