주제: 체육 활동 켜뮤니티
1. 요구사항 분석
[기본 기능]
- 회원가입
- 로그인
- 회원 정보 수정
- 닉네임과 비밀번호 수정 가능하다.
- 회원 탈퇴 및 삭제
- 회원 탈퇴 시 휴면 계정으로 전환한다.
- 휴면 계정 상태인 회원의 글은 비공개 처리된다.
- 휴면 계정 전환 기간이 1년 이상되면, 회원 데이터를 삭제하고 관련 데이터를 모두 삭제한다.
- 게시판
- 스포츠 종목 별로 게시판이 존재하고, 각 스포츠 종목 게시판 별로 일반 게시판이 존재한다.
- 게시글 작성, 수정, 삭제, 조회
- 게시글은 회원만 작성(및 등록)할 수 있다.
- 회원은 자신이 작성한 게시글만 수정, 삭제가 가능하다.
- 게시글은 모든 사용자가 읽을 수 있다.
- 제목, 내용, 제목+내용, 회원 닉네임으로 게시글을 검색 할 수 있다.
- 게시글 댓글 작성, 수정, 삭제, 조회
- 회원만 댓글을 작성할 수 있다.
- 회원은 자신이 작성한 댓글만 수정, 삭제가 가능하다.
- 모든 사용자는 공개 댓글을 읽을 수 있다.
- 회원은 비밀 댓글을 작성할 수 있다.
- 해당 게시글의 작성자와 비밀 댓글 작성자만 비밀 댓글을 읽을 수 있다.
- 댓글은 레벨 lv2까지 작성할 수 있다.
- 댓글 레벨은 0부터 시작한다.
- 댓글을 삭제할 경우, 댓글 자체를 지우지 않고 삭제된 상태로 보여준다.
[추후 기능]
- 인원 모집
- 시설 예약 사이트 연결
2. DB 설계
테이블 관계
- 회원, 권한 1:1
- 종목, 게시판 1:1
- 회원, 게시글 1:N
- 게시판, 게시글 1:N
- 게시글, 댓글 1:N
- 게시글, 파일 1:N
3. 패키지 구조
지금까지는 늘 계층형으로 패키지 구조를 만들었다. 이번에는 객체 지향과 ORM의 핵심이 되는 Entity 특성을 기반으로 하는 도메인 구조를 이용해볼 것이다.
[패키지 구조]
└── src
├── main
│ ├── java
│ │ └── pe
│ │ └── pecommunity
│ │ ├── PecommunityApplication.java
│ │ ├── domain
│ │ │ ├── member
│ │ │ │ ├── api
│ │ │ │ ├── application
│ │ │ │ ├── dao
│ │ │ │ ├── domain
│ │ │ │ ├── dto
│ │ │ │ └── exception
│ │ │ ├── post
│ │ │ │ ├── api
│ │ │ │ ├── application
│ │ │ │ ├── dao
│ │ │ │ ├── domain
│ │ │ │ ├── dto
│ │ │ │ └── exception
│ │ │ └── model
│ │ ├── global
│ │ │ ├── common
│ │ │ ├── config
│ │ │ ├── error
│ │ │ └── util
│ │ └── infra
│ └── resources
│ └── application.properties
'Project > PE-Community' 카테고리의 다른 글
[PE-Community] 계층형 댓글 구현 (0) | 2023.11.09 |
---|---|
[PE-Community] 게시글 및 게시판 구현(+파일 등록) (0) | 2023.10.25 |
[PE-Community] Spring Security와 JWT 적용 (1) | 2023.10.16 |
[PE-Community] 회원가입 및 로그인 구현 (0) | 2023.09.07 |
[PE-Community] 토이 프로젝트 시작하기(주제 선정) (1) | 2023.08.21 |