
Spring이란?
대부분 알고 있을 테니 간단하게만 하겠습니다 : )
우선 Spring이란 객체지향 언어인 자바를 기반으로 한
서버나 백엔드를 쉽게 만들게 해주는
프레임워크 (framework)입니다.
DI나 IoC 같은 핵심 개념이 있고
Spring boot나 Spring security, Spring MVC 등의 기술을
사용할 수 있습니다.
왜 이걸로 처음 배울까?
저희 학교 이외에도 백엔드 개발을 처음 접하면서
Spring을 많이 사용할 것입니다.
그렇다면 다른 언어 기반의 프레임워크도 많은데
왜 대부분 Spring framework로 시작할까요?
그 이유는 다음과 같습니다.
실무에서 많이 쓰이기 때문에
한국이나 글로벌 엔터프라이즈에서
사실상 백엔드의 표준형이 Spring이기 때문입니다.
기업이나 기관마다 다른 기술을 사용하는 경우도 많지만
현재로서는 Java를 기반으로 한
Spirng을 주로 사용하는 추세이기 때문입니다.
Spring boot로 시작하기 쉽기 때문에
start.spring.io에서 스프링 부트를 처음 시작하면
스타터에서 의존성을 주입하게 되는데 이 과정이
타 프레임워크에 비해 쉽고 간단합니다.
또한 main() 이 하나만 실행해도 서버가 뜨기 때문에
처음에 시작하며 진입장벽이 낮다는 장점이 있습니다.
그리고 Spring 자체에 Tomcat이나 Netty, Gradle, 테스트 유틸 등이
기본으로 제공되기 때문에 편리하기도 합니다.

개념을 제대로 익힐 수 있기 때문에
DI, IoC, AOP, 트랜잭션, Bean 생명주기 등등
핵심 설계원리를 체계적으로 익히는데 유용한 것이
Spring이기 때문입니다.
이는 간단한 CRUD를 만들더라도 DI나 IoC 등의
개념을 사용하는 경우가 많기 때문에
프로젝트의 규모가 커지더라도 모듈성과 유지보수성을 지키는
습관이 자연스럽게 들게 됩니다.
정보가 넘치기 때문에
Spring은 2000년대 초반에 나온 프레임워크로,
타 기술에 비해 오래된 역사를 가지고 있습니다.
또한 전 세계적으로 사용하는 사람이 많기 때문에
개발을 하며 문제가 생겼을 때 검색만 하면
나보다 먼저 그런 문제를 겪은 사람들이
해결한 사례가 많은 걸 볼 수 있습니다.
이렇듯 오류나 문제가 생겼을 때 인터넷상에서
쉽게 찾고 해결할 수 있기 때문에
막 개발을 시작하는 개발자 지망생에게 좋은 프레임워크입니다.

팀 단위로 개발할 때 편리하기 때문에
파일과 폴더가 정해진 방식대로 나뉘어 있고
테스트도 어떻게 하는지 다 비슷비슷하기 때문에
팀원 사이에서 코드 스타일이 크게 다르지 않습니다.
그렇기에 새로 들어온 팀원도 중간에 참여할 때 어려움이 없고
코드에 규칙이 있어서 유지보수 하기도 편합니다.
Spring의 단점?
위에서 말한 것처럼 처음 시작하기 좋은 점도 있지만
반대로 단점도 몇 개 있습니다.
처음에 배우기 힘들 수도 있음
스프링은 어노테이션처럼 딸깍 한번 하면
자동으로 해주는 게 많아서,
이게 왜 이렇게 되는 거지 하고
원리를 파고들어야 하는데
이걸 공부할 때 어려움을 겪을 수 있습니다.
덩치가 좀 큼
이미지 파일 하나 받아서 저장하거나
todo list 만드는 거 같이 기능이 별로 없고
가벼운 서비스를 만들기에는
FastAPI나 Express 같은 더 가벼운 프레임워크에 비해
메모리를 많이 먹는 편이라
Spring이 좀 오버스펙일 수도 있습니다.
이상으로 블로그를 마치겠습니다.
읽어주셔서 감사합니다.
'BackEnd' 카테고리의 다른 글
| [BackEnd] 코드리뷰의 중요성 (0) | 2025.11.26 |
|---|---|
| [BackEnd]클린 아키텍쳐가 뭐임? (1) | 2025.09.17 |
| [BackEnd] 객체지향 설계의 SOLID 원칙 (2) | 2025.07.22 |
| [BackEnd] REST API (0) | 2025.07.02 |
| [BackEnd] 객체지향이란? (0) | 2025.06.18 |