나는 왜 Spring을 사용하는가
사실 자바에서 웹 애플리케이션을 개발하기 위한 선택지는 Spring이 유일하지 않다.
네이티브 자바를 사용하여 HTTP 요청을 처리할 수 있고, 더 나아가 MicroNaut를 사용하여 웹 애플리케이션을 구축할 수 있다.
하지만, 이를 모두 제치고 단번의 망설임도 없이 Spring을 선택하는 것은 Spring의 생태계가 매우 넓고 활발하기 때문이다.
Spring 생태계
혹시 한번이라도 Spring 프로젝트를 개발하기 위한 첫 걸음으로 Spring Initializr를 써보았다면, 얼마나 많은 Spring 모듈이 존재하는지 알 수 있을 것이다.
당장 Spring 웹을 개발하기 위한 모듈만 해도 일반적인 방식으로 동작하는 spring-web과 비동기적 리액티브 프로그래밍 패러다임을 사용할 수 있는 spring-reactive-web이 있다. 다른 프레임워크(물론 100%는 아니지만)는 이를 일일이 구현하거나 구현한다 해도 완벽하게 작동하지 않을 가능성도 있다.
웹 개발을 하다가 혹여 DB에 접근해야 한다면, Spring은 그저 DB 서버에 맞는 spring-data 모듈을 추가하여 Repository를 구현하면 된다. 다른 프레임워크는 DB에서 지원하는 라이브러리를 추가로 설치하고, 필요에 따라 ORM도 구성해주어야 한다. 얼마나 귀찮은 일인가...
혹시 Oauth를 구현해본 독자가 있다면, 이를 구현하기 위해 백엔드가 어떤 절차로 동작해야 하는지 알 것이다. 이는 매우 복잡하고, 예외적으로 처리해야 할 일이 많다. 하지만 이 또한 Spring은 spring-oauth2-client 모듈을 추가하고 Config를 작성하기만 한다면, 모든 유저 인증 로직을 알아서 처리해준다. (물론, 이를 구현하기 위한 Spring Security를 설정하는건 조금 복잡하다.)
필자를 포함하여 많은 사람이 이러한 Spring의 강력한 생태계 덕분에 Spring을 버리지 못한다고 생각한다.
'Spring Boot' 카테고리의 다른 글
[Spring Boot] Spring이란 (0) | 2024.04.05 |
---|