[Spring] Spring에 대한 개념 정리

2024. 8. 19. 19:22· 웹 개발 공부 : Back-end/JAVA - Spring
목차
  1.  
  2. 1. Spring이란?
  3. 2. DI (Dependency Injection)
  4. 3. IoC (Inversion of Control)
  5. 4. Spring MVC
  6. 4-1. MVC 디자인패턴
반응형

Spring Framework

 

1. Spring이란?

IoC(제어의 역전)와 DI(의존성 주입)를 통해 객체의 생성과 관리를 프레임워크에 맡겨 개발자의 비즈니스 로직 개발에 집중할 수 있도록 해주는 프레임워크입니다. 예를들어 A, B, C 클래스가 있을때, D라는 클래스를 사용하고싶은 경우, 각각 A, B, C 클래스에 D 클래스를 인스턴스화시켜 사용해야 했습니다. 이를 해결하기 위해서 Spring Framework에선 공통으로 사용하려는 D클래스를 컨테이너에 등록하고, 사용하고 싶을때 가져다 쓸 수 있도록 해주는 프레임워크입니다.

 

 

2. DI (Dependency Injection)

DI(Dependency Injection, 의존성 주입)는 객체 지향 프로그래밍에서 객체 간의 의존성을 관리하는 방법입니다. 쉽게 말해, 한 객체가 다른 객체를 직접 생성하지 않고, 외부에서 필요한 객체를 주입받는 방식입니다. 이렇게 되면 의존하는 객체를 직접 생성하지 않아도 되므로 결합도가 낮아지는 장점이 있습니다. 예를 들자면, Controller에서 Service 객체를 사용하고싶을때 입니다. 주로 setter 방식으로 의존성 주입을 진행합니다.

 

 

3. IoC (Inversion of Control)

제어의 역전이라고 하며, 제어권이 사용자에게 있지 않고, 프레임워크에 있어 필요에 따라 사용자의 코드를 호출합니다. 예를 들어 Spring에서는 Controller, Service 같은 객체들은 개발자가 코딩하지만, 호출은 프레임워크가 제어합니다. 스프링에서는 인스턴스의 생성부터 소멸까지 개발자가 아닌 프레임워크가 관리합니다.

 

 

4. Spring MVC

Spring MVC는 Spring Framework의 웹 애플리케이션 개발을 위한 모듈로, Model-View-Controller(MVC) 디자인 패턴을 기반으로 합니다.웹 애플리케이션의 개발을 단순화하고, 유지보수를 용이하게 하며, 테스트 가능성을 높이는 데 중점을 두고 있습니다.

 

4-1. MVC 디자인패턴

Model-View-Controller의 약자로,


Model : 애플리케이션의 데이터와 비즈니스로직을 정의합니다.

 

View : 사용자에게 보여지는 UI를 담당합니다. JSP, TymeLeaf 같은 템플릿을 이용합니다. REST-API 애플리케이션 환경에서는 데이터를 JSON 형식으로 사용자에게 제공하므로, 서버 측면에선 VIew 부분이 존재하지 않습니다.

 

Controller : 사용자의 요청을 처리하고, Model과 View간의 연결을 담당합니다.

반응형

'웹 개발 공부 : Back-end > JAVA - Spring' 카테고리의 다른 글

[SpringBoot] org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction 에러 해결  (0) 2024.09.26
[Spring Boot] java.sql.SQLException: No database selected 에러  (2) 2024.09.12
[Spring Boot] java.lang.NullPointerException: Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelega  (0) 2024.09.12
[SpringBoot - JUnit] org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter ~ 에러 해결  (0) 2024.08.28
  1.  
  2. 1. Spring이란?
  3. 2. DI (Dependency Injection)
  4. 3. IoC (Inversion of Control)
  5. 4. Spring MVC
  6. 4-1. MVC 디자인패턴
'웹 개발 공부 : Back-end/JAVA - Spring' 카테고리의 다른 글
  • [SpringBoot] org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction 에러 해결
  • [Spring Boot] java.sql.SQLException: No database selected 에러
  • [Spring Boot] java.lang.NullPointerException: Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelega
  • [SpringBoot - JUnit] org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter ~ 에러 해결
Developer KTU
Developer KTU
Developer KTU
KTU 개발 블로그
Developer KTU
전체
오늘
어제
  • 분류 전체보기
    • 웹 개발 공부 : Back-end
      • JAVA
      • JPA
      • JAVA - Spring
      • MySQL
      • Docker
      • Redis
      • JSP
      • DevOps
      • 파이썬 - 장고
      • 운영체제
      • WEB
    • 블록체인
    • 웹 개발 공부 : Front-end
      • React
      • Javascript
      • JQuery
      • Ajax
    • 알고리즘 공부
    • 나의 커리어

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알고리즘공부
  • 백엔드
  • 자바스크립트
  • 웹개발
  • 코딩테스트
  • Back-end
  • 파이썬
  • 컴퓨터공학
  • 자바
  • 스프링부트
  • Algorithm
  • 백준
  • Java
  • BOJ
  • 알고리즘
  • SpringBoot
  • Python
  • 백엔드개발자
  • 알고리즘공부기
  • JavaScript

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Developer KTU
[Spring] Spring에 대한 개념 정리
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.