# 결론 먼저. Spring이란?
Spring을 사용함으로써 우리는 더 간결하고 유지보수하기 쉬운 코드를 작성할 수 있으며, 변화하는 요구사항에 유연하게 대응할 수 있습니다.
Spring Framework는 복잡한 Java 애플리케이션 개발을 단순화하고, 유지보수성과 확장성을 높이기 위해 만들어졌습니다.
의존성 주입, AOP, 트랜잭션 관리, 데이터 접근 통합 등의 기능을 통해 개발자는 비즈니스 로직에 집중할 수 있으며, 복잡한 엔터프라이즈 애플리케이션을 쉽게 개발할 수 있습니다.
Spring의 다양한 어노테이션(@Service, @Controller 등)은 마치 책장을 정리하듯, 코드를 명확하게 분류하고 관리할 수 있게 도와줍니다.
# 프레임워크란 무엇인가?
프레임워크는 소프트웨어 개발에서 반복적으로 사용되는 설계 패턴과 코드를 제공하는 플랫폼. 즉, 개발자가 개발에만 집중할 수 있게 하는 것.
개발자는 프레임워크를 사용하여 애플리케이션의 기본 구조를 빠르게 설정하고, 주요 로직에 집중할 수 있습니다. 프레임워크는 재사용 가능한 코드를 제공하고, 개발 속도를 높이며, 유지보수를 쉽게 합니다.
# Spring 이전의 Java 개발
Spring이 나오기 전에는 주로 EJB를 사용하여 엔터프라이즈 애플리케이션을 개발했습니다. EJB는 강력한 트랜잭션 관리와 분산 컴퓨팅을 지원했지만, 설정과 사용이 매우 복잡하고 무거웠습니다. 이를 피하기 위해 많은 개발자들이 POJO를 사용한 개발 방식을 채택했지만, 이 역시 반복적인 코드 작성과 의존성 관리의 어려움이 있었습니다.
# Spring의 등장
Spring은 위에서의 문제들을 해결하기 위해 등장했습니다. Spring의 주요 목표는 아래와 같습니다
- 단순화: POJO 기반의 개발을 지원하여 간단하고 유지보수하기 쉬운 코드를 작성할 수 있게 합니다.
- 의존성 주입과 IoC: 의존성 주입(DI)과 제어의 역전(IoC) 패턴을 도입하여 객체 간의 결합도를 낮추고, 코드의 유연성과 재사용성을 높입니다.
- AOP(Aspect-Oriented Programming): 로깅, 보안, 트랜잭션 관리 등의 횡단 관심사를 분리하여 비즈니스 로직과 공통 기능을 분리합니다.
- 모듈화: 다양한 기술(JDBC, JMS, JNDI 등)을 통합하고, 필요한 기능만 선택적으로 사용할 수 있게 합니다.
- 테스트 용이성: POJO 기반으로 작성된 코드는 테스트가 용이합니다.
다음으로는 Spring Boot에 관해서 글을 작성해 보도록 하겠습니다.
'Java' 카테고리의 다른 글
[Bean, Proxy] 왜 @Cacheable이 동작하지 않을까? (0) | 2024.08.21 |
---|---|
[Redis] Redis란? (0) | 2024.08.16 |
[String Boot] JWT 토큰 저장 HTTP-only Cookie (0) | 2024.08.09 |
[Spring Boot] Spring Boot란? (0) | 2024.08.05 |
[Spring Boot] Optional과 orElseThrow (0) | 2024.07.31 |