웹프로그래밍 현업에서 스프링프레임워크가 많이 사용되나요?
현 웹프로그래밍 트렌드가 JSP보다는 PHP쪽인 것 같은데
현업에서 스프링 프레임워크로 개발하는 곳이 많이 있나요?
아 그리고 스프링 프레임워크와 스프링 부트의 차이점도 알려주시면 감사하겠습니다
현업에서 PHP도 많이 쓰이지만 스프링 프레임워크도 아직 많이 쓰입니다.
몇군데 이직을 하면서 느꼈는데, 특히 설계, 보안, 게임회사 등에서 많이 쓰이는 것 같네요.그리고 이거는 전적으로 제 개인적인 의견입니다..제가 생각하는 스프링 부트로 개발해야 할 것과 기존 스프링 MVC로 개발해야 할 구분은..현재로써 차이는 이런거 같네요..
예를 들어 웹 페이지 형태의 모니터링 어플리케이션을 들어보죠..이 모니터링 어플리케이션은 웹 기반이기 땜에 Tomcat이 됐든 WAS가 됐든 적어도 Web Container가 설치되어 있어야 합니다..그러나 상대적으로 이런 모니터링 어플리케이션은 규모(?)가 작은 편이에요..즉 우리가 흔히 만드는 웹사이트보다는 규모가 작죠..그러나 그런 규모의 어플리케이션을 돌리게 하기 위해 돈 주고 서버에 WAS를 설치하는 것은 배보다 배꼽이 크죠..작은 어플리케이션을 실행시키기 위해 그거보다 큰 WAS를 설치하는거죠..이렇게 Web 기반 UI 형태의 단독 stand alone 스타일의 어플리케이션을 개발한다면 그땐 스프링 부트로 만든 웹어플리케이션이 적당하다고 봅니다. 스프링 부트에서 제공되는 임베디드 컨테이너에서 실행이 되게끔 해서 단독 어플리케이션이 실행되는거지만 그 내부에서는 임베디드 컨테이너가 실행되면서 그 안에 자신의 어플리케이션이 돌아가는 구조인거죠..그러나 웹사이트를 이런 구조로 만드는 것은 문제가 있고 오히려 이런건 스프링 MVC 형태로 만들어서 WAS에 디플로이 시키는 스타일이 낫죠..또한 이쪽에서 얻는 이익도 있죠..WAS에서 관리되는 데이터소스나 메시지 서비스를 이용할 수 있으니까요..
엔터프라이즈급 서비스를 해야되는 대부분 많은 곳에서 스프링을 사용합니다.
엔터프라이즈급에서 반드시 필요로 하는 트랜잭션, 로깅, 분산처리등의 여러가지 복잡한 기술과 많은 thrid-party 라이브러리들을 스프링에서 이미 추상화 하고있기 때문에 개발자로 하여금 비니지스 로직 개발에 집중할 수 있도록 도와주기 때문입니다.
전자정부 프레임워크도 스프링 기반이기 때문에 거의 모든 공공 기관 프로젝트와 현 운영중인 시스템 대부분이
스프링으로 구축 개발되고 있습니다.
최근 수 년사이에 많은 신규 서비스업체가 생기면서 Node.js 나 Ruby 등 빠르게 개발 할 수 있는 언어를 사용하는 곳도 많아 졌지만
아직까지도 국내에서는 스프링이 주라고 할 수 있습니다.
스프링부트와 스프링은 서로 다른건 아니고 스프링부트가 스프링의 superset 으로 보시면 됩니다.
스프링을 사용하기 위한 각종 xml configuration 을 스프링 부트를 사용하면서 암묵적인 기본설정과 어노테이션과 자바config 기반으로 쉽게 사용할 수 있게 해주는 프레임워크입니다. 그리고 스프링부트에는 기본적으로 embed container 들이 탑재돼 있어서
별도의 WAS 없이 standalone 하게 실행 가능합니다. 스프링팀에서도 요즘에 스프링을 사용한다고 하면 스프링부트를 사용하는 걸 권장하고 있습니다.