상세 컨텐츠

본문 제목

01. 연구 (2) 원전 정책 담론 연구 00. 개요

본문

디지털 연구 아카이브를 정리하는 과정에서
기존에 수행했던 원전 정책 담론 연구를 하나의 독립된 분석 단위로 재구성하여 아카이브에 편입하였다.

 

해당 연구는 현대 원전 정책 자체를 직접 분석하기 위해 시작된 것이 아니라

향후 디지털 역사학 연구에 적용할 수 있는 재현 가능한 텍스트 분석 환경을 구축하고 

검증하기 위한 방법론적 선행 작업이다.

 

또한 컨택 단계에서 제출된 두 개의 연구 설계 중 하나였다.

 

최종 연구 구조는 일제강점기 담론 분석을 중심으로 재설계되었지만,

초기 단계에서 수행된 원전 정책 담론 연구는 데이터 수집, 전처리,

분석 파이프라인 설계 전반에 걸쳐 이후 연구의 방법론적 기반을 형성하였다.

 

연구 과정은 뉴스 데이터 수집, 다단계 전처리, 규칙 기반 데이터 축소, 핵심 키워드 구축,

코퍼스 구축, 데이터베이스 관리, TF-IDF 기반 분석, 웹 기반 시각화까지 전 단계를 포함했다.

 

또한 단순한 텍스트 마이닝 기법의 적용에 그치지 않고,

동일한 입력 데이터에 대해 동일한 결과를 재현할 수 있는 분석 환경을 설계하는 데 초점을 두었다.


이를 위해 각 단계의 처리 구조와 분석 절차를 명확히 정의하여

연구 과정 전반의 일관성과 재현성을 확보하고자 하였다.

 

이 과정에서 구축된 분석 환경은 특정 주제에 한정된 시스템이 아니라

다양한 역사 및 사회과학 데이터에 적용 가능한 범용 연구 인프라를 지향한다.


결과적으로 이 프로젝트는 개별 주제 분석보다는 

디지털 인문학 연구를 위한 방법론적 기반과 분석 인프라 구축에 의미를 둔다.

 

 


 

이 글에서는 해당 프로젝트의 전체 개요를 소개하고,

당시 구현한 웹 프로젝트(배포본), Git 저장소 및 로컬 저장소, 그리고 프로젝트 README를 간략히 정리한다.

 

이를 통해 연구 설계가 실제 구현으로 어떻게 확장되었는지를 먼저 살펴보고자 한다.

이후에는 아래 순서에 따라 당시 작성했던 문서를 정리하여 공개한다.

 

01. 문헌 검토 및 이론적 배경
02. 연구 설계 및 구조 
03. 연구 방법론 
04. 연구 방법론 (요약본)
05. 연구 인프라 및 구현 구조
06. 연구 인프라 부록

 

 

 

위의 01–06 문서는 컨택 과정에서 제출했던 18페이지 분량의 영어 연구계획서 가운데

방법론과 연구 구현에 해당한다. 


최종 제출본에는 분량 제한으로 일부만 반영되었지만, 

가장 많은 시간을 들여 수정하고 검토했던 내용이기도 하다.

 

 


끝으로, 상세한 구현 과정과 기술 스택, 알고리즘 로직은 별도의 기술 스택 및 분석 카테고리에서 다룰 예정이다.

따라서 이 글에서는 시스템의 전체 구조와 구현 결과를 중심으로 간략히 소개하겠다.

 

 


 

1. 웹 프로젝트 (배포 완료)  

 

배포는 Render를 이용하였고,

무료 플랜을 사용하고 있어 초기 접속에 다소 시간이 소요될 수 있다.

 

https://two026webproject.onrender.com

 

 

그래서 4분 20초 분량의 웹사이트 소개 영상도 만들었는데,

아쉽게도 블로그는 파일 용량 (20MB) 제한이 있어서 캡처만 올리게 되었다.

 

첫 화면과 영상 촬영 때 사용한 script는 다음과 같다.

 

 

Presentation Script (Original Version)

“The following script is the original version used in the actual system demonstration and is included without modification for reproducibility.”


[Introduction]

"Hello, Professor. Today, I am pleased to introduce the Nuclear Policy Analysis System, a web service I developed for this project. The system is fully deployed and accessible via the web. However, since I am using the free tier of 'Render' for hosting, there might be slight delays in server response or occasional technical hiccups. To ensure a smooth demonstration, I have prepared this video to walk you through its core features."


[Navigation & Dashboard Metrics]

"Looking at the top navigation bar, you can see three primary sections: Dashboard, Time Series, and Keyword."

"On the main Dashboard, I’ve included four key metric cards to provide an immediate overview of the data:"

"Total Articles: Displays the 50 news articles collected for this study."

"Keywords Tracked: Shows the 9 specific keywords currently being monitored."

"Time Series Points: Represents the 39 data points used for temporal analysis."

"TF-IDF Keywords: Highlights 9 key terms identified through importance analysis."


[Visualization Tools]

"Next is the Time Series Analysis chart. This graph visualizes keyword frequencies and policy event stages from 2003 to 2025."

"A key design feature of this system is its scalability."

"The system is not limited to the current dataset or time period, but is designed as a scalable analytical architecture."

"This includes support for extending the time-series range beyond the current dataset, including potential pre-1990 historical data integration."

"Additionally, both policy events and discourse categories are defined in an extensible ERD structure, allowing continuous addition of new domains without modifying the core system logic."

"You can hover over or click on the data points to see specific metrics. Additionally, you can toggle keywords in the legend to filter them out of the graph for a clearer view."

"To the right, the Top Keywords section provides a frequency-based bar chart. Clicking on each bar will reveal the exact numerical count for that specific term."


[Data Management]

"In the middle of the page, we have the News Article Management table. This section systematically manages the raw data, displaying the Title, Source, Period Type (such as 'Institutionalization'), Sentiment Score, and Publication Date."

"I have also implemented a search function—for example, searching for 'Nuclear' (원자력) will immediately filter relevant results."

"This feature allows users to directly explore nuclear policy-related discourse within the dataset."

"Please note that since the integration with live external articles is still in progress, clicking a title will currently redirect to a placeholder news URL."


[Advanced Analysis & Conclusion]

"At the bottom of the site, you will find more in-depth analysis:"

"The Left Section (TF-IDF Keyword Importance): Ranks keywords based on their significance relative to the entire collection, featuring terms like 'Safety Inspection' and 'Localization of Technology.'"

"The Right Section (Keyword Frequency Top 20): Lists the most frequently occurring terms, such as the 'Special Act' and the 'Buan (Muan) Incident.'"

"Finally, returning to the top navigation bar, the Time Series and Keyword pages allow you to explore the same dataset in a more detailed and interactive form."

"Oh, it looks like the server is down. As a free-tier user, these things happen! That’s why I’ve also prepared my IntelliJ localhost 8080 page as a backup."

"Since they follow a similar logic to the dashboard, I will conclude the overview here."

"Thank you for your time and for watching this demonstration."


2. Git 저장소와 로컬 저장소

 

Git 저장소 경우 초기에는 Spring Boot와 Python 분석 환경을 하나의 프로젝트에서 함께 관리하도록 설계하였다.

그러나 Spring Boot(Java) 프로젝트 내부에서 Python 분석 환경을 함께 운영하는 과정에서

Python 및 가상환경(venv) 설정 관리가 복잡해졌으며,

실제 연구 데이터 분석보다 환경 설정 및 디버깅에 과도한 시간이 소모되는 병목 현상이 발생했다.

따라서 '분석(Python)'과 '서비스(Spring Boot)'를 분리하는 모듈형 아키텍처 선택했고,

이 글에서는 서비스 관련 내역만 가져왔다.

 


3. 프로젝트 README  

🚀 Nuclear Policy Analysis System

Version: NUCLEAR.April.ver
Type: Web-based Data Analysis Platform


📌 Overview

본 시스템은 뉴스 데이터를 기반으로 정책 이벤트(Event)와 담론 변화를 분석하는 웹 기반 데이터 분석 플랫폼이다.

Summary: 정책 데이터와 뉴스 데이터를 결합한 Policy–Discourse Integrated Analysis System


💡 핵심 기능

  • 뉴스 데이터 기반 담론 분석
    • 정책 이벤트 중심 시계열 분석
    • 키워드 기반 담론 구조 분석

🎯 Objectives

  1. 정책 이벤트(Event) 중심 데이터 분석 2. 뉴스 데이터 기반 담론 구조 정량화 3. 시계열 기반 정책 변화 패턴 분석

🛠 Tech Stack

CategoryTechnology

Backend Spring Boot 4.0.5
Language Java 21
Build Tool Gradle
Database MySQL 5.x
ORM MyBatis 4.0.1
View JSP (Jakarta Standard Tag Library)
UI Bootstrap 5 (Custom Pastel Theme)

🏗 Architecture

Spring MVC 기반 계층형 구조

 
graph TD
A[Client (Browser)] --> B[Controller Layer]
B --> C[Service Layer]
C --> D[Mapper (MyBatis)]
D --> E[(MySQL Database)]

📂 Project Structure

src/main/java/com/project/nuclear/
├── common/          # Security 및 공통 환경 설정
├── controller/      # 웹 요청 처리 (NewsController 등)
├── mapper/          # MyBatis 매퍼 인터페이스
├── model/           # 데이터 객체 (DTO)
└── service/         # 비즈니스 로직

src/main/resources/
├── mappers/         # MyBatis SQL XML 파일
├── static/          # CSS, JS 정적 자원 (Pastel 스타일 적용)
└── application.yaml # DB 연결 및 시스템 설정

src/main/webapp/WEB-INF/views/
├── index.jsp        # 메인 분석 대시보드
└── error.jsp        # 파스텔톤 에러 알림 페이지
 

🗄 Database Structure

Core Tables

  • news_article
    • keyword_dictionary
    • article_keyword_map
    • nuclear_event

Relationships

  • Article ↔ Keyword : N:M 관계
    • Article ↔ Event : N:M 관계

👉 이벤트 기반 담론 분석 구조


🚀 Key Features

News Article Management (뉴스 관리)

  • 특정 원전과 관련된 뉴스 기사를 수집하고 감성 점수(Sentiment Score)를 분석합니다.

Keyword Analysis

  • 뉴스 키워드 추출
    • 빈도 기반 분석
    • TF-IDF 기반 중요도 분석

Time Series Analysis (시계열 분석)

  • 연도별 주요 키워드 빈도수와 이벤트 단계(Period Stage)를 시각화하여 트렌드를 분석합니다.

Event-based Analysis

  • 정책 이벤트 중심 데이터 분석
    • 담론 구조 변화 패턴 분석

🔧 Supporting Features (Optional)

※ 분석 핵심이 아닌 보조 데이터 기능

Plant Management (원전 관리)

  • 원전의 가동 상태(Active, Construction, Decommissioned) 및 상세 정보(위치, 준공연도)를 관리합니다.

Radiation Data Visualization

  • 시간대별 방사능 수치 변화를 차트로 시각화하여 모니터링합니다.

International Framework Mapping

  • 국제 규범 및 정책 프레임워크 관리

📊 Analysis System

Visualization (Chart.js)

new Chart(ctx, {
  type: 'line',
  data: {
    labels: years,
    datasets: [{ data: values }]
  }
});
 

Text Mining

  • Keyword Frequency Analysis
    • TF-IDF 기반 단어 중요도 분석

⚙️ Installation & Setup

1. Database Setup

sql 데이터베이스를 생성하고 제공된 SQL 스크립트를 실행하여 테이블을 구성합니다.

2. Configuration

src/main/resources/application.yaml 파일에서 DB 계정(username, password) 정보를 본인의 환경에 맞게 수정합니다.

3. Run

./gradlew bootRun

4. Access

http://localhost:8080

https://two026webproject.onrender.com

 


⚠️ Error Handling

시스템 전반의 오류는 파스텔톤의 사용자 친화적인 error.jsp를 통해 안내됩니다.
모든 오류 페이지에는 메인 대시보드로 즉시 돌아갈 수 있는 버튼이 포함되어 있습니다.


 

📌 Conclusion

데이터 기반 정책 분석 가능
뉴스 담론 구조 시각화 구현
정책–담론 통합 분석 시스템 구축 완료


Created by User - April 2026

관련글 더보기