개발이야기/개념

게시판에서 공지 기능 만들기

대머리개발자 2023. 12. 7. 12:20
728x90

 

게시글 중 특정 게시글을 "상단 고정" 해야 하는 기능이 요건이다.

쉽게 말에서 공지글이다. 

네이버 카페

 

기본적으로 공지글은 정렬값 컬럼을 두고 해당 컬럼으로 order by을 하면  상단 고정 할 수 있다.

 

문제는 상단 고정 했던 글들을 내리면 해당 카테고리(메뉴)에서 원래 자리로 돌아 가는 것이 아닌 상단 고정 했던 글들만 별도로 보여줘야 한다. 그리고 내린 글을 다시 공지글로 수정하면 해당 게시판에 상단고정이 되어야 하고

 

왔다갔다.. 내 머리도 왔다갔다...             

 

요구사항이 추가될 때마다 코드를 수정하는 것이 아니라 범용적으로 사용할 수 있도록 만들자!!!

 

게시판에 옵션을 가지고 있는 카테고리를 만들었다.

모든 게시판은 카테고리를 가져야 한다. 해당 카테고리의 옵션이 게시판의 특성이 되는것이다.

 

 

확실히 뭔가 flow 정리하고 진행하면 복잡도는 내려가는것 같다.

draw.io에서 피그마로 쓰니깐 신세계네..

비교가 될라나 모르겠지만 이클립스 쓰다... 인텔리제이로 바꿨을때 느낌이다. ㅎㅎ

 

핵심 키워드는 두가지이다.

게시글을 등록할 때 해당 카테고리 옵션으로 공지 기능 관리

공지와 자유 게시판이 이동이 가능하도록 서로의 카테고리(메뉴) ID를 알고 있는 상태

 

게시판을 불러오는 조건은 아래와 같다.

.where( QBoard.board.status.eq(EntityStatus.ACTIVE)
                    .and(QBoard.board.menuId.`in`(searchInfo.menuId))
             )
.orderBy(QBoard.board.noticeType.desc())    // 공지글 상단에 두기 위한 정렬           
.orderBy(QBoard.board.groupId.desc())
.orderBy(QBoard.board.path.asc())
.offset(searchInfo.filter!!.pageIndex)
.limit(searchInfo.filter!!.pageSize)

 

결국 공지글도 같은 카테고리(메뉴)에 속해 있어야 한다.

그래서 조금은 복잡하지만 서로 이동될 수 있도록 고민한 부분이다.

 

네이버 카페와 같은 정도의 공지글 기능이라면.. 정렬값의 우선순위만 조지면 되는데... 살짝스 고민을 하게 만든다..

 

서로의 카테고리를 알고 있는 상태보다...더 괜찮은 프로세스가 글을 쓰다 보니 생각이 났다.

 

게시판 상태로

 

1. status == active, noticetype == 0 : 일반글

2. status == active, noticetype == 1  : 공지글

3. status == down, noticetype == 1 : 공지글인데 내렷어

4. status == delete : 삭제

5. status == temp : 임시글

 

 

고민은...늘 옳다.. 그냥 복사 붙여넣기로 끝나는 것이 아니라 적어도..왜? why?.. 생각좀 하자..

 

모든 것이 좋았따

728x90