deedee0905 / CreateType

0 stars 0 forks source link

조회수 체크 api #18

Open deedee0905 opened 1 year ago

deedee0905 commented 1 year ago

조회수 체크 api

deedee0905 commented 1 year ago

좋아요 중복 체크 방지 어느 부분에서 에러가 있는지를 못 찾아내어서 조회수 체크 기능을 빠르게 완성하려고 하였는데 post 테이블에 있는 특정 칼럼을 활용하여 view 페이지를 채우는 작업에서 애를 먹고있다.

category 값으로 충분히 조회를 할 수 있을 것 같을때 왜 안될까?? 오늘 너무 코드를 많이 봐서 잠시 프로그램을 좀 닫고 깃허브로 백업해둔 다음 이따 아이패드로 깃허브 들어가서 다시 봐야할 것 같다..

deedee0905 commented 1 year ago

어제는 잘 안풀리던 부분이 오늘은 되어서 조금 어리둥절 하고있다. 분명 어제도 forEach 반복문 코드를 써서 테스트를 해보았던 것 같은데.. 너무 장시간 앉아만 있었더니 집중력이 흐려졌었는지.... 그땐 안 됬었는데 암튼 지금은 되었다.

특정 카테고리 값을 가지고있는 post 테이블의 데이터 중에 제목과 본문 내용을 가지고 오는걸 해내었으니 이제 다른 디테일 부분을 출력할 수 있도록 코드를 좀 더 수정해야겠다!

그리고 거기까지 완성되면 조회수 체크 api를 바로 만들어야겠다 :-) !

deedee0905 commented 1 year ago

a태그의 href 이동과 클릭 이벤트는 동시에 실행될 수 없는걸까? 특정 카테고리를 누르면 탭의 색깔이 바뀌게끔 만드는 이벤트를 걸어두었는데 a태그의 href가 동작되지 않았다. 페이지 소스보기를 통해서 보니 href는 정상적으로 걸려있고 눌러보면 페이지 이동도 되는데 클릭 이벤트가 먼저여서인지.. 테스트하는 화면에서는 기능 두 개가 다 실행되는건 아니라 우선 클릭 이벤트를 잠시 빼두었다.

deedee0905 commented 1 year ago

post 테이블에 저장되어있는 포스트의 제목과 본문 내용을 가져와서 jsp에서 출력하는 부분까지는 완성했는데, 작성자의 닉네임은 어떻게 가져올까? 고민하던 와중에 로그인하면서 세션에 정보를 저장했던게 기억이 났다.

세션에 저장된 정보니 쉽게 끌어다가 쓸 수 있을 것 같은데? 싶어서 el태그를 적용해보았는데 원하던대로 한 번에 성공했다!!

이제 조회수를 체크하는 api 기능을 구상해봐야겠다.

deedee0905 commented 1 year ago

조회수 api를 만드는 부분까지 완성했다.

조회수를 insert 하는 api를 만드는건 딱히 어렵지 않았는데, 화면을 채우고 있는 데이터들의 postId를 얻는 방법이 까다롭지 않을까? 고민을 했었던 것 같다. 근데 예상외로 postId도 금방 얻어와서 생각보다 너무 잘 풀렸다!!

이제 select 기능을 이용해서 조회수 테이블에 저장되어있는 데이터의 수를 카운트하고 화면상에 표시 할 수 있도록 만들어야겠다.

deedee0905 commented 1 year ago

단일 포스트 view 페이지에서 viewCount 테이블에 저장된 postId의 개수대로 카운트 된 숫자를 표시해주는 것 까지는 완성하였다.

카테고리 탭에서도 viewCount를 표기하고싶은데, postId패러미터가 필요하지만 해당 페이지에서 패러미터로 그 값을 받자니 맞지가 않아서 어떻게 데이터 출력을 시켜야할까? 다시 고민중이다.

우선은 밀린 일정들이 있으니 다른 개발을 하면서 조금 시간을 들여 데이터 구조를 생각해봐야겠다.

deedee0905 commented 1 year ago

조회수 api에서 parameter 값으로 userId와 postId 두 가지를 받도록 설계했었는데 이렇게 만드니 로그인을 하지 않은 상태에서는 조회수가 카운트 되지 않는 에러가 발생했다.

발행된 게시글을 보는 것은 로그인을 굳이 하지 않아도 되는 부분이라 기존에 만들었던 viewCount 테이블을 드랍하고 userId 부분을 빼고 다시 테이블을 만들었다. api를 수행시키는 내부 코드도 수정하였고 다시 정상적으로 기능이 수행되는 부분 확인했다.