내가 만든 데이터를 사용자들이 얼마나 사용하고 있을까?
데이터 접근 지수를 객관적으로 판단하고 시각화하는 방법에는 여러가지가 있지만,
테이블을 생성하고 쿼리문을 통해 조회하는 방법으로 수행했다.
방법은 아래와 같다.
0. 데이터 사용시마다 접속로그를 DB의 테이블의 행으로 추가

세션값, 아이피, 접속일시 등 목적에 맞게 컬럼을 생성해준다.
※ 참고로 세션아이디, 접속일시, 아이피 등을 입력하는 코드는 아래와 같이 작성했다.
// 세션 아이디
HttpSession session = request.getSession();
String session_id = session.getId();
// 접속 일시
java.util.Date currentDate = new java.util.Date();
java.sql.Timestamp cntn_dt = new java.sql.Timestamp(currentDate.getTime());
// IP 조회
$.getJSON("https://api.ipify.org?format=jsonp&callback=?",
function(json) {
console.log(json.ip);
}
);
1. 월간 접속로그 조회
SELECT CAST(EXTRACT(MONTH FROM 날짜컬럼명) AS INT) AS month,
COUNT(*) AS data_count
FROM 테이블명
WHERE EXTRACT(YEAR FROM 날짜컬럼명) = 2024
GROUP BY EXTRACT(MONTH FROM 날짜컬럼명)
ORDER BY EXTRACT(MONTH FROM 날짜컬럼명);
EXTRACT 함수는 날짜 및 시간 데이터 유형에서 특정 구성 요소를 추출하는 데 사용
CAST(~ AS INT)는 ~를 정수값으로 변환, 이를 사용하지않으면 3.0월 등으로 값이 표현되어버림
쿼리문을 해석하자면, 2024년에 해당하는 1월~12월 각 월별로 접속건수를 조회한다는 뜻이다.
현재는 3월에 해당되는 데이터만 존재하므로, 아래와 같이 결과가 나온다.

2. 주간 접속로그 조회
SELECT CAST(EXTRACT(MONTH FROM 날짜컬럼명) AS INT) AS month,
CAST(EXTRACT(WEEK FROM 날짜컬럼명) AS INT) - CAST(EXTRACT(WEEK FROM DATE_TRUNC('MONTH', 날짜컬럼명)) AS INT) + 1 AS week_of_month,
COUNT(*) AS data_count
FROM 테이블명
WHERE EXTRACT(MONTH FROM 날짜컬럼명) = 3
AND EXTRACT(YEAR FROM 날짜컬럼명) = 2024
GROUP BY EXTRACT(MONTH FROM 날짜컬럼명), week_of_month
ORDER BY EXTRACT(MONTH FROM 날짜컬럼명), week_of_month;
SELECT문에서 날짜 컬럼에서 주를 추출한다. (이를 "week_of_month"라는 이름으로 선택)
이때, 해당 월의 첫째 주부터 시작하여 주차를 계산. 즉, 현재 주차에서 해당 월의 첫째 주를 뺀 값을 더하고 1을 더함으로써 주차를 계산
쿼리문을 해석하자면, 해당연도와 해당월에 각 주차별로 접속건수를 조회한다는 뜻이다.
현재는 3월 4째주와 5째주에 해당되는 데이터만 존재하므로, 아래와 같이 결과가 나온다.

3. 일간 접속로그 조회
SELECT CAST(EXTRACT(DOW FROM 날짜컬럼명) AS INT) AS day_of_week,
COUNT(*) AS data_count
FROM 테이블명
WHERE EXTRACT(YEAR FROM 날짜컬럼명) = 2024
AND EXTRACT(WEEK FROM 날짜컬럼명) = 13
GROUP BY EXTRACT(DOW FROM 날짜컬럼명)
ORDER BY EXTRACT(DOW FROM 날짜컬럼명);
"DOW(Day of Week)"는 날짜에서 요일을 추출하는 함수.
일주일의 시작 요일을 0(일요일)부터 6(토요일)까지의 숫자로 반환
쿼리문을 해석하자면, 해당연도와 해당주차에 각 요일별로 접속건수를 조회한다는 뜻이다.
현재는 12주차(3월 4째주)와 13주차(3월 5째주)에 해당되는 데이터만 존재하므로, 아래와 같이 결과가 나온다.

3(목요일)에 83건이 조회되었다.
이를 Highchart를 활용해 시각화하였다. 샘플 데이터 양이 적어서 모양은 안예쁘지만..



하이차트 홈페이지에서 사용법을 익힐수있으니 아래 링크 참고
'GIS Data Analysis' 카테고리의 다른 글
| R Studio를 활용한 공간분석 - 생산 인구와 인구밀도 지표 분석 (0) | 2023.12.01 |
|---|---|
| ArcGIS(ArcMap)를 활용한 지오프로세싱(Geoprocessing) (0) | 2023.11.24 |
| 자주 사용하는 공간 쿼리 (0) | 2023.11.22 |
| GIS 기초 및 공간분석 용어 정리 (0) | 2023.01.31 |