본문 바로가기

전체 글266

[20220619] 개발자 일기 한 주 동안 너무 큰일이 있었다. 입사 후부터 계속 골치였던(스파게티 코드와 잦은 서버 다운으로 악명 높았던) 그 웹사이트가 결국 폭파돼버렸다. 전말은 이렇다. 필자는 그 사이트의 서버가 다운될 때마다 재부팅을 해주는 작업을 해주고 있었다. 서버 이관을 바라 왔지만 추가 비용을 원치 않았던 그 고객사는 계속 재부팅을 요청해왔다. 여느 때와 다름없이 재부팅 요청을 받고 재부팅을 해주려고 ssh를 켜고 재부팅을 시도했다. 그런데 톰캣 서버가 죽지 않았다. 이런 적이 몇 번 있어서 셧다운 명령어를 몇 번 쳐주고 다시 시작해보고 호스팅 업체의 재부팅 기능을 사용해보았지만 서버가 다시 시작되지 않았다. 뭔가 이상해서 ftp로 파일 트리를 본 순간 가슴이 철렁할 수밖에 없었다. 서버 안에 있던 리소스 파일과 클래스.. 2022. 6. 19.
web.xml이란? 앞서 자바 웹 애플리케이션 구조를 살펴보았다.(https://lifewithcoding.tistory.com/207) 웹 애플리케이션 구조에서 보았던 web.xml 파일에 대해 자세히 알아보자. 자바 웹 애플리케이션을 빌드하여 패키징한 war 파일 내부를 보면 web.xml 파일이 존재한다. 이 web.xml 파일은 배포 기술서(Deployment Descriptor)라고도 하는데, 웹 애플리케이션을 실행할 때 필요한 설정들을 담고 있다. web.xml에 서블릿, 필터, 리스너를 등록할 수 있다. 웹 애플리케이션은 요청이 들어오면 그 요청을 수행할 컨트롤러를 찾아 작업을 수행하도록 하고 그 결과를 응답으로 전송한다. 그 과정에서 어떤 URI로 요청이 들어왔을 때 어느 서블릿에게 요청을 전달할 것인지 매핑.. 2022. 6. 19.
자바 웹 애플리케이션 구조 웹 개발을 한다는 것은 WAS(Web Application Server)에서 실행할 수 있는 웹 애플리케이션을 만드는 것이다. 웹 애플리케이션도 역시 프로그램이고 사람이 작성한 소스 코드대로 컴퓨터가 명령어를 실행한다. 간단한 프로그램을 만든다고 했을 때는 개발자가 모든 로직을 스스로 구현하는 것이 가능하다. 하지만 그 규모가 커지고 반복적인 작업이 많아짐에 따라 다른 사람이 작성한 코드를 가져다가 쓰게 된다. 결국 하나의 애플리케이션은 자신이 작성한 코드와 다른 사람들이 작성해 놓은 라이브러리가 결합되어 있는 구조이다. 자바 웹 애플리케이션 구조도 그와 같다. Web Application │ └─WEB-INF │ ├─ classes │ ├─ lib │ └─ web.xml 자바 웹 애플리케이션 코드를 작.. 2022. 6. 13.
[20220612] 개발자 일기 이번 주부터는 새로운 프로젝트 구축을 시작했다. 스프링 부트와 JPA를 사용하게 되었는데 그에 따라 추가적인 공부가 필요하다. 기존에 만들어져 있던 프로젝트를 개선하면서 진행해보기 위해 web.xml 등 XML 파일을 사용하지 않고 자바 기반 설정으로 변경해주었다. 자바 기반 설정으로 바꾸기 위해 빈을 등록하는 건 매우 쉬운데 필터나 리스너, 인터셉터 등을 마이그레이션 해주는 게 조금 까다로워서 자료를 많이 찾아봐야 했다. 결과적으로는 잘 작동해서 기분이 아주 좋았다. 자바 기반 설정으로 변경하는 이유는 일단 web.xml을 기술하는 방식 자체가 이미 구식이고, 소스 외에 정적인 문서들이 프로젝트를 구성하는 것이 그다지 좋아 보이지 않았다. WEB-INF 이하의 경로에 클래스 파일, 라이브러리 파일만 있.. 2022. 6. 12.
728x90