인프런 커뮤니티 질문&답변

wisehero님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

50강. Spring과 Spring Boot

내장 톰캣에 대해 궁금한게 있습니다.

24.02.12 19:42 작성

·

1.8K

·

수정됨

1

스프링부트에부터는 내장 톰캣을 사용하는거엔 익숙해져 있는데,과거에는 RedHat JBoss와 같은 외장 WAS들을 사용했다고 하던데 이로 인해 발생하는 단점 같은 것은 없을까요? 예를 들어 기술 지원을 더이상 받지 못한다던가.. 외장 WAS들이 가지고 있는 장점이 사라진다거나 성능의 차이같은 것은 없는지 궁금합니다.

 

검색을 해보았을 땐 내장 톰캣이 아파치 톰캣 개발자들도 내장 톰캣의 사용에 문제가 없다라고 했다던지, 성능 차이가 크지 않다는 자료들은 찾았는데 아직 여전히 스프링부트를 사용하지 않는 회사들이 많다고 알고 있습니다. 강의 내용처럼 이렇게 편리하다면 스프링부트의 버전업은 몰라도 스프링'만' 쓰는 회사들이 시스템을 스프링부트로 업그레이드 하지 않을 이유는 없을 것 같아서요!

 

친절한 강의 감사드립니다. 태현님!

답변 1

0

최태현님의 프로필 이미지
최태현
지식공유자

2024. 02. 12. 21:23

안녕하세요! wisehero님! 좋은 질문 감사드립니다~ 😊

 

결론부터 말씀드리면 제가 알고 있기로도 외장 WAS와 내장 WAS의 성능 차이는 없는 것으로 알고 있습니다. (물론 같은 버전, 같은 상황 일때요!!) 다만 여전히 스프링'만' 사용하고 있는 회사들이 있는 이유는 다음과 같다고 생각해주시면 됩니다. 아래는 제 개인적인 의견입니다.

 

[1. 버전업 생각보다 쉽지 않다]

생각보다 버전을 올리는 것은 쉽지 않습니다. 개발자가 4~5명 정도만 있는 소규모 회사라도 코드는 10만~20만 line이 충분히 넘을 수 있습니다. 만약 개발자 규모가 그보다 더 크다면 수십만, 수백만 line의 코드가 있는거죠.

이런 코드 베이스를 가진 채로 자바나 스프링의 버전을 올리는 것은 꽤 어려운 작업입니다.

심지어, 단순히 버전을 올리는 것이 아니라, 설정 체계 자체를 바꾸어 스프링 -> 스프링 부트로 이관하는 것은 더욱더 어렵다고 생각됩니다. 회사가 기능 개발을 멈출 수 없는 상황이라면,

  • 스프링에서 기능이 추가되고 있는 버전과

  • 기능은 추가되지 않은 채 스프링 부트로 바뀌어 가는 버전

이 있고, 해당 버전이 결국 합쳐져야 하는 시점에도 추가적인 혼란이 찾아올 수 있죠.

 

또한 반드시 스프링 부트로 바꾸어야만 하는가도 생각해볼 필요가 있습니다.

지금 프로덕트가 잘 돌아가고 있다면, 회사 리더들의 판단에 따라 굳이 리소스를 들이지 않기로 판단할 수도 있어요. 부채를 적절하게 사용하면 더 빠르게 목표에 도달할 수 있는 것처럼, 기술 부채도 적절하게 사용해야 할 때가 있거든요!

 

[2. 스프링 부트에 익숙한가]

기존 구성원들이 스프링 부트에 익숙하지 않을 수 있습니다. 스프링 부트는 스프링 프레임워크에서 동작하고 있지만, Auto Configuration이나 starter 등 기존의 스프링과는 다른 점이 분명히 존재하고, 이는 스프링에만 익숙한 분들이 새롭게 배워야 하는 진입 장벽으로 작용할 수 있습니다.

그렇다면 다시 1번과 맞물려, 스프링 부트로 전환하는 작업 자체도 쉽지 않은데, 익숙하지 않은 툴까지 써가면서 해당 프로덕트를 업그레이드 해야 하는지 고민을 하게 되고 이는 전환을 어렵게 만드는 요소라고 생각합니다.

 

다만 제 개인적으로 아직까지 스프링'만' 사용하는 비율이 높을지 스프링 부트를 사용하는 비율이 높을지는 모르겠습니다. 제 주위에서는 스프링 부트를 사용하고 있는 비율이 압도적으로 높았는데, 전국이나 전세계의 통계를 알고 있지는 못하다 보니 어느 정도의 비율로 각 기술을 사용하는지는 정확히 모르겠습니다 🥲

 

답변이 도움이 되었으면 좋겠습니다. 감사합니다! 🙏

wisehero님의 프로필 이미지

작성한 질문수

질문하기