03-model2는 Model 2 (MVC) 아키텍처를 구현한 Java 웹 애플리케이션입니다. Front Controller 패턴, JdbcTemplate, 사용자 인증, 파일 업로드 등 현대적인 웹 개발 기법을 단계별로 구현합니다.
사용자 요청 → FrontController → HandlerMapping → Command → JSP
- FrontController: 모든 요청을 받아서 적절한 Command로 분배
- Command: 비즈니스 로직 처리
- DAO: 데이터베이스 접근
- JSP: 화면 표시
- 게시글 목록/상세보기/작성/수정/삭제
- JdbcTemplate을 사용한 데이터 접근
- Tailwind CSS 기반 모던 UI
- 회원가입/로그인/로그아웃
- 세션 기반 사용자 상태 관리
- 게시글 작성/수정/삭제 권한 제어
- 작성자만 수정/삭제 가능
- 다중 파일 업로드 (최대 5개)
- 이미지와 일반 파일 분리 저장
- 파일 타입 및 크기 검증
- 보안을 고려한 파일 관리
03-model2/
├── src/main/java/io/goorm/backend/
│ ├── Board.java # 게시글 모델
│ ├── User.java # 사용자 모델
│ ├── FileUpload.java # 파일 업로드 모델
│ ├── BoardDAO.java # 게시글 데이터 접근
│ ├── UserDAO.java # 사용자 데이터 접근
│ ├── FileUploadDAO.java # 파일 데이터 접근
│ ├── controller/
│ │ └── FrontController.java # Front Controller
│ ├── command/ # Command 클래스들
│ │ ├── BoardListCommand.java
│ │ ├── BoardViewCommand.java
│ │ ├── BoardWriteCommand.java
│ │ ├── BoardInsertCommand.java
│ │ ├── BoardUpdateCommand.java
│ │ ├── BoardDeleteCommand.java
│ │ ├── SignupCommand.java
│ │ ├── LoginCommand.java
│ │ ├── LogoutCommand.java
│ │ └── FileDownloadCommand.java
│ ├── handler/
│ │ └── HandlerMapping.java # Command 매핑
│ ├── config/
│ │ ├── DatabaseConfig.java # 데이터베이스 설정
│ │ └── UploadConfig.java # 파일 업로드 설정
│ └── filter/
│ └── XSSFilter.java # XSS 방지 필터
├── webapp/
│ ├── board/ # 게시판 JSP
│ │ ├── list.jsp # 게시글 목록
│ │ ├── view.jsp # 게시글 상세보기
│ │ ├── write.jsp # 게시글 작성
│ │ └── update.jsp # 게시글 수정
│ ├── signup.jsp # 회원가입
│ ├── login.jsp # 로그인
│ └── index.jsp # 메인 페이지
├── develop01/ # 사용자 인증 가이드
├── develop02/ # 파일 업로드 가이드
└── build.gradle # Gradle 빌드 설정
- Java: Servlet, JSP, JSTL
- Spring: JdbcTemplate
- 데이터베이스: H2 Database
- UI: Tailwind CSS
- 빌드: Gradle
- 보안: XSS 방지 필터
# Gradle 프로젝트로 import
# IntelliJ IDEA에서 build.gradle 파일 열기-- H2 데이터베이스 실행
-- users, board, file_upload 테이블 생성# IntelliJ IDEA에서 Tomcat 서버 설정
# 애플리케이션 실행- 메인:
http://localhost:8080/ - 게시판:
http://localhost:8080/front?command=boardList - 회원가입:
http://localhost:8080/front?command=signup - 로그인:
http://localhost:8080/front?command=login
- step01.md: 회원가입 구현
- step02.md: 로그인/로그아웃 구현
- step03.md: 권한 제어 구현
- step01.md: 기본 구조 설정
- step02.md: 모델 및 DAO 구현
- step03.md: 게시글 작성 시 파일 업로드
- step04.md: 첨부파일 표시 및 다운로드
- Front Controller 패턴: 모든 요청을 중앙에서 처리
- Command 패턴: 비즈니스 로직을 명령 객체로 캡슐화
- JdbcTemplate: Spring의 데이터 접근 추상화
- 사용자 인증: 세션 기반 로그인 및 권한 관리
- 파일 업로드: 보안을 고려한 다중 파일 처리
- 모던 UI: Tailwind CSS를 사용한 반응형 디자인
현재 구현된 기능을 기반으로:
- 페이지네이션 시스템
- 검색 기능
- 이미지 썸네일 생성
- Spring Boot 전환
03-model2는 전통적인 Java 웹 개발부터 현대적인 웹 개발 기법까지 단계별로 학습할 수 있는 프로젝트입니다.