Spring Boot 프로젝트 기본 아키텍처 구성하기 (1)

Spring Boot Architecture

안녕하세요. Spring Boot 프로젝트 기본 아키텍처 구성하기 (1) 포스트입니다.
올해 시작하면서 Spring Boot를 공부하게 되었는데 집중도 해야하는 시기였고 이런저런 이유로 포스팅이 늦었습니다.

지난 포스트에서 Spring Boot 프로젝트 생성하는 방법에 대해서 포스트를 했었는데요.
이번 포스트에서는 서비스를 코딩하기 전에 큰 뼈대를 잡는 방법에 대해서 설명을 드려보려고 합니다.

일반적으로 어느 언어의 프로그래밍을 하든 아키텍처에 대해 고민을 하는 글을 접하게 되는데요.
그때마다 접하게 되는 단어는 MVC 라는 단어입니다.

Model, View, Controller 라는 크게 3개의 요소로 구성을 한다는 개념인데, 이번 포스트에서는 가볍게만 다루고 넘어가도록 하고 다른 포스트에서 좀 더 깊게 이야기 하도록 하겠습니다.

View 란, 사용자에게 보여지는 부분을 뜻합니다.
웹서비스에 빗대어 쉽게 얘기하자면 브라우저에 비춰지는 부분을 뜻합니다.
View를 구성하는 각 요소들은 Controller에 연결되어집니다.

Controller 란, View를 통해 전해진 사용자의 요청사항에 대해 파악한 후 Model에게 전달하고 받아오는 역할을 하는 부분을 뜻합니다.
View가 전달하는 Request를 놓치지 않게 잘 설계해야 하며, 데이터를 양측의 요구사항에 맞게 전달해줘야 합니다.

Model 이란, 데이터베이스에 밀접해 있는 부분입니다.
각 데이터베이스의 테이블에 맞춰져 있는 경우가 대부분이며, CRUD에 대한 처리를 담당합니다.

MVC의 개념은 간단하게 이러하며, 각 개발자들은 개발하고자 하는 서비스에 맞춰 Customize하여 잘 사용하면 됩니다.

앞으로 제가 포스트하는 것은 중구난방하게 작성하기보다는 하나의 서비스를 개발해나가면서 해보려고 합니다.

Github에 Repository를 올려두고 같이 코드를 보면서 진행하면 좋을 것 같습니다.
많은 프로젝트들이 이런 구성으로 진행되겠지만 초기 구성은 아래와 같이 진행하면 될 것 같습니다.

View 부분은 과감히(?) 버렸습니다.
대부분 프로젝트를 보시면 아시겠지만 Spring Boot로는 백엔드 서비스를 개발하고 React 등의 js 파생 언어들로 프론트엔드 서비스를 개발하여 결합하는 것을 보실 수 있습니다..
다른 언어로 결합해서 보실 수 있게 도중에 진행해보도록 하겠습니다.
그전까진 Swagger라는 API 테스트 오픈소스로 대체하여 확인할 예정입니다.

실제 프로젝트 구성은 다음 포스트에서 진행하도록 하겠습니다.
Spring Boot 프로젝트 기본 아키텍처 구성하기 (1) 포스트 였습니다.

Updated by 20.05.25 Spring Boot 프로젝트 기본 아키텍처 구성하기 (1)
Site : @ThinkGround
Instagram : @thinkground_official
Facebook : @ThinkGround
Twitter : @ThinkG_Flature

Comments 1

  1. Pingback: Spring Boot 프로젝트 기본 아키텍처 구성하기 (2) | ThinkGround

Leave a Reply