이 코드는 뭘까

Spring의 개념 본문

Back-end/Spring

Spring의 개념

OlttaeMelona 2022. 8. 20. 18:19

 

 

🌟Spring이란?

  • JAVA 언어를 기반으로 사용하는 Web Framework
  • JAVA로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀
  • JAVA를 이용한 JSP, MyBatis, JPA 등 프로젝트에 쓰이는 기술을 Spring 으로 더 편하게 사용하기 위해 만들어짐
  • 중복되는 코드를 줄여주고 비즈니스 로직을 간단하게 해줌
  • 오픈소스를 좀 더 효율적으로 가져다 쓰기 좋은 구조

 

🌟Spring를 사용하는 이유

1) DI (Dependency Injection, 의존성 주입)

  • 객체를 내부에서 직접 생성하는게 아니라 외부의 설정파일을 통해 정의되는 방식이다.
  • 코드의 재사용성을 높여 소스코드를 다양한 곳에 사용할 수 있고 모듈간의 결합도를 낮출 수 있다.
  • 쉽게 말하자면 게임캐릭터 객체와 캐릭터가 사용하는 무기 객체가 있다면 다른 무기로 교체하고 아이템을 변경하는데 어떤 상황에도 구애받지 않는다.
  • 필요한 부품을 뺐다 꼈다 하며 적절한 상황에 필요한 기능을 수행할 수 있다.

2) IoC(Inversion of Control, 제어 반전)

  • 개발자가 직접 객체를 생성, 호출하는게 아니라 컨테이너가 대신 해주는것을 의미한다.
  • 프로젝트 규모가 커지면서 객체와 자원을 이용하는 방법이 복잡해지고 코드가 어디서 오류가 날지 모르는 상황을 Spring과 IoC에서 자동관리 해준다.
  • 즉, 제어권은 개발자가 아닌 IoC가 가지고 있으며 IoC 개발자의 코드를 호출하고 생명주기를 제어한다.

3) AOP(Aspect Object Programming, 관점 지향 프로그래밍)

  • 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어보고 그 관점을 기준으로 모듈화 하는 것이다.
  • 클래스들을 여러개 만들어 놓으면 중복되는 코드들이 많아지는데, 코드가 중복되는 기능들을 전부 뒤로 빼둔 뒤 필요할때만 호출해서 사용한다면 효율성이 좋아진다.
  • 즉, AOP는 여러 객체에 공통적으로 적용할 수 있는 기능을 구분하여 코드의 재사용성을 높혀주는 프로그래밍 기법이다.

'Back-end > Spring' 카테고리의 다른 글

프레임워크(Framework)  (0) 2022.08.20
Comments