Tiny Star

🏕️내일배움캠프/📂개발자를 위한 공모전 사이트(23.08.16)

개발자를 위한 공모전 사이트 (&&) 6일 _ 실시간 상태 업데이트/하위 카테고리 구현

청크 2023. 8. 23. 21:22

스파르타 코딩클럽_ 내일 배움 캠프 Spring 트랙 6기

[프로젝트] 개발자를 위한 공모전 사이트 (&&)

2023.08.16 ~ 2023.09.15

 

<프로젝트 정보>

개발도구 : IntelliJ

프로그래밍 언어 : Java

데이터베이스 : MySQL

프레임워크 : Spring / Spring Boot / Spring Security

와이어프레임 : Figma

ERD 설계 : ERD Cloud

Storage : AWS S3

Front : HTML / CSS / JavaScript / JQuery / Bootstrap

 

<프로젝트 내용>

프로젝트 순항 중 마주친 오늘의 문제&오늘의 미팅

 

하루에 한번 날짜에 따라 공모전의 상태 변경을 어떻게 할 것인가?

-> 팀원들끼리 고민해 본 방향은 스케줄러를 사용해 밤 12:00 마다 당일 날짜에서 공모날짜를 빼서음수, 0, 양수 조건에 맞춰 쿼리를 날림과 동시에 상태를 변경하는 건 어떨까라는 의견으로 모였다.

 

튜터님께 팀원들과 모은 의견을 말씀드리면서 질문을 드렸는데 결론적으로 우리가 생각한 기능은가능은 하지만 분명 문제가 생긴다는 것

 

1. 스케줄링을 사용하게되면 관리 포인트가 늘어나게되고,2. 업데이트 시간이 100% 일치한다고 보장할 수 없다는 단점이 있다

 

예를 들어 업데이트 시간이 자정일 경우 스케줄링이 완료되는 시간과 맞지 않는다면 그 사이에 유입된 유저는공모전 신청이 가능해진다.DB에 데이터가 쌓이거나 에러가 났다 스케줄링 동기화되는 시간이 길어지기 때문에 비효율적이고만약 스케줄링을 사용하고 싶다면 프론트단에서 입력을 막는 작업을 추가로 구현해줘야한다.

 

튜터님이 추천해주신 가장 좋은 방법은 시작일/종료일을 Entity에서 받아서 관리하는게 효율적이라고 하셨다.

 

하위카테고리 처리방안

무한?뎁스로 들어가는 하위 카테고리 처리를 어떻게 할 것인가?

 

주요 사항: 창민님 의견 정리

상위 카테고리 테이블을 만들고 (Entity)

중간 카테고리 테이블 만들고 (Entity 추가, 상위테이블과 연관관계를 맺어서 중간카테고리 역할)

하위 카테고리 테이블을 만들고 (Entity 추가, 중간-하위 연관관계)

공모전하고 하위카테고리 사이에 중간테이블(2번과 별개)을 만들고 - n대n 해제?를위해

게시글을 생성 시 카테고리를 지정하기 때문에 중간테이블에는 선택한 카테고리마다 데이터가 생성이 됨

⇒ 어떤 조건으로 조회를하든 (하위카테고리)여기 저기서 전부 게시글을 중복으로 조회할 수 있음

 

아직 어떻게 처리할 지 결정이 되지는 않아서 내일 아침에 다시 팀원들과 이야기 해 볼 예정이다.