사용 흐름:
-
회원 가입
- 사용자가 회원 가입 페이지로 이동.
- 이메일과 비밀번호를 입력하고 "회원 가입" 버튼 클릭.
- 이메일과 비밀번호 형식 유효성 검사 (이메일 형식, 비밀번호에 특수 문자 포함 여부).
- 사용자가 이메일 인증 후 로그인 가능.
-
로그인
- 로그인 페이지에서 이메일과 비밀번호 입력 후 로그인.
- 이메일과 비밀번호 일치 여부 유효성 검사.
데이터 저장:
- 회원 정보: 이메일, 비밀번호(암호화), 닉네임 등.
- 로그인 세션: 사용자 세션 정보 저장.
구현 방법 (백엔드):
- REST API: 회원 가입, 로그인, 비밀번호 재설정 엔드포인트 생성.
- 데이터베이스: 사용자 정보를 저장하는 테이블 생성.
예외 처리:
- 이메일 중복 체크.
- 비밀번호 형식 유효성 검사.
- 잘못된 로그인 시도 시 오류 메시지 제공.
사용 흐름:
- 사용자가 메인 페이지로 이동.
- 지도 API를 통해 지도가 표시됨 (네이버 지도 또는 카카오 지도).
- 사용자가 지도에서 특정 위치를 선택하여 마커 생성.
- 마커 클릭 시, 네이버 지도처럼 사이드바에 제목, 내용, 파일 업로드 양식 표시.
- 4번 관련된 정보 입력 후 생성.
데이터 저장:
- 마커 정보: 위치 정보, 생성자 정보, 생성 일시 등.
구현 방법 (백엔드):
- REST API: 마커 생성, 조회, 동아리/동호회 생성 엔드포인트 생성.
- 지도 API 연동: 네이버 지도 또는 카카오 지도 API 사용.
- 데이터베이스: 마커 정보를 저장하는 테이블 생성.
예외 처리:
- 마커 생성 시 위치 유효성 검사.
- 동아리/동호회 정보 입력 유효성 검사.
- 마커 중복 생성 방지.
사용 흐름:
- 사용자가 글 작성 페이지로 이동.
- 제목, 내용, 이미지 파일을 입력받아 글 작성.
- 작성된 글은 리스트 형태로 페이징 처리되어 조회 가능.
- 사용자가 글을 삭제할 수 있음.
데이터 저장:
- 글 정보: 제목, 내용, 작성자 정보, 작성 일시 등.
- 이미지 파일 정보: 파일 경로, 파일 이름, 파일 크기, 업로드 일시 등.
구현 방법 (백엔드):
- REST API: 글 작성, 조회, 삭제 엔드포인트 생성.
- 데이터베이스: 글 정보와 이미지 파일 정보를 저장하는 테이블 생성.
예외 처리:
- 제목과 내용의 유효성 검사.
- 이미지 파일 크기와 형식 유효성 검사.
- 삭제 권한 확인.
사용 흐름:
- 사용자가 마커를 클릭하여 댓글 작성 페이지로 이동.
- 댓글 입력 후 "작성" 버튼 클릭.
- 사용자는 작성한 댓글을 수정 또는 삭제 가능.
- 다른 사용자의 댓글에 대댓글 작성 가능.
데이터 저장:
- 댓글 정보: 작성자 정보, 내용, 작성 일시 등.
- 대댓글 정보: 부모 댓글 ID, 작성자 정보, 내용, 작성 일시 등.
구현 방법 (백엔드):
- REST API: 댓글 작성, 수정, 삭제, 대댓글 작성 엔드포인트 생성.
- 데이터베이스: 댓글과 대댓글 정보를 저장하는 테이블 생성.
예외 처리:
- 댓글 내용 유효성 검사.
- 댓글 수정 및 삭제 권한 확인.
보안 고려사항:
- 댓글 작성 권한 관리.
- 부적절한 내용 필터링.
사용 흐름:
- 사용자가 마이 페이지로 이동.
- 사용자가 입력한 정보(아이디, 비밀번호, 이메일 등) 조회.
- 사용자가 작성한 댓글 목록을 조회.
- 특정 댓글을 클릭하면 해당 댓글이 작성된 페이지로 이동.
데이터 저장:
- 사용자 정보: 아이디, 비밀번호, 이메일 등.
- 댓글 목록: 작성한 댓글 목록과 해당 페이지 정보.
구현 방법 (백엔드):
- REST API: 사용자 정보 조회, 댓글 목록 조회 엔드포인트 생성.
- 데이터베이스: 사용자 정보와 댓글 정보를 연결하는 테이블 생성.
예외 처리:
- 로그인 상태 확인.
- 댓글 조회 시 페이지 존재 여부 확인.
보안 고려사항:
- 사용자 정보 보호.
- 댓글 접근 권한 관리.
사용 흐름:
- 사용자가 커뮤니티 페이지로 이동.
- 글 작성 시, "파일 업로드" 버튼 클릭하여 사진 파일 선택.
- 선택한 파일은 글 작성 폼에 추가됨.
- 글 작성 완료 후 "게시" 버튼 클릭.
- 글 내용과 업로드된 파일이 서버에 전송되어 데이터베이스와 파일 스토리지에 저장됨.
데이터 저장:
- 글 정보: 제목, 내용, 작성자 ID, 작성 일시 등.
- 파일 정보: 파일 경로, 파일 이름, 파일 크기, 업로드 일시 등.
- 연결 데이터: 글 정보와 파일 정보를 연결.
구현 방법 (백엔드):
- REST API: 글 작성과 파일 업로드를 처리하는 API 엔드포인트 생성.
- 파일 저장: 업로드된 파일을 서버의 지정된 디렉토리에 저장하고, 파일 경로를 데이터베이스에 기록.
- 데이터베이스: 글 정보와 파일 정보를 저장하는 테이블 생성 및 연관 관계 설정.
예외 처리:
- 파일 크기 제한: 설정된 최대 파일 크기를 초과하는 파일 업로드 시 경고 메시지 표시.
- 파일 형식 제한: 허용된 파일 형식이 아닌 경우 경고 메시지 표시.
- 업로드 실패: 파일 업로드 중 오류 발생 시 경고 메시지 표시.
보안 고려사항:
- 파일 검증: 업로드된 파일에 대한 바이러스 검사를 수행.
- 파일 경로 보호: 업로드된 파일에 접근할 수 있는 경로를 안전하게 보호.
- 권한 관리: 파일 업로드 및 삭제 권한을 사용자 권한에 따라 제한.
지도 표시 API
- 마커 작성: 클라이언트에서 마커 정보를 생성하고 파일들을 첨부하여
Form-Data
형식으로 전송합니다. 서버는 생성된 마커 정보를 반환합니다. - 마커 단일 조회:
marker_id
에 해당하는 마커 정보를 반환합니다. 반환 시 관련된 파일 정보도 함께 포함됩니다. - 특정 사용자 마커 조회: 특정
member_id
의 모든 마커 목록을 반환하며, 각 마커는 파일 정보를 포함합니다. - 전체 마커 조회: 모든 마커와 관련된 파일 정보를 포함한 목록을 반환합니다.
- 마커 삭제: 특정
marker_id
의 마커를 삭제합니다.
글 작성 폼 표시
글 작성 API
글 조회 API
글 상세 조회 API
글 삭제 API
댓글 작성 API
대댓글 작성 API
댓글 수정 API
댓글 삭제 API
회원 정보 조회 API
회원 정보 수정 API
사용자 댓글 목록 조회 API
파일 업로드 폼 표시
- 파일 업로드
- Method: POST
- URL:
/api/files/upload
- Input:
file
: MultipartFile (사용자가 업로드할 파일)
- Response:
FileDTO
객체로, 업로드된 파일의 정보(원본 파일 이름, 저장된 파일 이름, 파일 유형 등)를 포함.
- Return Page: 없음
- HTTP 상태코드: 201 Created (파일이 성공적으로 생성되었음을 나타냄)
- 파일 수정
- Method: PUT
- URL:
/api/files/update/{fileId}
- Input:
fileId
: Long (수정할 파일의 ID)file
: MultipartFile (수정할 파일)
- Response:
File
객체로, 수정된 파일의 정보.
- Return Page: 없음
- HTTP 상태코드: 200 OK (파일이 성공적으로 수정되었음을 나타냄)
- 파일 조회
- Method: GET
- URL:
/api/files/{fileId}
- Input:
fileId
: Long (조회할 파일의 ID)
- Response:
File
객체로, 요청된 파일의 정보.
- Return Page: 없음
- HTTP 상태코드: 200 OK (파일이 성공적으로 조회되었음을 나타냄)
- 파일 삭제
- Method: DELETE
- URL:
/api/files/delete/{fileId}
- Input:
fileId
: Long (삭제할 파일의 ID)
- Response: 없음 (삭제 성공 시)
- Return Page: 없음
- HTTP 상태코드: 204 No Content (파일이 성공적으로 삭제되었음을 나타냄)