오늘은 오전, 오후에는 css작업을 어느 정도 하고 저녁에는 어드민 로그인을 구현했다. 어드민에는 회원가입도 필요 없고 로그인도 기존에 사용자단에서 로그인 시 필요한 인터셉터와 jwt가 이미 만들어져 있었기 때문에 금방 만들 수 있을 거라고 생각했다. 일단 어드민 계정 생성을 위해 엔티티를 만들어 주고 어드민 계정은 db에 직접 하나 넣어줬다. 이후 로그인 시 프론트에서 입력받은 계정이 어드민 계정인지 아닌지 검증하기 위한 로직을 작성해주고 로그인이 성공하면 입력받은 아이디를 jwt를 이용해 토큰으로 만들어서 해당 토큰을 프론트로 전달했다. db에 넣어준 어드민 계정으로 로그인 성공 시 토큰이 잘 전달되는지 로그인을 해봤는데 정상적으로 accessToken을 받은 것까지 확인할 수 있었다. 이제 어드민 ..
오늘은 최상위 게시판(EPL, LaLiga, SerieA, Bundesliga) 4개 중 어떤 게시판의 비중이 가장 큰지 알기 위해 4대 리그 게시판별 게시글을 종합하는 작업을 했다. 예를 들어 EPL 게시판을 부모로 갖고 있는 하위 게시판에 있는 게시글을 모두 종합하는 작업이다. 그런데 리그 게시판이 하위 게시판들의의 게시글을 갖고 있지 않아 findAll 같이 간단하게 구할 수 있는 문제가 아니였기 때문에 어떻게 모든 게시판의 게시글을 찾을지 고민을 했다. 우선 게시판의 구조가 총 3 depth(리그 게시판 -> 팀 게시판 -> 선수 게시판)로 구성된 게시판이기 때문에 리그 게시판을 부모로 갖고 있는 모든 팀 게시판을 리스트로 담아 팀 게시판 하나하나당 게시글의 개수를 더한 다음 또 팀 게시판 하나하..
오늘은 어드민 기능 중 인기 게시글을 파악하기 위한 통계 관련 기능을 구현하는 것을 목표로 했다. 조회수가 가장 높은 게시글 순위, 댓글이 가장 많이 달린 게시글 순위, 좋아요를 가장 많이 받은 게시글 순위 이렇게 세 가지 순위를 통계자료로 보여주기로 기획했었다. 조회수가 가장 높은순으로 게시글 3개를 어떻게 가져올까 생각하다 이전에 동료 한분이 평점순으로 장소를 가져오려고 했던 게 생각이 났다. 조회수 순으로 가져오는거랑 평점순으로 가져오라 방법은 똑같을 거라고 생각을 해 아샬 님이 평점순으로 장소를 가져오는 방법에 대해 답변을 주신 메가 오버플로우를 찾아봤는데 findTop3 OrderBy~~ 이런 형태로 가져올 수 있다는것을 알게 되었다. 바로 아래와 같이 코드를 작성했다. Hit(조회수)를 기준으..
오늘은 기존에 구현했던 채팅 기능을 더 보완하는 작업을 했다. 작업 목표는 카카오톡처럼 자신이 쓴 채팅과 상대방이 쓴 채팅의 말풍선 색이 다르게 보이도록 하고, 상대방의 채팅 말풍선에 상대방의 닉네임을 노출시키도록 하는 것이었다. 기존에는 누가 채팅을 치든 구분이 안되어서 익명 채팅방 같은 느낌이었는데 말풍선과 닉네임을 노출시켜 구분이 가도록 하는 것이었다. 우선 위와 같은 기능을 구현하기 위해 고민했던 건 자신이 쓴 채팅과 다른 사용자가 쓴 채팅을 어떻게 구별할지였다. 우선 두 가지 방법을 떠올렸는데 아래와 같다. 1. 채팅을 보낼 때 아래와 같이 자신의 닉네임(writer)을 같이 보내게 했기 때문에 메시지를 받는 사용자도 writer가 누구인지 알 수 있어 메시지를 받을 때 writer와 현재 로그..
오늘은 등업 신청 관련해서 마음에 들지 않는 부분이 있어 기능을 좀 더 보완해봤다. 이전에 등업 신청 방법은 사용자가 등업 신청을 하면 관리자가 수락할 때까지 신청 상태가 어떻게 되었는지 알 수가 없었다. 등업 신청이 수락되었는지 알수있는 방법도 자신의 등급이 신청한 등급으로 되어있으면 수락된 상태인 것을 알 수 있는 이상한 상태였다. 그래서 이 형태를 수정하기위해 생각해낸 방법은 등업 신청 게시판에서 자신의 등업 신청 현황이 보이게 하는 것이었다. 등업 신청 현황은 자신의 것만 보이게 하고 신청 상태를 3가지로 나눠봤다. 1. 진행중인(심사중) 상태 2. 신청 완료된 상태 3. 거절된 상태 등업 신청 게시판에 자신이 이전에 신청했던 기록도 모두 볼 수 있도록 신청이 거절되어도 해당 신청 글을 지우는 게..
오늘의 작업 목표는 게시판을 생성하는 기능인데 게시판을 그냥 생성하는 게 아니라 게시판 하나를 선택하면 선택한 게시판의 하위 게시판이 생기는 기능이었다. 예를 들어 EPL 게시판이 존재하면 하위 게시판으로 토트넘, 아스날 등등 팀 게시판을 생성할 수 있고 또 토트넘 팀 게시판에 손흥민, 헤리케인 같은 선수 게시판을 생성하는 것이었다. 기존에 게시판 Entity를 만들 때 위와 같은 기능을 구현하기 위해 게시판 Entity를 설계할 때 게시판 필드에 상위 게시판 아이디 값을 참조하기 위한 parentId 값을 생성했었다. 그래서 관리자 페이지에서 게시판을 생성할 때 작업 설계를 아래와 같이 했다. 1. 관리자 페이지에 현재 게시판을 리스트 시킨다. 2. 현재 존재하는 게시판 중 하위 게시판을 생성할 게시판..