프로젝트에 투입되면 사용할 툴일 WebSquare5, 웹스퀘어를 공부할 겸 게시판을 구현해보려고 한다.

1. PC 이미지 / 모바일 이미지 / 첨부파일
2. 카테고리
3. 전시 순서
이렇게 세 가지를 가장 고민을 많이 했다.
파일 저장
자료를 찾아보고 프로젝트 DB도 살짝 보니까 파일을 저장할 때 보안상의 이유로 기존 파일명과 다르게 다른 이름으로 저장한다는 것을 알게 되었다.
파일 확장자를 따로 뺀 설계도 있는 것 같지만 참여할 프로젝트 DB에서는 파일명에 한꺼번에 저장하고 있어 파일 확장자 컬럼을 따로 지정하지 않았다.
기획 상으로는 PC 이미지, 모바일 이미지, 첨부파일 모두 하나씩만 첨부가 가능하기 때문에 한 테이블에 모두 넣었다.

카테고리
계속 하위 카테고리를 생성할 수 있는 경우에는 경로 열거 컬럼(ex.일상/후기)이나 중첩 집합(left, right 사용)등의 방법을 사용할 수 있지만 기획 상 처음에 2 Depth까지만 생성 가능하게끔 설정해두었기 때문에, parent_id 컬럼을 추가하는 인접 목록 방법을 사용했다.

전시 순서
사실 이 부분은 구현하면서 바뀔 수 있는 부분이다.. 처음에 기획을 할 때 카테고리 별 전시 순서를 생각하지 않았다가 나중에 피드백을 받으면서 생각을 해보게 되었다.
일단 현재로서는 전체 카테고리 기준으로 전시 순서를 받고, FO에서 카테고리 별로 게시글을 조회할 경우에도 기존 전시 순서를 order by 해서 노출하는 것으로 설정 해두었다.
이외 피드백 받았던 부분
컬럼명을 직관적으로 지정하기
- name보다는 category_name처럼 명확한 컬럼명을 사용
- 나중에 작업할 때 name만 보면 어떤 데이터를 의미하는지 헷갈릴 수 있음
- 등록/수정 정보 컬럼 추가
- 모든 테이블에는 기본적으로 등록일시(created_at), 등록자(created_by), 수정일시(updated_at), 수정자(updated_by) 컬럼을 포함
- 구분 데이터 값 코드화
- 일반/공지 같은 문자열 대신 0/1과 같은 코드 값으로 관리하는 것이 더 효율적
- 등록/수정 정보 컬럼 배치 순서
- 등록일시(created_at), 등록자(created_by), 수정일시(updated_at), 수정자(updated_by) 컬럼은 테이블에서 가장 마지막에 배치
- 전시 여부 값 표기 방식 변경
- 1/0보다 Y/N으로 관리하는 것이 직관적
'Java > SpringBoot' 카테고리의 다른 글
[SpringBoot] 파일 업로드 시 서버에 해당 파일이 즉시 적용되지 않는 문제 (정적 리소스 경로 설정) (0) | 2025.03.20 |
---|---|
[SpringBoot] 엑셀 다운로드 기능 구현 (0) | 2025.03.14 |
[SpringBoot] 게시글 검색, 삭제, 전시 순서 변경 API (0) | 2025.03.05 |
[SpringBoot] Swagger 기본 설정 (0) | 2025.02.14 |
[SpringBoot]Cannot resolve symbol 'servlet' 오류 해결 (0) | 2023.04.11 |