DOI QR코드

DOI QR Code

Development of a Social Network Service Closely Coupled with Local Broadcasting Media

  • Kim, Hyeon Gyu (Div. of Computer Science and Engineering, Sahmyook University)
  • Received : 2021.09.14
  • Accepted : 2021.11.05
  • Published : 2021.11.30

Abstract

Recently, local broadcast companies are experiencing financial shortages and business deterioration due to difficulties in securing income sources. This is due to the continuous decrease in viewership ratings as the contents of the broadcast companies do not attract the interest and participation of local residents. To resolve this issue, this paper presents a social network service closely coupled with local broadcasting. In the proposed service, the exposure range of articles is limited to a region so that reporters could easily find the interests of local residents. In addition, among the articles written by local residents, the articles requested to be broadcast by reporters are placed at the top section of the main page. From this UI configuration, local residents can easily recognize that their opinions can be directly connected to the broadcast, which is intended to activate their participation. The proposed service was implemented in the form of a prototype system with JCN, a broadcasting company in Ulsan, and this paper discusses its user interfaces, system structure, and an algorithm to estimate the priority of the written articles.

현재 지역 방송사들은 수입원 확보의 어려움으로 인한 재정 부족과 경영 악화를 겪고 있다. 이는 해당 방송사들의 컨텐츠가 지역민들의 관심과 참여를 이끌어내지 못해 시청률이 지속적으로 감소하는데 기인한다. 이러한 문제를 해결하기 위해, 본 논문에서는 지역 방송과 밀결합된 소셜 네트워크 서비스를 제안하였다. 제안 방법에서는 작성글의 노출 범위를 지역으로 한정하여 기자들이 손쉽게 지역민들의 관심사를 찾을 수 있도록 구성하였다. 또한 지역민들의 작성글 중 기자가 취재 요청한 글들은 메인 화면의 상단에 배치함으로써, 지역민들의 의견이 방송과 직접적으로 연결될 수 있음을 한 눈에 알아볼 수 있도록 사용자 인터페이스(UI)를 구성하였다. 이는 지역민들의 참여를 활성화하고자 위함이다. 제안한 서비스는 울산 지역 방송사인 JCN과 함께 프로토타입 시스템의 형태로 구현되었으며, 본 논문에서는 해당 시스템의 UI 및 시스템 구조, 작성글의 우선순위 산정 알고리즘 등에 대해 소개한다.

Keywords

I. Introduction

2021년 방송사 현황을 살펴보면, KBS, MBC, SBS, EBS를 포함한 4개의 공영방송과 50여개의 지역방송사[1], 그리고 80여개의 케이블 TV 방송사[2] 등으로 구성되어 있다. 이들 중 대다수를 구성하는 지역 및 케이블 방송사들은 현재 수 입원 확보의 어려움으로 인한 재정 부족과 경영 악화를 겪고 있다. 이는 해당 방송사들의 컨텐츠가 지역 시청자의 관심과 참여를 이끌어내지 못하고 외면을 받고 있음에 기인하며, 이는 다시 광고 수익의 감소 등으로 이어진다[3].

위 문제의 해결 방안 중 하나로, 지역 방송사에서 지역 밀착 컨텐츠 취재 및 제작을 보다 활성화해야 한다는 의견이 제시되었다[4-6]. 이는 지역 방송사에서 다루는 컨텐츠가 해당 도시의 시정·교통·교육·경제 정보 등을 자세히 알려줌으로써 지역민들 생활에 실질적인 도움이 되어야 한다는 점을 강조하는 한편, 지역주민들이 직접 방송에 참여할 기회가 늘어날 경우 해당 방송에 대한 애착심도 높아져 시청률의 상승으로 이어질 수 있음을 언급하였다.

지역민들의 관심사나 이슈를 실시간으로 알아내기 위해서는 이들을 실시간으로 감지해낼 수 있는 적절한 매체가 필요하다. 이와 관련하여 생각해볼 수 있는 가장 간단한 해결책은 지역 방송사에 속한 기자들이 페이스북이나 인스타그램 등의 소셜 네트워크 서비스(SNS)를 통해 지역민들이 올린 글들을 주기적으로 검색하고, 검색 결과로부터 지역민들의 관심사를 추출해내는 것이다. 그러나 이 방법은 아래의 측면에서 한계를 지닌다.

• [3]에서도 언급한 바와 같이, 지역방송사의 종사자 수는 최근 4년간 연평균 1.57% 감소하고 있고 신규 인력 충원이 이루어지지 않아, 조사에 필요한 인력이 크게 부족한 상황이다.

• 페이스북이나 인스타그램 등 대중적으로 이용되는 SNS에서는 검색 범위를 특정 지역으로 한정시키기 위한 기능이 제공되지 않는다. 따라서 검색 범위가 매우 방대해질 수 있다.

• (다수의 팔로워를 보유한 인플루언서가 아닌) 일반지역 주민들이 올린 글은 검색 결과에 노출되지 않을 확률이 높다. 따라서 지역 주민들의 다양한 관심사를 알아내기가 어렵다.

결국, 지역 방송사가 처한 문제를 해결하기 위해서는 지역민들의 관심사를 쉽게 찾을 수 있는 새로운 형태의 매체가 필요함을 알 수 있다. 그리고 이러한 매체는 지역민과 기자들이 직접적으로 소통할 수 있도록 인터페이스가 구성되어야 한다.

본 논문에서는 지역 방송과 밀결합된 소셜 네트워크 서비스를 제안하고, 울산 지역 방송사인 JCN과 함께 현재까지 구현한 프로토타입 시스템에 대해 소개한다. 제안 서비스의 핵심은 SNS 글의 노출 범위를 지역으로 한정하는 것이다. 예를 들어, 울산 지역의 사용자가 글을 올릴 경우, 해당 내용은 울산에 속한 지역 주민들을 대상으로 노출된다. 따라서 기자들이 손쉽게 지역 주민들의 글을 검색하고 관심사를 찾을 수 있도록 구성하였다.

기자는 지역민들이 올린 글 중에서 특정 글을 선택하고 해당 글의 작성자에게 취재나 방송 요청을 할 수 있다. 작성자가 수락할 경우, 해당 작성자의 연락처가 기자에게 송부되며, 이를 통해 기자는 방송을 위한 이후 일정을 진행할 수 있다. 이 때 취재나 방송 예정으로 설정된 글은 제안 시스템에서 메인 화면의 가장 상단에 배치되며, 방송 완료된 글들은 "명예의 전당" 등의 페이지에서 별도로 모아 해당 글들이 방송과 연계되었음을 강조하였다. 따라서 지역민들의 관점에서 자신들의 의견이 방송과 직접적으로 연계될 수 있음을 한 눈에 파악할 수 있도록 사용자 인터페이스(UI)를 구성하고, 이를 통해 지역민들의 참여를 활성화하고자 하였다. 아래에서는 프로토타입 시스템의 UI 구성과 각 페이지의 구현에 필요한 시스템 구조 및 알고리즘 등에 대해 소개한다.

본 논문의 구성은 다음과 같다. 2장에서는 소셜 네트워크 서비스와 관련한 기존 연구에 대해 소개한다. 3장에서는 프로토타입 시스템에서 구현된 화면을 통해 제안 방법의 사용자 인터페이스 구성을 보여준다. 4장에서는 작성 글 추천 알고리즘과 함께, 3장에서 제시한 화면들을 구현하기 위한 시스템 구조와 구현 방법을 설명한다. 5장에서는 결론과 함께 향후 연구 방향에 대해 소개한다.

II. Related Work

소셜 네트워크 서비스와 지역 개념이 결합된 서비스는 크게 두 가지 부류로 나눌 수 있다. 첫째는 네이버 밴드[7]와 같은 지역 커뮤니티 서비스의 형태에 해당하며, 둘째는 FourSquare[8]와 같이 위치 기반 정보를 SNS에 적용한 형태이다. 전자는 사용자의 프로필 정보에 기입된 지역 정보를 정적으로 이용하는데 반해, 후자는 GPS를 활용해 지역 정보를 동적으로 변화시킬 수 있다. 예를 들어 Four Square에서는 같은 장소에 방문한 친구들의 글이나 사진 등을 공유할 수 있도록 시스템이 구성되며, 지역 커뮤니티 서비스에 의해 유연하고 다양한 컨텐츠를 공유할 수 있다는 장점이 있다[9, 10].

후자와 같이 위치 정보를 기반으로 공유될 글을 추천하는 SNS를 LBSNS(Location-Based SNS)라고 지칭하며, 국내에서도 LBSNS와 관련한 다양한 연구가 진행되었다. [11]에서는 LBSNS를 이용할 경우 기존의 소셜 검색 엔진에 비해 더 좋은 검색 결과를 제공함을 보였으며, [12]에서는 LBSNS에서 친구 추천을 위해 의미 있는 장소 추출 방법을 제안하였다. [13]에서는 모바일 환경에서 시간 속성을 고려한 효율적인 위치 기반 소셜 검색 기법을 소개하였으며, [14, 15]에서는 디자인, 토목 등의 분야에서 LBSNS가 각각 어떻게 활용될 수 있는지 제시하였다. 이외에도, 발자국[16], WITCH[17] 등 LBSNS를 구현한 다양한 모바일 앱 서비스가 출시되었다.

이에 반해 방송과 SNS를 연계한 서비스와 관련한 연구는 그리 많지 않다. [18, 19]에서는 시청자들이 TV를 보면서 방송 프로그램을 캡처하고 사회적인 관계를 이용해 캡처한컨텐츠를 공유하기 위한 시스템을 제안하였다. 이들 연구는 사용자 측면에서 소셜 네트워크를 통해 방송 컨텐츠를 공유하기 위한 방법을 소개하며, 제안하는 방법과는 다소 차이가 있다. 특히 SNS와 지역 방송이 밀결합되어, 지역민의 작성 글이 지역 방송사의 방송과 직접적으로 연계될 수 있도록 구현된 사례는 아직까지 찾기 어려운 실정이다.

III. User Interface

제안 시스템의 사용자 인터페이스는 사용자들이 올린 글이 방송과 직접적으로 연계될 수 있음을 강조하기 위한 방향으로 설계되었으며, 메인 화면, 지역 이슈, 명예의 전당, 내 정보를 포함한 크게 4개의 페이지로 구성되었다. 또한 일반인으로 로그인했을 때와 기자로 로그인했을 때서로 다른 인터페이스가 제공된다.

1. View of normal users

Fig. 1은 일반인으로 로그인할 경우 출력되는 메인 페이지를 보여준다. 이는 방송 예정 인기글과 실시간 인기 태그, 최근 인기글 등을 포함한 3개의 섹션으로 구성된다. Fig. 1의 오른쪽 화면은 방송 예정 인기글 섹션을 보여주며, 일반 사용자들이 작성한 글 중 기자가 방송을 위해 취재나 방송 일정을 설정한 글들을 포함한다. 왼쪽 화면은 메인 페이지를 아래로 스크롤 했을 때 보여지는 화면이다. 실시간 인기태그는 최근 인기글들의 해시 태그를 인기순으로 정렬하여 모아둔 것이며, 태그를 클릭할 경우 해당 태그가 포함된 글들의 리스트를 보여준다. 최근 인기 글은 방송 예정 인기글에 포함되지 않은 인기글들을 보여준다.

CPTSCQ_2021_v26n11_129_f0001.png 이미지

Fig. 1. Main page of the proposed system when logged in as a normal user: (a) initial page (left) and (b) a page when scrolling down (right)

Fig. 2는 지역 이슈 페이지에 해당하며, 지역 내 사용자들이 올린 글들을 최신순으로 보여준다. 페이지의 우측 상단에는 현재 설정된 지역명을 보여주며, 이를 클릭하면 지역 설정을 변경하고 타지역의 관심사들을 볼 수 있도록 구성하였다. 페이지 아래 부분에는 해시 태그 리스트와 함께 사용자들이 올린 글들이 리스트 형태로 제공된다. 리스트에는 Fig. 2의 좌측 화면과 같이 일반 형식의 글 이외에 우측 화면과 같이 투표 형식의 글도 포함되어 지역민들의 의견을 수렴할 수 있도록 구성되었다. 투표 글에는 최대 10개까지의 투표 옵션이 추가될 수 있으며, 옵션을 클릭하여 실시간 투표가 가능하도록 구현되었다.

CPTSCQ_2021_v26n11_129_f0002.png 이미지

Fig. 2. Local issue page consisting of (a) normal social feeds (left) and (b) poll articles (right)

Fig. 3는 명예의 전당 페이지에 해당하며, 이는 방송 완료된 글들을 모아 보여준다. 예를 들어, 특정 인기글에 대한 방송이 완료되면, 기자는 방송본에 대한 영상 URL이나 신문 기사 내용을 요약하여, 해당 글의 방송 결과로 입력할 수 있다. 방송 결과로 유튜브 URL이 설정될 경우 해당 유튜브 방송본이 재생될 수 있도록 페이지가 구성되며, 신문 기사의 경우 사용자가 업로드한 글과 함께 기사 내용이 출력된다. 이러한 구성을 통해 작성자의 글이 실제 방송되었음을 강조함으로써, 지역민들의 참여를 높일 수 있도록 유도하고자 하였다.

CPTSCQ_2021_v26n11_129_f0003.png 이미지

Fig. 3. Hall-of-fame page consisting of social feeds that have been broadcast: (a) initial page (left) and (b) a page when scrolling down (right)

CPTSCQ_2021_v26n11_129_f0004.png 이미지

Fig. 4. User information page that supports modification of profile information, social feeds, or poll articles written by the user

내 정보 페이지에서는 사용자의 프로필 정보를 수정하거나 자신이 작성한 소셜 리뷰나 투표 글들을 보고 수정하거나 삭제할 수 있는 페이지들이 제공되며, 지면 관계상 자세한 내용은 생략한다.

2. View of reporters

기자로 로그인할 경우 메인 페이지는 Fig. 5와 같이 출력되며, Fig. 1에 비해 취재할 글을 찾기 위한 버튼이 추가된 형태로 제공된다. 해당 버튼을 누를 경우, 취재 가능한 최근 인기 글들의 리스트가 출력되며, 각각의 글 우측 하단에는 취재를 위한 비디오 카메라 모양의 아이콘을 함께 제공한다.

CPTSCQ_2021_v26n11_129_f0005.png 이미지

Fig. 5. Main page of the proposed system when logged in as a reporter: (a) initial page (left) and (b) a page when scrolling down (right)

비디오 카메라 버튼을 누를 경우, 취재 요청을 위한 페이지가 Fig. 6 (a)와 같이 출력된다. 해당 페이지에서 기자는 취재 예정일이나 방송 예정일을 설정할 수 있다. 취재 및 방송 예정일 정보는 옵션이며, 구체적인 일정을 입력하지 않고 잠정적으로 취재 요청을 하는 것도 가능하다. 단, 취재나 방송 일정이 설정되지 않은 글들은 방송 예정 인기 글 섹션에 출력될 때 낮은 우선순위를 부여받게 된다.

CPTSCQ_2021_v26n11_129_f0013.png 이미지

Fig. 6. (a) Interview-request page (left) and (b) a social feed with a video camera icon indicating that it si scheduled to be broadcast (right)

여기서 눈여겨 볼 점은 취재 요청 페이지에서 작성자의 연락처가 아직 기자에게 공개되지 않았다는 점이다. 이는 기자의 취재 요청이 있을 경우, 원글 작성자가 확인하고 승인한 후에 한해 기자에게 공개된다. 취재 요청이 승인된 글은 메인 페이지 상단의 방송 예정 인기글 섹션에 직접 노출되거나, Fig. 6 (b)와 같이 각각의 작성글 우측 상단에 방송사 정보와 함께 노출될 수 있다.

IV. Implementation

1. Overall Architecture

프로토타입 시스템은 반응형 모바일 웹 형태로 UI를 구성하였으며 클라이언트 서버 구조로 구현되었다. 클라이언트의 구현에는 HTML5, CSS, JavaScript 등이 이용되었으며, 서버 구현에는 JSP(Java Server Page)와 MySQL 8.0 데이터베이스가 이용되었다. 서버에서는 데이터베이스 접근과 관련된 최소한의 작업만 수행하며, UI와 관련된 모든 부분은 클라이언트에서 JavaScript와 AJAX(Asynch ronous Java and XML)를 이용하여 처리하게 된다[20]. 이는 서버의 부하를 최소화하기 위함이다. Fig. 7은 프로토타입 시스템의 전체적인 구조를 보여준다.

CPTSCQ_2021_v26n11_129_f0006.png 이미지

Fig. 7. Overall architecture of the prototype system

클라이언트와 서버 간의 데이터 전달에는 JSON(Java Script Object Notation) 형식이 이용된다. 예를 들어 클라이언트에서는 사용자가 작성한 글의 정보를 JSON 형식으로 인코딩하여 서버로 전달한다. Fig. 8은 JSON 객체의 형식으로 인코딩된 사용자 작성글의 예를 보여준다. JSON에서 객체는 중괄호로, 배열은 대괄호로 표현된다.

CPTSCQ_2021_v26n11_129_f0007.png 이미지

Fig. 8. Example of a social feed encoded as a JSON string

위 예제에서 볼 수 있듯이, 사용자가 입력한 내용은 이름-값 쌍의 형태를 지닌 속성의 형태로 객체에 포함된다. mid 속성은 작성자의 아이디를 의미하며, addrcode는 작성자의 시군구 정보를 숫자로 표현한다. (260100은 울산광역시 남구를 의미한다.) content 속성은 사용자가 입력한 텍스트 정보를 포함하며, images는 사용자가 업로드한이미지 파일들을 배열 형태로 표현한다. tags와 time 속성은 각각 해시 태그와 작성 시간을 나타낸다.

JSON 형식으로 인코딩된 메시지는 서버로 전달되며, 데이터베이스에 스트링 형태로 저장된다. 작성글 정보를 저장하기 위한 feed 테이블의 스키마는 아래와 같이 표현될 수 있다.

CPTSCQ_2021_v26n11_129_f0008.png 이미지

Fig. 9. Schema of the feed table to store contents of a social feed

fid는 피드글의 아이디에 해당하며, AUTO_INCREMENT 로 설정되어 레코드가 추가될 때마다 시스템에 의해 자동으로 값이 증가된다. jsonstr은 JSON 형식으로 전달된 작성 글 정보를 텍스트 형태로 저장하기 위한 필드이며, 가변 스트링(VARCHAR)의 형식으로 정의되었다. 작성글의 크기가 커질 수 있으므로, 충분히 큰 작성글을 저장할 수 있도록 최대 크기를 8,192로 선언하였다.

그 외의 필드들은 DB 검색 시 편의를 위해 추가된 속성들에 해당한다. mid와 addrcode는 작성자의 아이디와 시군구 단위의 지역을 나타내며, 전달된 JSON 객체로부터 값을 추출하여 저장될 수 있다. score는 작성글의 인기도를 정량화한 값을 나타내며, bstate는 방송 일정과 관련한 상태를 표현한다. 둘 모두 초기값은 0으로 설정된다. 이 중 score 값은 작성글에 좋아요 버튼을 누르거나, 댓글이 달릴 때, 혹은 날짜가 변경될 때 업데이트될 수 있으며, 메인페이지 등에서 인기글을 선정하기 위한 기준으로 이용된다. score와 bstate의 선정 방법은 아래에서 자세히 설명한다.

2. Score Estimation

score 필드 값은 기본적으로 좋아요와 댓글 수를 합산하여 점수가 산정되며, 최근 작성된 글일수록 높은 가중치 값을 가진다. 작성글의 좋아요 수를 nlike, 댓글 수를 ncmnt라고할 때, score 값은 아래와 같이 산정될 수 있다.

score = (nlike + ncmnt) × f(τ)       (1)

위 식에서 f는 시간 감소 함수(Time-decay function)를 의미하며, τ는 글의 작성 후 경과된 날짜 수를 표현한다. f는 임의의 지수 함수나 시그모이드(Sigmoid) 함수가 될 수 있으며, 제안 방법에서는 아래의 함수를 이용한다.

\(f(\tau)=\frac{1}{1+e^{-(N-\tau) \omega}}\)       (2)

위 식에서 N은 확률이 0.5가 되는 시점을 정의한다. 예를 들어 N을 30으로 설정하면, 30일 이전의 글은 가중치가 0.5 이상이 되며, 그 이후의 글은 가중치가 0.5 이하가 된다. ω는 함수의 기울기를 결정하며, 값이 작아질수록 기울기가 원만해진다. N이 30일 경우 ω를 0.1로 설정하면 작성 글의 경과일이 52일이 되는 시점에 가중치가 0.1 이하가 되며, ω를 0.05로 설정할 경우에는 경과일이 74일이 되는 시점에 가중치가 0.1 이하가 된다. 지수 함수에 비해 시그모이드 함수는 좀 더 많은 수의 최신글에 가중치를 높게 부여하고자 할 때 효과적으로 이용될 수 있다.

산정식 (1)에는 방송 예정인 글들의 score 값을 높이기 위한 파라미터를 추가할 필요가 있다. 방송 예정과 관련한 작성 글의 우선순위 ρ값은 아래와 같이 설정될 수 있으며, feed 테이블의 bstate 필드에 저장된다.

• 3 (highest): 방송 예정일이 설정된 경우

• 2 (high): 취재 예정일이 설정된 경우

• 1 (medium): 구체적인 일정은 정해지지 않았으나, 방송 예정으로 잠정적으로 설정된 경우

• 0 (low): 방송 예정으로 설정되지 않은 경우

CPTSCQ_2021_v26n11_129_f0009.png 이미지

Fig. 10. Graph of a sigmoid function when w = 0.1 and 0.05

ρ는 식 (1)에서 가중치 ψ와 함께 아래와 같이 추가될 수 있다.

score = (nlike + ncmnt + ψρ) × f(τ)       (3)

ψ는 ρ가 0이 아닐 때, score 값 기준으로 상위 M% 내에 들어갈 수 있도록 가변적으로 설정될 수 있다. 예를 들어 작성글이 10개가 있고, 이들의 작성 날짜가 모두 동일하다고 가정해보자. 10개 글의 스코어가 각각 {9, 8, 7, 6, 5, 4, 3, 2, 1, 0}이라고 하자. 이 중 스코어가 0인 글이 방송 예정으로 설정되어 ρ값이 1로 변경될 경우, 이 글이 스코어 값을 기준으로 상위 30% 이내에 배치되기 위해서는 ψ를 7보다 큰 값으로 설정하면 된다. 이와 같이 작성 글의 스코어 분포를 기준으로 M값이 주어졌을 때 이를 만족하는 ψ값은 가변적으로 찾을 수 있다.

위 내용으로부터 제안한 시스템에서는 M, N, ω 값 등을 관리자가 설정할 수 있도록 구성되었으며, 이로부터 작성 글의 우선순위가 결정된다. 현재 시스템에서는 M = 30, N = 30, ω = 0.1을 기본 값으로 설정하고 있다.

3. Page Implementation

메인 페이지에서는 score 값을 기준으로 데이터베이스로부터 작성글들을 인기순으로 추출한 후 UI를 구성한다. Fig. 11은 메인 페이지 구현에 필요한 모듈과 이들 간의 인터페이스 구조를 보여준다.

CPTSCQ_2021_v26n11_129_f0010.png 이미지

Fig. 11. Module structure and interface for implementation of the main page

메인 페이지의 UI를 담당하는 main.html에서는 페이지 시작 시 AJAX를 이용해 feedGetPop.jsp를 호출한다. 해당 JSP 모듈은 서버로부터 인기 작성글들을 가져오기 위한 서버측 인터페이스를 제공하며, HTTP 요청으로부터 필요한 파라미터를 분리해낸 후, FeedDAO 클래스의 get PopList() 함수를 호출한다.

getPopList() 함수는 feed 테이블에서 레코드를 인기순으로 추출하기 위한 로직을 구현한다. 예를 들어, feed 테이블로부터 100개의 레코드를 인기순으로 추출하여 반환하기 위한 getPopList() 함수의 SQL문은 아래와 같이 구성될 수 있다.

SELECT jsonstr FROM feed

ORDER BY score DESC LIMIT 100;

위 SQL문을 통해 추출된 레코드는 JSON 배열 형태로 변환된 후 feedGetPop.jsp를 통해 다시 main.html로 전달된다. 추출된 레코드를 JSON 배열 형태로 변환하는 로직은 아래와 같이 구현될 수 있다.

CPTSCQ_2021_v26n11_129_f0011.png 이미지

Fig. 12. getJSONList() function to return the string of feed records in the form of a JSON array

getJSONList() 함수는 위에서 설명한 SELECT 문을 파라미터로 입력받아 실행한 후, 결과를 JSON 배열 형태로 반환한다. 주어진 SQL문을 실행하기 위해 JDBC(Java DataBase Connectivity)에서 제공하는 executeQuery() 함수를 이용한다. 함수의 실행 결과는 JDBC의 ResultSet 클래스 형태로 반환되며, 해당 클래스에 포함된 각각의 레코드에 접근하기 위해서 rs.next() 함수를 호출하게 된다. 그리고 레코드 필드에 접근하기 위해 getString() 함수를 이용한다. 위 코드에서는 while문을 이용하여 ResultSet 에 포함된 레코드들의 jsonstr 필드 값을 추출한 후 “, ”로연결된 스트링을 만든다. 그리고 생성된 스트링 앞뒤에 JSON 배열임을 표시하기 위한 대괄호를 붙여 최종 결과값으로 반환한다.

메인 페이지와 달리, 지역이슈 페이지에서는 feed 테이블의 레코드를 최신순으로 읽어와 출력한다. 이를 구현하기 위한 모듈 구성 및 인터페이스는 Fig. 11과 유사하며, FeedDAO의 함수에서 실행되는 SQL문에서 차이가 발생한다.

CPTSCQ_2021_v26n11_129_f0012.png 이미지

Fig. 13. Module structure and interface for implementation of the Local Issue page

예를 들어, FeedDAO의 getLatestList() 함수에서는 feed 테이블로부터 최신순으로 20개의 레코드를 추출하여 반환하기 위해 SQL문을 아래와 같이 구성한 후 MySQL 서버로 전송한다. fid는 작성글이 추가될 때마다 순차적으로 부여되므로, 시간순으로 정렬하고자 할 때 이용될 수 있다.

SELECT jsonstr FROM feed

ORDER BY fid DESC LIMIT 20;

한편, 지역이슈 페이지에서는 무한 스크롤(Infinite scroll) 기능을 제공해야 한다. 예를 들어, 사용자가 페이지를 스크롤하여 최하단으로 이동할 경우, 시스템은 그 다음 20개의 최신글을 읽어와 하단에 출력할 수 있어야 한다. 이는 위 SELECT 구문에 WHERE절을 추가함으로써 간단히 구현될 수 있다. 예를 들어, 스크롤 이전에 SELECT 구문을 통해 얻어온 글들의 fid 최소값이 100이라고 하면, 다음에 읽어올 20개의 글들을 추출하기 위한 SELECT 구문은 아래와 같이 구성될 수 있다.

SELECT jsonstr FROM feed WHERE fid < 100

ORDER BY fid DESC LIMIT 20;

명예의 전당 페이지 역시 유사한 방법으로 구현된다. 해당 페이지에서는 방영이 완료된 글들을 최신순으로 출력하도록 구현된다. 방송이 완료된 글의 bstate 값은 1로 설정하며, 이로부터 방송 완료 글들을 최신순으로 출력하기 위한 SQL문은 아래와 같이 구성될 수 있다.

SELECT jsonstr FROM feed WHERE bstate = -1

ORDER BY fid DESC LIMIT 20;

명예의 전당 페이지 역시 사용자가 페이지 최하 단으로 스크롤 하여 이동했을 경우 다음 20개의 글을 출력할 수 있도록 구성되며, 이는 지역이슈 페이지에서 제시한 방법과 동일한 방식으로 구현된다.

V. Conclusion and Future Work

본 논문에서는 지역 방송과 밀결합된 소셜 네트워크 서비스의 사용자 인터페이스를 제안하고 이를 구현하기 위한 주요 알고리즘들을 소개하였다. 제안한 SNS에서는 사용자들이 작성한 인기글을 지역별로 보여줌으로써, 지역 방송국의 기자가 지역민들의 관심사를 손쉽게 찾을 수 있도록 UI를 구성하였다. 기자에 의해 취재 및 방송 일정이 설정된 글은 메인 화면의 최상단에 방송 예정 인기글 섹션에 노출되며, 방송이 완료된 글들은 명예의 전당 페이지에 따로 모아 강조하였다. 이를 통해 지역민들의 입장에서 자신들의 의견이 방송과 직접적으로 연결될 수 있음을 한눈에 알아볼 수 있도록 UI를 구성하고, 지역민들의 참여 역시 활성화하고자 하였다. 그리고 제안 시스템의 UI를 구현하기 위한 시스템 구조 및 주요 알고리즘과 방송 상태에 따라 작성글의 우선순위를 산정하기 위한 알고리즘 등에 대해 소개하였다.

제안한 SNS 서비스는 프로토타입 시스템 형태로 구현된 상태이며, 베타 테스트를 거쳐 울산 지역 방송사인 JCN 과 함께 사업화될 예정이다. 따라서 시스템 성능이나 기능 측면에서 지속적으로 안정화 작업을 수행할 예정이며, 더불어 제시한 기술의 성능 평가를 위해 작성글 추천 스코어 선정 방법의 정확도와 시스템의 응답 시간과 관련한 연구 역시 지속할 예정이다.

References

  1. Current Status of Domestic Broadcasting Industry, http://commres.net/wiki/국내방송산업현황
  2. Korea Cable Television Association, http://www.kcta.or.kr/kcta_new/organization/organizationPatronList.do?H_MENU_CD=100204&L_MENU_CD=10020404&SITE_ID=KCTA&MENUON=Y&USER_PATRON_GROUP=SO
  3. Y. Kim, "Current Status and Directions for Improvement of Local Broadcasting Industry," Issue Report of National Assembly Research Service, Vol. 284, 2015.
  4. S. G. Byeon, "Current Status and Limitations of Local Broadcasting Industry, and What is Future Direction?," Broadcasting Trend & Insight, Vol. 16, No. 3, 2018.
  5. S. K. Ryu, "Structural Policy and Internal and External Management Strategies Enhancing the Competitiveness of Local Broadcasting Companies," Locality and Communication, Vol. 22, No. 1, pp. 31-63, 2018. https://doi.org/10.47020/JLC.2018.02.22.1.31
  6. J. M. Han, "A Study on Restructuring and Media Strategy Measures to Strengthen Local Broadcasting Competitiveness," 2011.
  7. Naver Band, https://band.us
  8. FourSquare, https://foursquare.com
  9. C. Yang, et al., "Understanding the user behavior of foursquare: A data-driven study on a global scale," IEEE Transactions on Computational Social Systems, Vol. 7, No. 4, pp.1019-1032, 2020. https://doi.org/10.1109/tcss.2020.2992294
  10. J. Lindqvist, J. Cranshaw, J. Wiese, and J. Hong, "I'm the mayor of my house: examining why people use foursquare - a social-driven location sharing application", Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pp.2409-2418, 2011.
  11. J. H. Kwon and D. G. Lee, "Social Search Engine using Location based Social Network Service," Journal of Korean Institute of Information Technology, Vol. 10, No. 3, pp. 179-187, 2012.
  12. M. H. Min, D. J. Choi, J. K. Kim, and J. H. Lee, "Research on Mining the Meaningful Place in LBSNS", Proceedings of the KIIS, Vol. 21, No. 1, pp.98-100, 2011.
  13. G. S. Bok, M. J. Ahn, J. T. Lim, and J. S. Yu, "Efficient Location Based Social Search Considering Time Property in Mobile Environments," Journal of the KIISE, Vol. 20, No. 4, pp.243-247, 2014.
  14. S. H. Cho, Y. Huh, and C. Ga, "Enrichment of POI Information Based on LBSNS," Journal of Cadastre & Land InformatiX, Vol. 48, No. 2, pp.109-119, 2018. https://doi.org/10.22640/LXSIRI.2018.48.2.109
  15. J. S. Han, "Social Marketing Utilizing Location Based Social Network Service (LBSNS) Applications - Focusing on the cases of fashion brands," Design Forum, Vol. 34, pp.17-26, 2012.
  16. Balzagook, https://balzagook.com
  17. WITCH, https://witchwitch.io
  18. J. G. Kwon et al., "Social Curation Service with Broadcasting Contents," Proceedings of the Korean Broadcasting Engineering, pp.187-190, 2015.
  19. J. G. Kwon et al., "TVzzik : Social Curation Service with Broadcasting Contents Captured in Real-Time," Proceedings of the Korean Broadcasting Engineering, pp.182-185, 2014.
  20. H. G. Kim and Y. H. Park, "JSP Web Programming for Implementation of Mobile Web Services," Hanbit Academy Inc., pp.456-529, 2021.