미니 프로젝트/To Do List

[Java] TodoList ① 설계

웹개발자(진) 2024. 5. 3. 15:29
반응형

1. 작업 환경

IntelliJ IDEA 2024.1
Tomcat 10.1.20
Oracle Open JDK 17.0.9
Servlet-api: 5.0.0
MariaDB 10.6 UTF-8
Gradle

 


2. build.gradle

MariaDB Java Client / HikariCP

// https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
    implementation 'org.mariadb.jdbc:mariadb-java-client:3.1.4'
    
// 프로젝트에서 MariaDB 데이터베이스와의 연동을 위해 해당 라이브러리를 사용할 수 있습니다.

// https://mvnrepository.com/artifact/com.zaxxer/HikariCP
    implementation 'com.zaxxer:HikariCP:5.0.1'
    
//HikariCP를 사용하여 데이터베이스 연결 풀을 관리할 수 있습니다.

 

ModelMapper

// https://mvnrepository.com/artifact/org.modelmapper/modelmapper
    implementation group: 'org.modelmapper', name: 'modelmapper', version: '3.1.1'

 

Jakarta Standard Tag Library API / Glassfish :: JSTL Module

// https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api
    implementation group: 'jakarta.servlet.jsp.jstl', name: 'jakarta.servlet.jsp.jstl-api', version: '3.0.0'
    
//프로젝트에서 JSTL을 사용하여 JSP 페이지에서 표준 태그 라이브러리를 사용할 수 있습니다.

// https://mvnrepository.com/artifact/org.eclipse.jetty/glassfish-jstl
    implementation group: 'org.eclipse.jetty', name: 'glassfish-jstl', version: '11.0.10'

//glassfish-jstl 라이브러리는 JSTL(JavaServer Pages Standard Tag Library) 구현체 중 하나이며, 
//JSP 페이지에서 표준 태그 라이브러리를 사용할 수 있도록 제공됩니다.

 

Lombok

// https://mvnrepository.com/artifact/org.projectlombok/lombok
    compileOnly 'org.projectlombok:lombok:1.18.30'
    testCompileOnly 'org.projectlombok:lombok:1.18.30'
    annotationProcessor 'org.projectlombok:lombok:1.18.30'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.30'

//Project Lombok은 자바 코드를 간결하게 작성할 수 있도록 도와주는 라이브러리로, 
//@Getter, @Setter, @Builder 등의 애노테이션을 사용하여 자동으로 게터, 세터, 빌더 패턴 등을 생성할 수 있습니다.

 


3. 프로젝트 구조

기본적으로 Controller를 통해서 get/post방식으로 해당하는 urlPattern으로 입력받은 값들을 뿌려준다.

Service 클래스들을 이용해서 DTO와 VO 값을 mapping 하는 작업을 진행하게 하였다.

View는 JSP를 이용하여 EL문 형태로 값들을 출력 하게 했다.

project_root
│    └── Controller
│       ├── LoginController
│       ├── LogoutController
│       ├── SignUpController   
│       ├── TodoListController
│       ├── TodoModifyController
│       ├── TodoReadController
│       ├── TodoRegisterController
│       └── TodoRegisterDelete
│    └── dao
│       ├── MemberDAO
│       └── TodoDAO
│    └── dto
│       ├── MemberDTO
│       └── TodoDTO
│    └── filter
│       ├── LoginCheckFilter
│       └── Utf8Filter
│    └── service
│       ├── MemberService
│       └── TodoService
│    └── Util
│       ├── ConnectionUtil
│       └── MapperUtil
│ 	 TodoMain
│
│
└── webapp
      └── WEB-INF
      │		├── todo
      │     	├── list.jsp
      │ 	├── read.jsp
      │     	├── register.jsp
      │		├── login.jsp
      │		└── signup.jsp
      └── index.jsp

 

기본적인 Controller 구조를 해당 사진에 맞춰서 하려고 하였고 그 뒤로 자잘하게 추가하여 프로젝트를 완성하였다.


 

4. DB구조

사용자가 입력한 정보를 DB에 담고 필요한 정보를 DB에서 불러오는 형태로 프로젝트를 진행하였다.

tbl_todo1와 tbl_meber1는 TEST용으로 만든겁니다.

 

테이블은 2가지로 TodoList에 입력 및 출력하기위한 table인 tbl_todo2와 TodoList를 입력하기 전 회원의 정보를 입력 및 확인하기 위한 tbl_member2로 구성했다.

tbl2_todo2
tbl_member2


 

5. 완성

TodoList를 게시판 형식으로 만들어서 누구나 회원가입하여 이용할 수 있고, 회원가입을 통해 자신의 글에대해서만 삭제 및 수정이 가능하도록 작업하였습니다. 아래는 완성 사진 일부입니다.





 

글을 마치며

해당내용은 순서대로 정리해서 게시판에 올릴예정입니다, 미니 프로젝트들을 진행하면서 끝까지 제대로 진행해 본 건 이게 최초가 아닐까 싶습니다. 작게 작게 많이 진행했는데, 다양한 코드를 배워서 진행하는데 뿌듯함을 느낍니다. 다른 프로젝트들도 열심히 진행해보고 싶네요. 감사합니다.

반응형