
오늘은 Spring Boot에 기능을 만들기 전에 폴더 구조 및 Spring Boot에 대해서 공부하였습니다. 특히, Spring Boot에서 주로 사용되는 MVC 패턴에 대해 다시 알아가는 시간을 가졌습니다.
MVC 패턴은 Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나입니다. Spring Boot에서도 이러한 패턴을 기반으로 개발을 진행합니다.
Model: 데이터를 나타내며, 비즈니스 로직과 데이터베이스와의 상호 작용을 처리합니다. 데이터의 구조를 정의하는 역할을 합니다.
View: 사용자 인터페이스를 나타냅니다. 모델에 의해 제공된 데이터를 보여주거나 사용자 입력을 받아 컨트롤러에 전달하는 역할을 합니다.
Controller: 사용자 입력과 상호 작용하여 데이터를 모델에 전달하고, 모델의 변화를 보고하여 View를 업데이트하는 역할을 합니다.
MVC 패턴을 사용하면 소프트웨어를 구성하는 요소들을 분리하여 유연하고 확장 가능한 애플리케이션을 개발할 수 있습니다.
Spring Boot 개발에 오랜만이라 폴더 구조를 잡는 데에 고민을 했습니다. 대부분의 경우, 계층형 폴더 구조를 사용하여 관련 기능을 논리적으로 그룹화하는 것이 일반적입니다.
예를 들어:
mycalendar/
|-- src/
| |-- main/
| | |-- java/
| | | |-- com.mycalendar/
| | | | |-- controller/
| | | | |-- service/
| | | | |-- repository/
| | | | |-- model/
| | | |-- com.mycalendar.Application.java
| |-- resources/
| | |-- static/
| | |-- templates/
| | |-- application.properties
|-- pom.xml
DAO (Data Access Object): 데이터베이스와의 상호 작용을 담당하는 객체입니다. 데이터의 저장, 조회, 갱신, 삭제 등을 처리합니다.
DTO (Data Transfer Object): 계층 간 데이터 전달을 위해 사용되는 객체입니다. 데이터를 저장하고 전송하기 위한 용도로 사용됩니다.
VO (Value Object): 불변(Immutable)하며, 동일한 값을 가진 객체를 공유하기 위해 사용됩니다. 주로 데이터베이스의 테이블과 1:1로 매핑되는 객체를 의미합니다.
오늘 공부한 내용과 폴더 구조를 기반으로 실제로 폴더 구조를 잡으면서 개발을 이어나갈 계획입니다. Spring Boot에서 사용되는 MVC 패턴을 활용하여 로그인과 회원가입 기능을 구현할 예정이며, DAO, DTO, VO를 적절하게 활용하여 데이터의 저장과 전달을 처리할 것입니다.
지속적인 공부와 노력을 통해 myCalendar 프로젝트를 발전시키고, 사용자들에게 더 나은 서비스를 제공하기 위해 노력하겠습니다. 감사합니다!