본문 바로가기

Programming/SpringBoot

[SpringBoot] 개념, 구조, 동작 방식

반응형

Sprint BootJava를 기반으로 한 Web Application FrameWork이다.

 

SprintBoot가 나오기 전 Spring 프레임워크를 사용하였지만, 초기 환경 설정에 시간이 많이 할애가 된다는 문제점이 존재하였다. 

 

이로 인해 나온 것이 SpringBoot이며, 특징을 알아보자.

 

1. Maven이든 Gradle이든 Dependency에 따라 셋팅에 필요한 라이브러리들을 미리 정의해 둔 원격 저장소에서 알아서 다운로드 받아와 세팅해준다.

 

2. 버전 관리를 자동적으로 해주기 때문에 버전에 맞지 않아 발생할 수 있는 오류를 사전에 예방할 수 있다는 장점이 존재한다.

 

3. 내장 톰캣이 존재하여 별도의 Tomcat을 서버 내에 설치하지 않아도 된다.

 

4. servlet-context, root-context, .. 와 같은 xml 파일을 직접 작성해야 했지만 그럴 필요가 없어졌다.


[구조 및 동작 방식]

MVC 패턴

Model : 데이터를 의미

View : 사용자가 보고 사용하는 화면 (사용자 인터페이스)

Controller : 모델과 뷰의 중계 역할 (사용자의 요청을 파악하고 그에 맞는 결과를 사용자에게 줌)

DispatcherServler 동작 방식

1. 브라우저는 특정 URL에 요청을 보내고, DispatcherServlet은 가장 먼저 요청을 받아들인다.
2. DispatcherServlet은 URI를 보고, 핸들러 매핑과 통신하여 요청을 전달할 컨트롤러를 찾는다.
3. 핸들러 어댑터는 반환된 컨트롤러에서 어떤 메서드를 호출할지 결정한다.
4. 핸들러 어댑터는 결정된 핸들러 메서드를 호출한다.
5. 핸들러 메서드는 모델과 뷰를 반환한다.
6. DispatcherServlet에서 반환된 뷰 이름을 가지고 뷰리졸버를 호출해 물리적 뷰를 찾는다.
7. 뷰리졸버는 해당하는 뷰를 찾아 뷰로 반환한다.
8. DispatcherServlet은 응답을 브라우저로 보낸다.

( 핸들러 매핑 : 요청을 처리할 핸들러를 찾는 인터페이스,
  핸들러 어댑터 : 핸들러 매핑이 찾아낸 핸들러를 처리하는 인터페이스)


위에서 SpringBoot와 관련된 내용들을 살짝 정리해 보았다.

 

또한 SpringBoot는 애노테이션 기반으로 동작하기 때문에 사용자가 중복된 소스 코드를 별도로 작성하지 않아도 되며, 자바 개발자들이 미리 작성해 놓은 소스 코드를 애노테이션을 활용하여 상당량 줄일 수 있다는 장점이 있는 것 같다.

 

또한 구조가 체계화가 되어 나같은 코딩 초보도 쉽게 따라할 수 있게 구성되어 있다.

 

 

이후에는 간단히 스프링부트로 게시판을 만드는 과정을 담아볼 예정이다.

 

반응형