백엔드/Spring

Spring 을 사용하는 이유

그기고기 2021. 7. 19. 23:54
728x90
반응형
SMALL

1. Spring을 쓰는 이유.

 

일단, 스프링을 왜 써야할까? 생각해보면,, 일단 Spring은 어플리케이션 개발 프레임워크이다.

흔히 알고있는 어플리케이션 개발 프레임워크는 jsp, servelt등 있는데, 그냥 웹을 개발해도되는데, 왜 굳이 Spring이라는 프레임워크를 이용할까?

 

이유는 간단히 말하면, 시스템을 개발할 때에는 비즈니스 로직 이외에도 고려할 사항이 많다고 한다.

타시스템과의 연계, 분산 트랜직션 지원, 보안 등 고려해야 하는데, 개발이 진행됨에 따라 비지니스 로직이 점점 복잡해지고, 잦은 변경이 요구되게 되는데 이것들의 복잡함을 해결하기 위해 Spring을 사용한다.

 

Spring을 사용하는 주 된 이유는 [ DI, AOP, PSA ]지원이 바로 큰 주된 이유이다.

 

2.  DI = Dependency Injection 이다.

의존성 : 프로그램 개발을 진행하다 보면 객체간의 의존성이 생긴다. 

예를 들자면, A라는 클래스에서 B라는 클래스의 메소드를 불러와서 실행하게 될 때 그것을 의존한다 라고 말할 수 있다.

그런데, B클래스의 메소드 이름이 바뀌게 되면 A에서는 그 메소드를 찾을 수 없기 때문에 똑같이 변경해주어야 한다.

그냥 한 두개의 클래스로 구성된 의존 메소드가 바뀌면 직접 변경해 줄텐데, 그 이상을 바꿔줘야 한다면 정말 힘들어진다. 쉽게 말하면, 유지보수에 있어서 큰 장점이 있다. 

 

 

3.  AOP = Aspect Oriented Programming, 관점 지향 프로그래밍 지원

한 개의 어플리케이션 내의 다양한 모듈에서 공통적으로 이용되는 기능들을 분리시켜서 사용하는 것을 말한다.

모듈의 핵심 기능 외의 기능을 해당 모듈에 응집되지 않도록 하는 기술이다. 

AOP가 사실상 Spring을 쓰는 가장 큰 이유이다.

1. Java는 하나의 클래스에 대한 수직적인 흐름만 제어할 수 있는데,

2. Spring을 쓰면 특정 클래스들에 대한 수평적인 제어가 가능해진다.

 

 

4.  PSA = Portable Service Abstraction , 호환성있는 서비스 추상화

말 그대로 호환성있는 서비스 추상화이다. 조금 더 이해하기 쉽게 말하자면 잘 만든 인터페이스다.

인터페이스는 메서드는 작성할 수 있지만 로직은 구현할 수 없다.

근데 인터페이스로 N개의 클래스를 그룹화 할 수 있고 인터페이스에서 implements한 클래스는 반드시 인터페이스에서

구현된 메서드를 Override하여 로직을 작성해야한다.

우리는 이미 이렇게 잘 만들어진 인터페이스 덕분에 우리의 소스를 변경하지 않고 내부적으로 동작하는 로직을 변경할 수 있다.

 

 

 

 

728x90
반응형
LIST

'백엔드 > Spring' 카테고리의 다른 글

REST API  (0) 2021.09.12
API  (0) 2021.09.12
Spring MVC  (0) 2021.07.23
Spring JDBC  (0) 2021.07.20