본문 바로가기
📔개발자 일기 | | TIL

[20220521] 개발자 일기 & TIL

by 캔 2022. 5. 21.

TIL 안 쓴 지 한 주가 지났다. 지난주부터 바쁘기도 하고 막히는 문제도 많아지는 것 같아서 조금 TIL을 쉬었다. 계속해서 수정사항이 들어오는 프로젝트도 있었고, 서버가 계속해서 다운되는 사이트도 있었다. 뭐 하나 해결되는 일이 없는 며칠 간이었던 거 같다. 이번 주부터는 Spring Boot로 진행될 프로젝트를 세팅하기 시작했다. 서버 세팅을 받아서 기본 CMS의 기능 정상화와 서버 배포가 이뤄졌다. Boot 프로젝트가 실행이 되지 않고 있어서 고민하고 있다가 팀원들의 도움으로 설정을 변경하였더니 제대로 동작하였다.

 

이런 일들이 어느 정도 정리가 되어(끝나진 않았다) 다시 TIL을 써보기 시작하려고 한다. 오늘은 집에서 Boot 프로젝트를 세팅해보면서 작동이 안 됐던 부분에 대해서 고민해보았다. 회사 프로젝트에서는 Boot 프로젝트를 외장 톰캣을 사용해서 돌리고 있었는데, Boot 프로젝트를 내장 톰캣을 사용하였을 때는 정상적으로 작동이 되지 않았다. JSP 쪽에서 사용하는 스크립틀릿에서 빈 주입이 제대로 되지 않고 있었다. 조금씩 디버깅을 해보면서 내린 결론은 기존에 사용하고 있던 XML 파일을 통한 스프링 설정이 자바 기반 설정으로 완전히 이관되지 않았기 때문이라는 것이다.

 

Spring Boot의 내장 톰캣(Embedded Tomcat)은 기본적으로 자바 기반 설정으로 동작하는 것으로 추정된다. 그렇다고는 들었지만 아직 레퍼런스를 찾지 못해서 확실하게 말하기는 그렇지만, 자바 기반 설정을 권장하는 Spring Boot의 기조상 거의 맞다고 봐야 한다.

 

6.3. Configuration Classes
Spring Boot favors Java-based configuration. Although it is possible to use SpringApplication with XML sources, we generally recommend that your primary source be a single @Configuration class. Usually the class that defines the main method is a good candidate as the primary @Configuration.

- Spring Boot 레퍼런스 중(https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/)

더구나 별도로 명시하지 않으면 자동 설정을 따르는 스프링 특성상 dispatcher-servlet.xml 등 전자정부 프레임워크의 많은 XML 설정들에 대응하는 자바 기반 설정은 없었으므로, 내장 톰캣이 두 가지 방식 중 하나를 따른다고 했을 때 제대로 스프링 컨테이너가 동작하도록 설정되지 못했을 것이다.

 

따라서 우리 회사 프로젝트를 내장 톰캣에서 돌려보고자 한다면 XML 설정 파일들을 모두 자바 기반 설정으로 바꿔줄 필요가 있다. 근데 전자정부 프레임워크라서 제대로 자바 기반 설정으로 모두 바꿔준다고 해서 모두 정상 작동할 보장은 없다. 그래서 결국은 외장 톰캣을 사용해야 할 거 같다. 그래도 가능성 높은 원인을 발견한 데 의의를 두고 싶다.

'📔개발자 일기 | | TIL' 카테고리의 다른 글

[20220612] 개발자 일기  (0) 2022.06.12
[20220604] 개발자 일기  (0) 2022.06.04
[20220511] 개발자 일기 & TIL  (0) 2022.05.11
[20220510] TIL  (0) 2022.05.10
[20220509] 개발자 일기 & TIL  (0) 2022.05.09