본문 바로가기
쿤즈 프로젝트/To-do List Application

[Spring Boot] To-Do List 애플리케이션: Chap1. 프로젝트 소개

by Koonz:) 2024. 6. 17.
728x90

이번 시리즈에서는 Spring Boot 3 버전을 사용해서 간단하게 To-Do List 애플리케이션을 만드는 프로젝트를 진행하려 합니다. 그래서 이 포스팅에서는 애플리케이션을 만드는 방법을 단계별로 소개할게요.

 

이 프로젝트를 통해서 Spring Boot의 기본 개념과 데이터베이스 모델링, Rest API 구성 등을 배울 수 있어요.


프로젝트 소개

이 프로젝트는 To-Do List 애플리케이션입니다. 내가 해야 할 일을 추가, 조회, 수정, 삭제, 완료 기능 할 수 있는 간단한 애플리케이션입니다. 이 프로젝트를 통해서 Spring Boot의 사용법과 Data JPA의 사용, 데이터베이스의 CRUD 작업까지 간단하게 사용해 볼 수 있습니다.

 

비슷한 실제 애플리케이션에는 여러가지가 있습니다.


Todoist

Todoist는 작업과 프로젝트를 관리할 수 있는 기능을 가진 인기 있는 To-Do List 애플리케이션입니다. 직관적인 인터페이스와 강력한 기능으로 유명합니다.

Todoist

 

주요 기능으로는 작업 추가, 마감일 설정, 우선순위 지정, 프로젝트 분류, 알림 설정, 협업 기능 등이 있습니다.


Microsoft To Do

Microsoft(마이크로소프트)의 To Do는 작업 관리 애플리케이션으로, 사용하기 쉬운 인터페이스와 Microsoft 365와의 통합 기능으로 사용되는 것이 큰 특징입니다.

Microsoft To Do

 

주요 기능으로는 작업 추가, 리스트 관리, 기한 설정, 알림 설정, Microsoft 365 앱과의 통합입니다.


Google Keep

Google Keep은 간단한 노트의 용도와 To-Do List를 만들 수 있는 애플리케이션입니다. 직관적인 UI와 Google 계정과의 연동이 가장 큰 특징입니다.

Google Keep

 

주요 기능으로는 작업 추가, 체크리슽, 음성 메모, 이미지 첨부, 라벨링, 색상 코딩 등이 있습니다.


Trello

Trello는 칸반 보드 스타일의 프로젝트 관리 도구입니다. ATLASSIAN에서 개발된 도구로 팀 작업과 개인 작업을 시각적으로 관리할 수 있습니다. 

Trello

 

주요 기능으로는 카드 및 보드 생성, 작업 추가, 기한 설정, 태그 및 라벨링, 팀 협업등의 기능이 있습니다.


위 애플리케이션은 모두 To-Do List 기능을 기본으로 하여 다양한 추가 기능과 통합 서비스를 제공하고 있습니다. 이를 통해 사용자들이 더 효율적으로 작업을 관리하고 목표를 달성할 수 있도록 도와줍니다. 이러한 실제 애플리케이션을 참고하여 비슷한 기능구현을 하는 애플리케이션을 만들어볼 예정입니다.


프로젝트 (To-Do List 애플리케이션) 개요

Spring Boot(스프링 부트)를 이용해서 To-Do List 애플리케이션을 만들기 위해 단계가 필요합니다. 실제 현업에서는 특정 기능을 만들 때 요구사항 정의, 기획, 일정, 개발, 테스트, 배포와 같은 단계를 거칩니다. 전체를 동일하게 할 수 없지만 필요한 부분은 다뤄가면서 다음과 같이 진행할 예정입니다.

 

1. 프로젝트 소개

  • 프로젝트 개요 설명 (To-Do List 애플리케이션)
  • 이 튜토리얼의 목표 및 학습할 내용
  • 필요한 기술 스택 정리 (Spring Boot 3.x, Spring Data JPA, H2 Database, Gradle)

 

2. 요구사항 정의

  • 기본 기능 정의 (할 일 추가, 조회, 수정, 삭제)
  • 추가 기능 (완료 여부 표시, 우선 순위 설정 등)
  • 사용자 시나리오 (예: 사용자가 할 일을 추가하고 완료 상태로 변경하는 과정)
  • 단계절 진행 계획 (프로젝트 설정, 데이터 모델링, API 개발 등)

 

3. 기본 프로젝트 설정

  • Java 설치 및 설정
  • Spring Boot 프로젝트 생성 (Spring Initializr)
  • IntelliJ IDEA 설정 및 프로젝트 구조 설명
  • Gradle 설정 파일 (build.gradle) 구성
  • 필요한 의존성 추가 (Spring Web, Spring Data JPA, H2 Database 등)

4. 데이터 모델링

  • 데이터 베이스 설계(데이터 베이스 선택, 테이블 구조 정의)
  • 엔티티 설계 (엔티티 클래스 정의, 필드 타입 설명, JPA 어노테이션)

 

5. 각 API 별 계층 구현

  • 프로젝트 구조 설정 (Spring Initializr, 기본 패키지 구성, 주요 패키기 설명)
  • 계층별 역할 설명(Controller, Service, Repository, Model)
  • Rest API 개요 (Restful API 개념 설명, HTTP 메서드와 디자인 원칙)
  • 주요 API 설계 (GET, POST, PUT/PATCH, DELETE)

 

7. 애플리케이션 테스트

  • Postman을 사용한 API 테스트

 

8. 결론

  • 최종 코드 정리 및 요약

필요한 기술 스택

To-Do List 애플리케이션을 만들기 위한 필요 기술 스택을 알아볼게요. 프로젝트는 서버 프로그램뿐만 아니라 웹 프로그래밍도 함께 다뤄볼 예정입니다. 내가 만든 서버 프로그램의 API를 프론트와 연결해 보고 눈으로 확인해 보는 작업까지 별도로 진행해 볼게요.

 

따라서 필요한 기술 스택은 아래와 같아요.


서버

Spring Boot 3.x

현 시점에서 사용하는 가장 최신 배포버전을 이용할 예정입니다.

 

Spring Data JPA

개발의 편리함을 위해 Data JPA를 이용하여 코드량을 줄여 개발할 예정입니다.

 

H2 Database

Mysql, PostgreSQL을 이용하려면 사용하는 PC에 직접 설치하거나 Docker를 설치해야 하지만 H2 데이터베이스는 그보다는 편리하게 사용할 수 있기에 이를 이용해 진행할 예정입니다.

 

Gradle

Maven과 Gradle이 있고 이 부분은 취향에 따라 다르게 사용하면 됩니다. 이 프로젝트에서는 Gradle을 이용할게요.

 

프론트

Next.JS

넥스트 JS는 SSR, CSR이 모두 가능한 플랫폼이며 서버사이드 프로그래밍도 가능한 플랫폼입니다. 이 플랫폼을 이용해서 Spring Boot 프로젝트와 연결해서 진행해 볼게요.

 

Tailwind CSS

CSS를 조금 더 편리하게 사용할 수 있도록 도와주는 라이브러리입니다.

 

shadcn/ui

미리 디자인되어 있는 컴포넌트들을 사용할 수 있는 편리함이 있습니다.


이 시리즈의 첫 번째 소개 및 설명이 끝났습니다. 만들고자 하는 애플리케이션은 단순합니다. 내가 할 일을 등록하고 조회하고, 수정, 삭제가 가능한 서버 애플리케이션을 만드는 것입니다. 또, 완료된 할 일을 처리하고 기타 다른 여러 가지 기능들도 추가할 수 있습니다. 이 시리즈를 통해서 스프링 부트의 가장 기본적인 흐름을 이해할 수 있기를 기대합니다. 혹시 질문이 있으시다면 아래 댓글을 이용해 주세요. 감사합니다.

댓글