반응형
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에서 불러오는 형태로 프로젝트를 진행하였다.
테이블은 2가지로 TodoList에 입력 및 출력하기위한 table인 tbl_todo2와 TodoList를 입력하기 전 회원의 정보를 입력 및 확인하기 위한 tbl_member2로 구성했다.
5. 완성
TodoList를 게시판 형식으로 만들어서 누구나 회원가입하여 이용할 수 있고, 회원가입을 통해 자신의 글에대해서만 삭제 및 수정이 가능하도록 작업하였습니다. 아래는 완성 사진 일부입니다.
글을 마치며
해당내용은 순서대로 정리해서 게시판에 올릴예정입니다, 미니 프로젝트들을 진행하면서 끝까지 제대로 진행해 본 건 이게 최초가 아닐까 싶습니다. 작게 작게 많이 진행했는데, 다양한 코드를 배워서 진행하는데 뿌듯함을 느낍니다. 다른 프로젝트들도 열심히 진행해보고 싶네요. 감사합니다.
반응형
'미니 프로젝트 > To Do List' 카테고리의 다른 글
[Java] TodoList ④ TodoReadController(DB 연결 전) (0) | 2024.05.14 |
---|---|
[Java] TodoList ③ TodoRegisterController(DB 연결 전) (0) | 2024.05.14 |
[Java] TodoList ② TodoListController(DB 연결 전) (0) | 2024.05.14 |