검색
검색
공개 노트 검색
회원가입로그인

2024 총선거 선거개표방송용 DB 다루기--(2)

2024년 총선거가 끝난지 얼마되지않았다.

AWS 클라우드의 선거데이터를 수신해서 MS-SQL서버로 저장하도록 만든 총선거 DB 수신 SW를 통해서 살펴보자. 닷넷 베이스의 C# 언어를 기초로 개발되었다.

elect2024

AWS 클라우드 데이터베이스를 끌어다 보는 미리보기를 하는 모습이다.

새로운 정당인 개혁신당 이준석 후보가 출마한 동탄지역 경기 화성을을 기준으로 한다.

elect2024-4

이 AWS선거데이터 수신 소프트웨어는 전국을 기준 지역 단위로 수신이 가능하다.

서울, 경기, 대구만 수신하게 하였다.

elect2024-2

5~30초 처럼 원하는대로 클라우드로부터 데이터를 자동 수신하게 할 수도 있다. [V] DB Update 항목이 세팅되어있으면 또다른 원격 MS-SQL서버로 데이터를 자동 저장한다.

elect2024-3

지역별로 선거데이터 수신이 잘되는지 로그를 저장한다.

elect2024-7

아래와 같이 중앙선관위로부터 오라클 골든게이트 솔루션을 이용해 개표가 이뤄져서 개표 데이터가 변경된 선거구 데이터만 수신하는 방식으로 AWS 클라우드에 빠르게 복제된다.

네이버나 다음카카오도 총선 데이터 페이지에 활용한다.

elect2024-8

그러면 AWS클라우드 데이터를 로컬의 MSSQL서버나 오라클 DB로 복제한뒤 방송화면 코더, 보도국 기자들의 데이터 뷰어, 안드로이드 모바일 앱등에 재사용할 수 있다.

elect2024-9

데이터베이스 관리툴들로 해당 데이터를 확인해보자.

비주얼스튜디오2022 와 C# 언어를 위해 윈도버전의 접속드라이버 클라이언트SDK를 설치한다.

sbs15-2

list db directory 명령으로 AWS클라우드 DB에 대한 접속을 확인 한다.

sbs15-3

이제 데이터베이스 연결을 한다.

보통 JDBC드라이버로도 잘 붙는다.

sbs1

그리드뷰로 표시했다.

sbs15-1

select suncode, sidoname, openrate, guname, DUKPCNT01, DUKPRATE01, DUKPCNT02, DUKPRATE02, DUKPCNT03, DUKPRATE03, DUKPCNT07, DUKPRATE07,DUKPCNT09, DUKPRATE09

from VOTE2024

where sidoname = '경기' OR sidoname = '서울'

처럼 경기와 서울지역 선거구에 대한 득표만 얻어온다.

개발자가 좋아하는 JSON 타입으로 저장한 자료

{
"VOTE2024": [
{
		"KIND" : "1",
		"SUNCODE" : "41540000",
		"SIDONAME" : "경기",
		"GUNAME" : "화성 을                          ",
		"YOOCNT" : 169135,
		"TOOCNT" : 122955,
		"TOORATE" : 72.7,
		"TOOEND" : 1,
		"TOOTIME" : "18",
		"OPENCNT" : 122944,
		"OPENRATE" : 99.9,
		"OPENEND" : 1,
		"RANK01" : "07",
		"DEGREE" : "90",
		"DUKPCNT00" : 684,
		"DUKPCNT01" : 48578,
		"DUKPCNT02" : 21826,
		"DUKPCNT03" : 0,
		"DUKPCNT04" : 0,
		"DUKPCNT05" : 0,
		"DUKPCNT06" : 0,
		"DUKPCNT07" : 51856,
		"DUKPCNT08" : 0,
		"DUKPCNT09" : 0,
		"DUKPRATE00" : 0.0,
		"DUKPRATE01" : 39.7,
		"DUKPRATE02" : 17.9,
		"DUKPRATE03" : 0.0,
		"DUKPRATE04" : 0.0,
		"DUKPRATE05" : 0.0,
		"DUKPRATE06" : 0.0,
		"DUKPRATE07" : 42.4,
		"DUKPRATE08" : 0.0,
		"DUKPRATE09" : 0.0,
		"SENDTIME" : "20240411083509",
		"STATUS" : 0
	},
]}

XML타입으로 저장

<?xml version="1.0" encoding="UTF-8"?>
<VOTE2024>
 <DATA_RECORD>
    <KIND>1</KIND>
    <SUNCODE>41540000</SUNCODE>
    <SIDONAME>경기</SIDONAME>
    <GUNAME>화성 을                          </GUNAME>
    <YOOCNT>169,135</YOOCNT>
    <TOOCNT>122,955</TOOCNT>
    <TOORATE>72.7</TOORATE>
    <TOOEND>1</TOOEND>
    <TOOTIME>18</TOOTIME>
    <OPENCNT>122,944</OPENCNT>
    <OPENRATE>99.9</OPENRATE>
    <OPENEND>1</OPENEND>
    <RANK01>07</RANK01>
    <DEGREE>90</DEGREE>
    <DUKPCNT00>684</DUKPCNT00>
    <DUKPCNT01>48,578</DUKPCNT01>
    <DUKPCNT02>21,826</DUKPCNT02>
    <DUKPCNT03>0</DUKPCNT03>
    <DUKPCNT04>0</DUKPCNT04>
    <DUKPCNT05>0</DUKPCNT05>
    <DUKPCNT06>0</DUKPCNT06>
    <DUKPCNT07>51,856</DUKPCNT07>
    <DUKPCNT08>0</DUKPCNT08>
    <DUKPCNT09>0</DUKPCNT09>
    <DUKPRATE00>0</DUKPRATE00>
    <DUKPRATE01>39.7</DUKPRATE01>
    <DUKPRATE02>17.9</DUKPRATE02>
    <DUKPRATE03>0</DUKPRATE03>
    <DUKPRATE04>0</DUKPRATE04>
    <DUKPRATE05>0</DUKPRATE05>
    <DUKPRATE06>0</DUKPRATE06>
    <DUKPRATE07>42.4</DUKPRATE07>
    <DUKPRATE08>0</DUKPRATE08>
    <DUKPRATE09>0</DUKPRATE09>
    <SENDTIME>20240411083509</SENDTIME>
    <STATUS>0</STATUS>
</DATA_RECORD>
   

php용으로 만든 자료구조

<?php
$VOTE2024 = array(
array(
		"KIND" => "1",
		"SUNCODE" => "41540000",
		"SIDONAME" => "경기",
		"GUNAME" => "화성 을                          ",
		"YOOCNT" => 169135,
		"TOOCNT" => 122955,
		"TOORATE" => 72.7,
		"TOOEND" => 1,
		"TOOTIME" => "18",
		"OPENCNT" => 122944,
		"OPENRATE" => 99.9,
		"OPENEND" => 1,
		"RANK01" => "07",
		"DEGREE" => "90",
		"DUKPCNT00" => 684,
		"DUKPCNT01" => 48578,
		"DUKPCNT02" => 21826,
		"DUKPCNT03" => 0,
		"DUKPCNT04" => 0,
		"DUKPCNT05" => 0,
		"DUKPCNT06" => 0,
		"DUKPCNT07" => 51856,
		"DUKPCNT08" => 0,
		"DUKPCNT09" => 0,
		"DUKPRANK00" => 0,
		"DUKPRANK01" => 2,
		"DUKPRANK02" => 3,
		"DUKPRANK03" => 0,
		"DUKPRANK04" => 0,
		"DUKPRANK05" => 0,
		"DUKPRANK06" => 0,
		"DUKPRANK07" => 1,
		"DUKPRANK08" => 0,
		"DUKPRANK09" => 0,
		"SENDTIME" => "20240411083509",
		"STATUS" => 0
	),
...
);
?>

실시간 데이터를 이용해서 방송사용 좌상단, 하단등의 개표데이터 표출 SW를 개발할 수 있다.

design-0

데이터수신, 데이터표출등에 사용된 C# 소스코드는

비제이퍼블릭 출판사의 깃허브에 모두 공개되어있다.

이 책을 참고하면 개발이 가능하다.

8d03e2c6-7bc5-4330-bcbb-3a3cb1db5a5c

UCA수퍼컴아카데미

ulsancoding.com

조회수 : 94
공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
T
Chat
페이지 기반 대답