abstract class, Interface (항해일지 2일차)

김형준·2022년 5월 10일
0

TIL&WIL

목록 보기
2/45

오늘은 어제에 이어 chapter1 웹 개발 미니 프로젝트 개발을 진행했다.

1) 개발 현황

오전에는
1. 정규식을 통해 validation check를 마무리하며 회원가입 기능 구현
2. jwt 토큰을 생성하여 로그인 기능 구현
3. 토큰에서 받아온 본인의 닉네임을 담은 리뷰 작성, 조회 기능 구현

오후에는
1. 좋아요 테이블을 설계하여 음원id, 계정id, 전체count를 attribute로 갖는 liked entity를 생성했으며, 이에 db에 저장된 음원id에 따라 object들을 생성했다.
2. 메인 페이지의 음원 리스트의 객체 하나 하나에 본인이 누른 좋아요를 빈하트와 색칠된 하트로 구분하여 출력했고, 그 옆에 전체 카운트를 출력했다.
3. 좋아요 클릭 시 비동기적으로 해당 div의 하트 및 카운트 수만 바뀌도록 구현했다.
4. java 기본 문법 17강 까지 수강하며 추상화, 인터페이스에 대해 공부했다.
5. 객체지향 퀴즈로 상속과 인터페이스를 활용하는 코드를 작성했다. 객체지향은 역시 어려웠지만, 이해할 수록 점점 재미있었다. 향 후에도 공부하면 좋을 것 같아서 깃헙에 업로드했다.

✔클릭! abstract class, Interface 구현

2) 소소한 이슈

  1. 처음에 좋아요를 어떤 방식으로 저장할 지 고민이 많이 되었다. 머릿속으로만 구상하는 것보단 직접 테이블을 그려가며 작성하니 도움이 되었다.

    정말 간단한 테이블이지만 id값은 뭐로 설정할 지, 해당 id에 속한 유저들의 정보는 어떻게 담을지에 대한 고민이 이루어졌었다. 결국 해당 id의 유저 정보는 배열 형식으로 저장했다.

  2. 좋아요 버튼을 누른 뒤 이를 반영하기 위해 window.location.reload()를 사용했는데, 여러 리스트중 객체 하나의 div내용만을 위해 페이지 전체가 로딩되는 것은 상당히 비효율적이며, ux상으로도 불편함을 느꼈다.
    따라서 비동기적으로 바뀐 내용들만 반영되도록 고안했고, ajax의 success 코드에 바뀐 attr만 반영하는 식으로 바꿨다.

  3. 그러나 해당 정보만을 바꾸니 그전에 설정했던, onclick의 함수가 바뀌지 않아 좋아요 버튼을 계속 누르면 중복값이 반영되었다. 이를 방지하고자 서버단의 app.py에서 간단한 조건문을 통해 중복을 방지하는 코드를 작성했다.

3) 코멘트

현재 15시간이 지나도록 의자에 계속 앉아 있었다. 살면서 이토록 오랫동안 의자에 앉아있던 적은 처음이다.(밥먹을 때에도 같은 의자에서 먹었다..)
어제의 코멘트 대로 오늘은 강의를 들으며 jwt토큰이 발급되고 expire되는 과정을 공부했고, 나아가 java 공부도 할 수 있었다.
이대로 남은 97일도 열심히 달려보자!!!!!!!!!!!!!!!!!!!!!!!!!

profile
BackEnd Developer

0개의 댓글