brunch

You can make anything
by writing

C.S.Lewis

by 한마디썰 Dec 20. 2023

스프링과 스프링부트의 차이

채워Dream. 셀프 마라탕과 주문 마라탕의 관계

스프링(Spring Framework)과 스프링부트(Spring Boot)의 차이는 뭐예요?

Java 강의와 Spring 강의 때면 한 번은 꼭 듣는 질문이다.

보통 이런 유의 답변을 한다.

스프링을 더 쉽게 사용할 수 있도록 구성 정보와 설정을 제공하는 것이 스프링부트입니다.

언제인지 기억은 안 나지만 강사인 내가 그렇게 답변을 하니 고개는 끄덕이지만 뭔가 더 설명해주었으면 하는 학생 한분이 계셨다.


Boot 혹은 Booting의 의미를 아세요?

Boot 혹은 Booting은 컴퓨터를 시동하여 OS를 시작하는 Bootstrap의 과정이다.

어렵다. 쉽게 말하면 컴퓨터를 키는 것(전기를 공급하는 작업)을 Boot이라고 한다.

컴퓨터는 전기를 공급하여 윈도우라는 OS 화면을 보기까지 꽤나 많은 작업이 내부에서 이뤄져야 하지만 우리 대다수는 그것이 어떻게 작동되는지 모르고, 단지 버튼을 하나 누르면 컴퓨터는 부팅된다.

바로 이것이 스프링과 스프링부트의 차이점이다.


셀프 마라탕과 주문 마라탕의 관계예요

요즘 MZ세대에게 마라탕이 인기다. 친구들끼리 만나면 마라탕 먹고, 인생네컷 찍고, 탕후루 먹고 하는 것이 MZ의 문화이자 놀이다.

셀프 마라탕은 메뉴가 모두 준비되어 있고, 내가 원하는 것을 조합하여 직접 최상의 맛을 조합해야 한다.

장점은 나에게 맞는 최상의 조합을 만들 수 있다는 점이고, 단점은 최상의 조합을 찾는 것은 매우 어렵다. 조리는 내가 안 하니까

주문 마라탕은 이미 검증된 대중에게 가장 인기 있는 최상의 맛을 조합으로 이뤄져 있다.

장점은 검증받은 대중적인 맛이므로 기본 이상은 한다. 단점은 주문 마라탕만 먹다 보면 나만의 환상의 조합은 영원히 못 찾는다.


셀프 마라탕은 스프링이다.

우리가 프로젝트하기 위한 모든 것은 이미 Spring에 준비되어 있다.

프로젝트는 유일성(Unique)이라는 속성을 갖는다. 프로젝트마다 구축해야 하는 최상의 조합은 분명히 존재한다. 하지만 그 조합을 찾기란 정말 어렵다. 하지만 우리 선배님들은 셀프 마라탕으로 최상의 조합을 찾기 위한 시도를 했고, 많이들 실패하셨다. 최상의 조합을 찾는 건 어려우니까


주문 마라탕은 스프링 부트이다.

우리 프로젝트는 거의 대부분이 웹이다. 웹 서비스를 구축하여 사용자에게 제공하는 것이 대부분이다.

대부분이 웹 프로젝트이므로 웹을 통하여 서비스를 구축하는 것들로 조합되어 있다면 기본적인 서비스를 구축하여 제공할 수 있다. 다만 이번 프로젝트에서 내가 안 써 본 기술을 적용해야 하는데 스프링부트에 없는 기능이라면? 매우 난감할 것이다. 예전보다 스프링부트에서 지원되는 기술, 기능이 많다고 하지만 모든 것이 다 되는 것은 아니다.


그럼 스프링을 먼저 배워요? 스프링부트를 먼저 배워요?

답변을 드리면 당연히 이 질문 나온다. 나올 수 밖에는 없다.

사실 닭이 먼저냐 달걀이 먼저냐와 같은 물음이다. 하지만 취업을 준비 중인 학생들에게는 중요한 물음이다.

불과 몇 년 전만 해도 스프링을 먼저 배우라고 했다. 스프링을 어느 정도 알고 있으면 스프링부트를 구성하고 사용하는데 굉장히 큰 도움이 된다.

하지만 지금은 스프링부트를 먼저 배우라고 한다.

이유는 대부분의 초급 개발자는 웹 프로젝트를 할 것이고, 직접 프로젝트를 구성하는 작업을 하지 않을 테니까

이미 직장 생활을 하고서 학원을 온 현직자분들에게는 스프링부터 배울 것을 권한다.

이유는 스프링부트를 권하는 이유와 반대되는 이유도 있지만 더 중요한 것은 프리랜서 하시려고 학원 오는 경우가 정말 많다.


프리랜서 하려면 스프링 필수

IT기술 기업이라고 하는 네카라쿠배 재직자라면 학원 안 오신다. 당연하다. 이미 학원에서 습득할 수 있는 그 이상을 가지고 있는데 올 필요가 없다.

학원에 오시는 현직자분들은 전문개발자가 아닌 IT직종 중 개발자로의 전직을 원하시거나 개발자로 입사했는데 개발을 안 해서 커리어를 망친 경우에 오신다.

즉, 직무의 변경 혹은 직장의 변경을 위해 오신다. 회사에서 성장 잘했는데 학원에서 기본부터 다시 채우는 경우 아직은 못 봤다.

기술 배워서 프리랜서를 하고자 하여 오시는 경우가 정말 많다. 공부하시는 것 당연히 환영하고 더욱 성심성의껏 알려드리려고 노력한다.

그러면 왜 스프링을 먼저 배워야 할까. 경력자니까 프로젝트 세팅할 거라서? 아니다. 일반 기업에서 하는 업무들도 요즘은 다 스프링부트로 프로젝트 진행한다.

하지만 프리랜서 업무 50% 이상을 차지하는 국가의 업무는 반드시 스프링이 필요하다.


전자정부프레임워크가 스프링

전자정부 프레임워크도 스프링부트 버전이 있다고 하지만 아직 대부분은 스프링 기반의 전자정부프레임워크를 사용 중이고, 구성되어 있다.

국가사업에는 반드시 전자정부프레임워크가 사용된다. 권장이라고 하지만 사용해야 하고, 이미 대부분의 국가 시스템은 전자정부프레임워크이고, 전자정부프레임워크는 스프링으로 구성되어 있기에 스프링 자체를 보지 못한다면 프리랜서 업무가 어려울 수 있다.

그렇기에 스프링을 공부하라고 권해드린다. 하지만 어려워하신다.


Java랑 스프링은 어떤 관계예요?

스프링과 스프링부트의 관계를 이해하고 나면 후속타로 나오는 단골 질문 1순위다.

Java는 셀프 마라탕이 되었든 주문 마라탕이 되었든 마라탕을 만들 수 있도록 내가 직접 시장 가서 재료 사 오고, 재료 씻고, 알맞게 손질하고, 상한 거 버리고, 소스도 만들고 하는 것이다.

Java로 스프링이나 스프링부트를 만들어 내는 거다.

밀키트 대중화되었고, 프랜차이즈 식당에서도 재료들 받아서 사용해서 가게 운영에 집중하는 것처럼 Java로 만들어둔 기술들을 모아서 스프링(스프링 프레임워크)라고 이름 붙여서 사용하는 것이다.


앞으로 마라탕 드실 때면 스프링과 스프링부트가 생각나시기를 바라면서 글을 마칩니다.

작가의 이전글 시간을 역행하다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari