n.png

 

 

 

 

n2.png

 

 

 

글 작성자와 댓글 작성자 닉네임 옆에도 동일한 정보를 이용해 표시해 주었습니다. 이왕 최근 활동을 기록하고 있으니 여러곳에서 활용하면 좋을 것 같네요. 쿼리 자체가 아주 가벼운 것이라 부담이 없습니다.

 

 

 

 

n3.png

위젯에는 접속인수도 표시되도록 추가해 봤어요~

웹지기

profile
10년을 다루다 보니 이제 간단한 것도 만들고 커뮤니티 운영에 관한 다양한 노하우가 있습니다. 어려운 점이나 가지신 생각을 함께 소통해 보아요.
https://rxtip.kr/ 라이믹스 꿀팁
  • profile
    가벼운 쿼리라도 여기저기에서 너무 많이 사용하면 문제가 될 수 있는데요... 설마 댓글마다 쿼리가 한 번씩 추가로 들어가는 건 아니겠죠? 한 페이지를 로딩할 때 1) 현재 접속자 정보 저장 2) 최근 접속자 리스트 불러오기, 이렇게 딱 2번만 쿼리가 발생해야 할 텐데 말이지요.
  • profile profile

    댓글 작성자가 최근 접속자인지 확인하는 과정은 필요합니다.
    문서 페이지에서 최근 접속자를 가져옵니다. (최근 10분 이내 로 조건을 주어 가져와서 아주 간략한 정보이구요.)

    댓글 작성자의 회원번호가 이 가져온 접속자 회원번호 중에 하나인지는 체크를 필수적으로 해야 하는 상황이죠.
    이건 로그인 회원의 경우 댓글 작성자가 내가 팔로우한 회원인지 확인하는 것과 같은 방식입니다.

     

    두가지 식별을 제공하는 정도는 무리가 가지 않는다 판단해서 제공하기로 했습니다.

     

    줄여서 다시 쓰면, 최근 접속자 정보 쿼리는 딱 1번만 합니다. 그리고 댓글 출력 단계에서는 쿼리는 없고 회원번호 포함여부만 비교해서 출력 여부를 판단해서 출력해줍니다.

  • profile profile
    제가 예전에도 게시판 스킨의 일반목록에서 나름 제가 생각하기에 너무 구조적으로 효율이 떨어지는 것을 고쳐가며 쓰는 상황까지 고려할 수 있는 상황은 된 것 같습니다. XE 관련지식이 전무 할때는 전혀 생각지도 못하고 알 수 도 없던 그런 정보들이었죠. 세션인증 DB 사용도 그런 시절에는 무식하게 사용하곤 했습니다.

    게시판 목록도 불필요한 반복구간에서 대상 순서 확인하는 과정을 빼버리고 픽스된 순서로 사용하기로 했구요. 그리고 베스트댓글이 포함된 댓글을 표시해 주는 것도 제거한 이유가 말씀 하신 부분이 실제가 무겁게 작동했기 때문이에요.

    그래서 최근 아쉬운 기능이라 짱구를 굴려 베스트 댓글인지 모든 댓글을 확인해서 판단해야 하는 무거운 구조가 아닌 달린 댓글의 추천수 중 가장 높은 추천수를 문서마다 전부 가질 수 있게 만든 후 그 정보를 열람해서 바로 출력할 수 있게 해 주었답니다.

    이제는 아무리 좋은 기능이라도 서버에 1이라도 무리를 주는 것들은 절대로 적용안하고 있어요. 그것이 절대적으로 필요한 상황이 아니라면요......
  • profile profile
    그리고 댓글 달아주셔서 생각난거 하나 더 적어볼게요.

    이 현재접속자 출력해주는 애드온,위젯 의 경우 서버에 심한 부하없이 현재 접속자를 보여 줄 수 있는 것에 촛점을 맞추어 개발된 것이더라구요. 하도 오래던에 구해 놓은 것이라 그때는 이런 것을 알아챌 수 없었습니다.

    엇그제 현재접속자를 확인하고 싶다는 글을 보고 갑자기 내가 가진 애드온이 상각나 애드온과 위젯을 열어보게 되었습니다.

    부하를 거의 주지 않고 사용이 가능한 것이라 사용해 보기로 하고 제 스타일로 조금 고친 부분이 있습니다.

    애드온 매번 페이지 리프레시때 마다 현재시간을 update 되도록 되어있었습니다.
    -> 저는 굳이 실시간 적일 필요 있나 ? 라는 생각에 처음에는 10분 ? 5분 ? 생각을 했는데 실제 적용해보니 1분 정도로 해도 큰 무리가 없어 보여 1분마다 코드가 재실행되도록 고쳤습니다. 회원이 움직일때마다 db에 현재시간을 바꾸는게 아닌 1분 정도에 한번씩 갱신해 줘도 충분하고 넘쳐 보였구요.

    위젯의 경우 미완성인 것 같더라구요. 뭔가 설정의 것이 실제 php와 쿼리에 반영이 안되어있다던가...
    그런데 결정적으로 눈에 보인 것은 위젯에 접속자를 언제 이전 시간까지 를 현재 접속으로 해서 보여줄지 설정이 있는데 이게 테이블 전체를 가져온다음 login 타임에서 설정의 시간 기준까지만 반복을 돌리고 끊어 버리는 방식을 취했더군요.

    그래서 이 것도 쿼리에 아예 login타임 시간 기준값을 넣어 more 의 대상만 가져오는 것으로 고쳤습니다.


    그냥 써도 크게 비효율적이거나 무겁진 않았지만 성격 상 눈에 보이는건 그냥 지나치지 못하는... 괴상한....