Skip to content

songhajang/view-ranking-dashboard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 실시간 인기 장소 추천

본 프로젝트는 여러 장소의 조회수를 실시간으로 분석하여, 사용자에게 인기 있는 장소를 추천하는 시스템입니다.


✅ 목표

  • 장소별 조회수를 랜덤으로 증가시키고, 실시간 조회를 통해 데이터가 항상 최신 상태로 유지.
  • 실시간 조회수 기반 장소 소개를 제공하여, 변화하는 데이터를 시각적으로 확인.

👥 팀원

장송하 문민경


📌Cron이란?

리눅스/유닉스 계열에서 주기적 작업을 자동으로 실행하게 해주는 도구
특정 시간, 특정 요일, 일정 간격 등으로 명령어나 스크립트를 자동 실행 가능
반복적인 업무를 사람이 수동으로 하지 않아도 처리할 수 있음

명령어 정리

crontab 파일 : 어떤 작업을 언제 실행할지 정의하는 설정 파일
주기 표현식 : 분 시 일 월 요일 명령어 형태

cron 파일 수정 명령어

crontab -e

을 사용하여 cron 설정 파일을 수정 및 예약을 걸 수 있음

예약걸기

* * * * * ${파일위치명}.sh
매분(* * * * *) 쉘 스크립트 실행

⚙ 개발 환경 및 도구

  • IDE / OS: VS Code / Ubuntu 22.04
  • 사용한 라이브러리: Nginx / Cron / Awk
  • 가상 환경: VirtualBox (Linux VM)
  • 협업 도구: Slack

📁 파일 구조

/home/ubuntu/YGJG/
 ├── place_list.csv       # 장소 목록 (추천 데이터의 원본 CSV)
 ├── rank_log.log         # 추천 내역 로그 파일
 ├── top_rank.txt         # 랭킹 top5개만 저장하는 파일
 ├── range_rank.html      # 웹에서 보여지는 실시간 랭킹 페이지
 ├── update_range_rank.sh # 데이터 갱신 및 로그 기록용 스크립트
 └── tmp.csv              # 임시 파일 (데이터 갱신 시 사용)

📑 데이터 포맷

AI 에이전을 활용하여 더미 데이터 100개를 생성하고, 아래 컬럼 구조에 맞춰 데이터를 구성.

컬럼명 설명 예시
카테고리 데이터 유형 (예: 맛집, 카페 등) 맛집
파일명 리뷰가 저장된 파일 이름 광안리_20240315.txt
장소 방문한 위치 이름 광안리 해수욕장
방문 날짜 실제 방문한 날짜 2024-03-15
별점 1~5점 척도로 평가 5
리뷰 방문 경험에 대한 상세 설명 직원분들이 친절해서 기분 좋게 다녀왔습니다.
조회수 리뷰 조회 횟수 88
폴더 주인 리뷰 데이터 폴더 소유자 정보 3040
폴더 마지막 수정 시간 폴더가 마지막으로 수정된 날짜와 시간 2024-11-27 01:48:13

📊 실시간 조회수 시연

시연영상
실시간 로그 (rank_log.log)

실시간 생성 로그를 통해 조회수 증가와 최신 상태를 확인합니다.

==== Fri Sep  5 04:27:01 PM KST 2025 ====
카테고리,파일명,장소,방문 날짜,별점,리뷰,조회수,폴더 주인,폴더 마지막 수정 시간
카페,에버랜드,썬더폴스,2024-10-19,5,주차가 불편했지만 음식은 정말 훌륭했어요.,5256,78,2025-01-10 01:48:13
카페,상암 맛집,상암 불백집,2024-07-18,5,가격 대비 만족도가 높아요.,5000,87,2025-05-07 01:48:13
레저,강릉,강릉항,2024-05-13,4,가격 대비 만족도가 높아요.,3651,95,2025-07-30 01:48:13
여행,수원,수원 화성,2024-11-12,5,맛은 있었지만 양이 조금 부족했어요.,3392,95,2025-08-15 01:48:13
여행,부산,해운대,2024-06-30,2,특별한 날에 방문하기 좋은 분위기였어요.,3197,71,2025-06-21 01:48:13

==== Fri Sep 5 04:28:01 PM KST 2025 ==== ...

TOP5 조회수 장소 (top_rank.txt)

최신 조회수가 높은 TOP5 장소만 저장하여 웹페이지에 실시간 반영.

문화,에버랜드,사파리월드,2025-04-14,2,1,5525,81,2025-03-05 01:48:13
맛집,상암 맛집,상암 김치찌개골목,2024-07-23,4,생각보다 별로였고 재방문은 하지 않을 것 같아요.,5219,91
레저,강릉,경포대,2025-01-07,5,가성비 좋은 곳이라 친구들에게 추천하고 싶어요.,3922,82
여행,수원,팔달문 시장,2024-06-02,5,가격 대비 만족도가 높아요. 다시 방문하고 싶습니다.,3652,83
맛집,부산,광안리 해수욕장,2024-03-15,5,직원분들이 친절해서 기분 좋게 다녀왔습니다.,3479,88

🚀 트러블슈팅

1️⃣ CSV 조회수 업데이트

  • 목표: 조회수 랜덤 증가, 상위 3개 항목 로그 기록, 파일명 중복 처리
  • 문제: 컬럼 번호 오류, 랜덤 증가 누락, 정렬 오류
  • 해결: 컬럼 수정 + TMP 파일로 안전 덮어쓰기, srand() 적용, 중복 제거 후 조회수 기준 정렬

2️⃣ 403 이슈

  • 목표: txt 파일 브라우저 표시 + 실시간 반영
  • 문제: 403 Forbidden, 정적 HTML 변경 반영 안됨
  • 해결: 디렉토리/파일 권한 조정, 소유권 변경, Nginx 설정으로 실시간 HTML 서빙 가능

💡회고

  • cron과 스크립트를 활용하여 로그 파일을 주기적으로 업데이트하고, awk를 이용해 데이터 처리 및 상위 5개 항목 집계 기능을 구현하며 실시간 데이터 처리와 자동화 경험 능력을 향상시켯다.
  • 개발 중 발생한 권한 문제나 파일 접근 오류를 디렉토리 및 파일 소유권/권한 조정을 통해 해결하며 실무적인 트러블슈팅 경험을 쌓으며, 문제 해결 능력을 강화 시켰다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • HTML 100.0%