<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://gwangju-storyplatform.com/wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%9D%98%EB%AF%B8%EA%B4%80%EA%B3%84%EB%A7%9D</id>
	<title>의미관계망 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://gwangju-storyplatform.com/wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%9D%98%EB%AF%B8%EA%B4%80%EA%B3%84%EB%A7%9D"/>
	<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EC%9D%98%EB%AF%B8%EA%B4%80%EA%B3%84%EB%A7%9D&amp;action=history"/>
	<updated>2026-04-05T10:54:23Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.31.8</generator>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EC%9D%98%EB%AF%B8%EA%B4%80%EA%B3%84%EB%A7%9D&amp;diff=59860&amp;oldid=prev</id>
		<title>Ec3admin: 새 문서: {{#tag:html| &lt;script type=&quot;text/javascript&quot; src=&quot;https://dh.aks.ac.kr/Graph/vis/dist/vis.js&quot;&gt;&lt;/script&gt; &lt;style&gt; 	#mynetwork { 		width: 90%; 		height: 70vh; 		background-color: #ffffff;...</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EC%9D%98%EB%AF%B8%EA%B4%80%EA%B3%84%EB%A7%9D&amp;diff=59860&amp;oldid=prev"/>
		<updated>2025-12-22T09:31:57Z</updated>

		<summary type="html">&lt;p&gt;새 문서: {{#tag:html| &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;https://dh.aks.ac.kr/Graph/vis/dist/vis.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;style&amp;gt; 	#mynetwork { 		width: 90%; 		height: 70vh; 		background-color: #ffffff;...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#tag:html|&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;https://dh.aks.ac.kr/Graph/vis/dist/vis.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
	#mynetwork {&lt;br /&gt;
		width: 90%;&lt;br /&gt;
		height: 70vh;&lt;br /&gt;
		background-color: #ffffff;&lt;br /&gt;
		border: 1px solid lightgray;&lt;br /&gt;
		margin: 0 auto;&lt;br /&gt;
		display: flex;&lt;br /&gt;
		justify-content: center;&lt;br /&gt;
		align-items: center;&lt;br /&gt;
	}&lt;br /&gt;
	#designGuide {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
		margin-top: 60px;&lt;br /&gt;
	}&lt;br /&gt;
	#designGuide &amp;gt;h2{&lt;br /&gt;
		font-size:28px;&lt;br /&gt;
		font-weight:700;&lt;br /&gt;
	}&lt;br /&gt;
	#designGuide &amp;gt;h2 + p{&lt;br /&gt;
		font-size:16px;&lt;br /&gt;
	}&lt;br /&gt;
	.design-section {&lt;br /&gt;
		margin-top:40px;&lt;br /&gt;
	}&lt;br /&gt;
	.design-section h3 {&lt;br /&gt;
		font-size:20px;&lt;br /&gt;
		font-weight:bold;&lt;br /&gt;
		margin:0;&lt;br /&gt;
	}&lt;br /&gt;
	.design-section h3 + p{&lt;br /&gt;
		margin-top:8px;&lt;br /&gt;
		font-size:16px;&lt;br /&gt;
		margin-bottom:0;&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
	.example-grid {&lt;br /&gt;
		display: grid;&lt;br /&gt;
		grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));&lt;br /&gt;
		gap: 28px;&lt;br /&gt;
		margin-top: 24px;&lt;br /&gt;
		padding-top:22px;&lt;br /&gt;
		border-top:1px solid #eee;&lt;br /&gt;
	}&lt;br /&gt;
	.example-item {&lt;br /&gt;
		border: 1px solid #eee;&lt;br /&gt;
		border-radius: 12px;&lt;br /&gt;
		text-align: center;&lt;br /&gt;
		min-height:240px;&lt;br /&gt;
		padding:20px;&lt;br /&gt;
		display:flex;&lt;br /&gt;
		flex-direction: column;&lt;br /&gt;
		justify-content: center;&lt;br /&gt;
		align-items: center;&lt;br /&gt;
	}&lt;br /&gt;
	.example-item &amp;gt;div{&lt;br /&gt;
		width:100%;&lt;br /&gt;
		flex:1;&lt;br /&gt;
		max-height:240px;&lt;br /&gt;
	}&lt;br /&gt;
	.example-item h4 {&lt;br /&gt;
		font-size: 16px;&lt;br /&gt;
		margin-top: 0;&lt;br /&gt;
		margin-bottom: 12px;&lt;br /&gt;
	}&lt;br /&gt;
	.example-item pre {&lt;br /&gt;
		background-color: #f5f5f5;&lt;br /&gt;
		padding: 15px;&lt;br /&gt;
		border-radius: 6px;&lt;br /&gt;
		overflow-x: auto;&lt;br /&gt;
		text-align: left;&lt;br /&gt;
		font-size: 16px;&lt;br /&gt;
		margin-top: 15px;&lt;br /&gt;
		border: 1px solid #e0e0e0;&lt;br /&gt;
		line-height: 1.5;&lt;br /&gt;
		max-height: 300px;&lt;br /&gt;
		overflow-y: auto;&lt;br /&gt;
	}&lt;br /&gt;
	.color-box {&lt;br /&gt;
		width: 40px;&lt;br /&gt;
		height: 40px;&lt;br /&gt;
		border-radius: 4px;&lt;br /&gt;
		display: inline-block;&lt;br /&gt;
		margin-right: 10px;&lt;br /&gt;
		vertical-align: middle;&lt;br /&gt;
	}&lt;br /&gt;
	.edge-example {&lt;br /&gt;
		width: 100%;&lt;br /&gt;
		height: 80px;&lt;br /&gt;
		background-color: white;&lt;br /&gt;
		position: relative;&lt;br /&gt;
		margin-bottom: 15px;&lt;br /&gt;
	}&lt;br /&gt;
	.tab-container {&lt;br /&gt;
		display: flex;&lt;br /&gt;
		margin-top: 40px;&lt;br /&gt;
		background-color:#f9f9f9;&lt;br /&gt;
		border:1px solid #ddd;&lt;br /&gt;
	}&lt;br /&gt;
	.tab {&lt;br /&gt;
		flex:1;&lt;br /&gt;
		text-align:center;&lt;br /&gt;
		padding: 12px 0;&lt;br /&gt;
		cursor: pointer;&lt;br /&gt;
		border: 1px solid transparent;&lt;br /&gt;
		border-bottom: none;&lt;br /&gt;
		font-family: Pretendard;&lt;br /&gt;
		font-weight: 700;&lt;br /&gt;
		font-size: 16px;&lt;br /&gt;
		line-height: 26px;&lt;br /&gt;
		letter-spacing: 0%;&lt;br /&gt;
	}&lt;br /&gt;
	.tab + .tab{&lt;br /&gt;
		border-left:1px solid #eee;&lt;br /&gt;
	}&lt;br /&gt;
	.tab.active {&lt;br /&gt;
		background-color: #181818;&lt;br /&gt;
		color: #fff;&lt;br /&gt;
	}&lt;br /&gt;
	.tab-content {&lt;br /&gt;
		display: none;&lt;br /&gt;
	}&lt;br /&gt;
	.tab-content.active {&lt;br /&gt;
		display: block;&lt;br /&gt;
	}&lt;br /&gt;
	@media screen and (max-width: 991px) {&lt;br /&gt;
		#designGuide{&lt;br /&gt;
			margin-top:40px;&lt;br /&gt;
		}&lt;br /&gt;
		#designGuide &amp;gt;h2{&lt;br /&gt;
			font-size:20px;&lt;br /&gt;
		}&lt;br /&gt;
		.tab-container{&lt;br /&gt;
			flex-wrap:wrap;margin-top:24px;&lt;br /&gt;
		}&lt;br /&gt;
		.tab{&lt;br /&gt;
			flex:1 0 auto;&lt;br /&gt;
			width:50%;&lt;br /&gt;
		}&lt;br /&gt;
		.tab:nth-child(1n-2){&lt;br /&gt;
			border-bottom:1px solid #eee;&lt;br /&gt;
		}&lt;br /&gt;
		.design-section{&lt;br /&gt;
			margin-top:24px;&lt;br /&gt;
		}&lt;br /&gt;
		.design-section h3{&lt;br /&gt;
			margin-bottom:4px;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;100%&amp;quot; height=&amp;quot;800px&amp;quot; src=&amp;quot;https://dh.aks.ac.kr/~sandbox/cgi-bin/GuestQuery.py?db=gwangju&amp;amp;project=gwangju&amp;amp;key=우일선선교사사택&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;designGuide&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;h2&amp;gt;vis.js 디자인 가이드&amp;lt;/h2&amp;gt;&lt;br /&gt;
	&amp;lt;p&amp;gt;이 가이드는 vis.js 라이브러리를 사용한 네트워크 그래프 디자인 옵션을 보여줍니다.&amp;lt;/p&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;div class=&amp;quot;tab-container&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;tab active&amp;quot; onclick=&amp;quot;showTab(&amp;#039;nodeShapes&amp;#039;)&amp;quot;&amp;gt;노드 모양&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;tab&amp;quot; onclick=&amp;quot;showTab(&amp;#039;nodeStyles&amp;#039;)&amp;quot;&amp;gt;노드 스타일&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;tab&amp;quot; onclick=&amp;quot;showTab(&amp;#039;edgeStyles&amp;#039;)&amp;quot;&amp;gt;엣지 스타일&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;tab&amp;quot; onclick=&amp;quot;showTab(&amp;#039;layouts&amp;#039;)&amp;quot;&amp;gt;레이아웃&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;div id=&amp;quot;nodeShapes&amp;quot; class=&amp;quot;tab-content active&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;design-section&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;h3&amp;gt;1. 노드 모양 (Shape)&amp;lt;/h3&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;vis.js는 다양한 노드 모양을 제공합니다:&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;div class=&amp;quot;example-grid&amp;quot; id=&amp;quot;shapeExamples&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;!-- 여기에 노드 모양 예시가 동적으로 추가됩니다 --&amp;gt;&lt;br /&gt;
			&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;div id=&amp;quot;nodeStyles&amp;quot; class=&amp;quot;tab-content&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;design-section&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;h3&amp;gt;2. 노드 스타일링&amp;lt;/h3&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;노드의 색상, 테두리, 폰트 등을 커스터마이징할 수 있습니다:&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;div class=&amp;quot;example-grid&amp;quot; id=&amp;quot;styleExamples&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;!-- 여기에 노드 스타일 예시가 동적으로 추가됩니다 --&amp;gt;&lt;br /&gt;
			&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;div id=&amp;quot;edgeStyles&amp;quot; class=&amp;quot;tab-content&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;design-section&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;h3&amp;gt;3. 엣지(간선) 스타일링&amp;lt;/h3&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;엣지의 색상, 두께, 화살표 등을 설정할 수 있습니다:&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;div class=&amp;quot;example-grid&amp;quot; id=&amp;quot;edgeExamples&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;!-- 여기에 엣지 스타일 예시가 동적으로 추가됩니다 --&amp;gt;&lt;br /&gt;
			&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;div id=&amp;quot;layouts&amp;quot; class=&amp;quot;tab-content&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;design-section&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;h3&amp;gt;4. 네트워크 레이아웃&amp;lt;/h3&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;그래프의 전체 레이아웃과 물리 효과를 설정할 수 있습니다:&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;div class=&amp;quot;example-grid&amp;quot; id=&amp;quot;layoutExamples&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;!-- 여기에 레이아웃 예시가 동적으로 추가됩니다 --&amp;gt;&lt;br /&gt;
			&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
	// 디자인 가이드 예시 생성 함수&lt;br /&gt;
	function createDesignExamples() {&lt;br /&gt;
		// 1. 노드 모양 예시&lt;br /&gt;
		const shapeTypes = [&lt;br /&gt;
			{ shape: &amp;#039;ellipse&amp;#039;, label: &amp;#039;ellipse&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;circle&amp;#039;, label: &amp;#039;circle&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;box&amp;#039;, label: &amp;#039;box&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;text&amp;#039;, label: &amp;#039;text&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;diamond&amp;#039;, label: &amp;#039;diamond&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;dot&amp;#039;, label: &amp;#039;dot&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;star&amp;#039;, label: &amp;#039;star&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;triangle&amp;#039;, label: &amp;#039;triangle&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;triangleDown&amp;#039;, label: &amp;#039;triangleDown&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;hexagon&amp;#039;, label: &amp;#039;hexagon&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;square&amp;#039;, label: &amp;#039;square&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;image&amp;#039;, label: &amp;#039;image&amp;#039;, image: &amp;#039;https://dh.aks.ac.kr/~gwangju/icon/photo/icon-Orchestra.jpg&amp;#039; },&lt;br /&gt;
			{ shape: &amp;#039;circularImage&amp;#039;, label: &amp;#039;circularImage&amp;#039;, image: &amp;#039;https://dh.aks.ac.kr/~gwangju/icon/photo/icon-Orchestra.jpg&amp;#039; }&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		const shapeContainer = document.getElementById(&amp;#039;shapeExamples&amp;#039;);&lt;br /&gt;
		shapeTypes.forEach(shapeInfo =&amp;gt; {&lt;br /&gt;
			const exampleItem = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
			exampleItem.className = &amp;#039;example-item&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			// 작은 네트워크 컨테이너 생성&lt;br /&gt;
			const networkContainer = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
			networkContainer.style.margin = &amp;#039;0 auto&amp;#039;;&lt;br /&gt;
			networkContainer.style.display = &amp;#039;flex&amp;#039;;&lt;br /&gt;
			networkContainer.style.justifyContent = &amp;#039;center&amp;#039;;&lt;br /&gt;
			networkContainer.style.alignItems = &amp;#039;center&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			exampleItem.appendChild(networkContainer);&lt;br /&gt;
			shapeContainer.appendChild(exampleItem);&lt;br /&gt;
&lt;br /&gt;
			// 노드 생성&lt;br /&gt;
			const nodes = new vis.DataSet([{&lt;br /&gt;
				id: 1,&lt;br /&gt;
				label: shapeInfo.label,&lt;br /&gt;
				shape: shapeInfo.shape,&lt;br /&gt;
				image: shapeInfo.image &lt;br /&gt;
			}]);&lt;br /&gt;
&lt;br /&gt;
			// 네트워크 생성&lt;br /&gt;
			const network = new vis.Network(networkContainer, { nodes }, {&lt;br /&gt;
				nodes: {&lt;br /&gt;
					size: 40,&lt;br /&gt;
					font: { size: 14 }&lt;br /&gt;
				},&lt;br /&gt;
				physics: {&lt;br /&gt;
					enabled: true,&lt;br /&gt;
					stabilization: true,&lt;br /&gt;
					barnesHut: {&lt;br /&gt;
						gravitationalConstant: -2000,&lt;br /&gt;
						centralGravity: 0.1,&lt;br /&gt;
						springLength: 95,&lt;br /&gt;
						springConstant: 0.04,&lt;br /&gt;
						damping: 0.09&lt;br /&gt;
					}&lt;br /&gt;
				},&lt;br /&gt;
				interaction: {&lt;br /&gt;
					dragNodes: true,&lt;br /&gt;
					dragView: false,&lt;br /&gt;
					zoomView: false&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			// 네트워크 캔버스 중앙 정렬&lt;br /&gt;
			network.on(&amp;quot;afterDrawing&amp;quot;, function(ctx) {&lt;br /&gt;
				network.fit();&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// 2. 노드 스타일 예시&lt;br /&gt;
		const nodeStyleExamples = [&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;기본 스타일&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					shape: &amp;#039;circle&amp;#039;,&lt;br /&gt;
					color: {&lt;br /&gt;
						background: &amp;#039;#97C2FC&amp;#039;,&lt;br /&gt;
						border: &amp;#039;#2B7CE9&amp;#039;&lt;br /&gt;
					},&lt;br /&gt;
					borderWidth: 2&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;아이콘 오버레이&amp;#039;,&lt;br /&gt;
				customRender: true,&lt;br /&gt;
				options: {&lt;br /&gt;
					shape: &amp;#039;circularImage&amp;#039;,&lt;br /&gt;
					image: &amp;#039;https://img.icons8.com/color/48/church.png&amp;#039;,&lt;br /&gt;
					borderWidth: 3,&lt;br /&gt;
					borderWidthSelected: 5,&lt;br /&gt;
					color: {&lt;br /&gt;
						border: &amp;#039;#03A9F4&amp;#039;,&lt;br /&gt;
						background: &amp;#039;#E1F5FE&amp;#039;&lt;br /&gt;
					},&lt;br /&gt;
					size: 40&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;하이라이트 효과&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					color: { &lt;br /&gt;
						background: &amp;#039;#97C2FC&amp;#039;, &lt;br /&gt;
						border: &amp;#039;#2B7CE9&amp;#039;,&lt;br /&gt;
						highlight: { background: &amp;#039;#D2E5FF&amp;#039;, border: &amp;#039;#2B7CE9&amp;#039; }&lt;br /&gt;
					},&lt;br /&gt;
					size: 30&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;그림자 효과&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					color: { background: &amp;#039;#FFD86E&amp;#039;, border: &amp;#039;#EDAA25&amp;#039; },&lt;br /&gt;
					shadow: { enabled: true, color: &amp;#039;rgba(0,0,0,0.5)&amp;#039;, size: 10, x: 5, y: 5 },&lt;br /&gt;
					size: 30&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;검정 배경 흰색 글씨&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					color: { background: &amp;#039;black&amp;#039;, border: &amp;#039;#333&amp;#039; },&lt;br /&gt;
					font: { color: &amp;#039;white&amp;#039;, size: 14 },&lt;br /&gt;
					size: 30&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;둥근 이미지&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					shape: &amp;#039;circularImage&amp;#039;,&lt;br /&gt;
					image: &amp;#039;https://dh.aks.ac.kr/~gwangju/icon/photo/icon-Orchestra.jpg&amp;#039;,&lt;br /&gt;
					size: 30&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;커스텀 폰트&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					font: { face: &amp;#039;함초롬바탕&amp;#039;, color: &amp;#039;#772244&amp;#039;, size: 16, bold: true },&lt;br /&gt;
					color: { background: &amp;#039;#FFECB3&amp;#039; },&lt;br /&gt;
					size: 30&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		const styleContainer = document.getElementById(&amp;#039;styleExamples&amp;#039;);&lt;br /&gt;
		nodeStyleExamples.forEach(example =&amp;gt; {&lt;br /&gt;
			const exampleItem = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
			exampleItem.className = &amp;#039;example-item&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			// 제목 추가&lt;br /&gt;
			const title = document.createElement(&amp;#039;h4&amp;#039;);&lt;br /&gt;
			title.textContent = example.name;&lt;br /&gt;
			exampleItem.appendChild(title);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			// 작은 네트워크 컨테이너 생성&lt;br /&gt;
			const networkContainer = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
			networkContainer.style.margin = &amp;#039;0 auto&amp;#039;;&lt;br /&gt;
			networkContainer.style.display = &amp;#039;flex&amp;#039;;&lt;br /&gt;
			networkContainer.style.justifyContent = &amp;#039;center&amp;#039;;&lt;br /&gt;
			networkContainer.style.alignItems = &amp;#039;center&amp;#039;;&lt;br /&gt;
			networkContainer.style.position = &amp;#039;relative&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			exampleItem.appendChild(networkContainer);&lt;br /&gt;
&lt;br /&gt;
			styleContainer.appendChild(exampleItem);&lt;br /&gt;
&lt;br /&gt;
			// 노드 생성&lt;br /&gt;
			const nodes = new vis.DataSet([{&lt;br /&gt;
				id: 1,&lt;br /&gt;
				label: &amp;#039;노드&amp;#039;,&lt;br /&gt;
				...example.options&lt;br /&gt;
			}]);&lt;br /&gt;
&lt;br /&gt;
			// 네트워크 생성&lt;br /&gt;
			const network = new vis.Network(networkContainer, { nodes }, {&lt;br /&gt;
				physics: {&lt;br /&gt;
					enabled: true,&lt;br /&gt;
					stabilization: true,&lt;br /&gt;
					barnesHut: {&lt;br /&gt;
						gravitationalConstant: -2000,&lt;br /&gt;
						centralGravity: 0.1,&lt;br /&gt;
						springLength: 95,&lt;br /&gt;
						springConstant: 0.04,&lt;br /&gt;
						damping: 0.09&lt;br /&gt;
					}&lt;br /&gt;
				},&lt;br /&gt;
				interaction: {&lt;br /&gt;
					dragNodes: true,&lt;br /&gt;
					dragView: false,&lt;br /&gt;
					zoomView: false&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			// 네트워크 캔버스 중앙 정렬&lt;br /&gt;
			network.on(&amp;quot;afterDrawing&amp;quot;, function() {&lt;br /&gt;
				network.fit();&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			// 아이콘 오버레이를 위한 새로운 방식 적용&lt;br /&gt;
			if(example.customRender){&lt;br /&gt;
				if (example.name === &amp;#039;아이콘 오버레이&amp;#039;  ) {&lt;br /&gt;
				// 노드 렌더링 함수 재정의&lt;br /&gt;
				const originalDrawFunction = network.body.nodes[1].shape.draw;&lt;br /&gt;
				network.body.nodes[1].shape.draw = function(ctx, x, y, selected, hover, values) {&lt;br /&gt;
					// 기본 노드 그리기&lt;br /&gt;
					originalDrawFunction.call(this, ctx, x, y, selected, hover, values);&lt;br /&gt;
					&lt;br /&gt;
					// 노드 크기 가져오기&lt;br /&gt;
					const radius = values.size;&lt;br /&gt;
					&lt;br /&gt;
					// + 아이콘 배경 그리기&lt;br /&gt;
					ctx.fillStyle = &amp;#039;#FF5722&amp;#039;;&lt;br /&gt;
					ctx.beginPath();&lt;br /&gt;
					ctx.arc(x + radius*0.7, y - radius*0.7, radius*0.35, 0, 2 * Math.PI);&lt;br /&gt;
					ctx.fill();&lt;br /&gt;
					ctx.strokeStyle = &amp;#039;white&amp;#039;;&lt;br /&gt;
					ctx.lineWidth = 2;&lt;br /&gt;
					ctx.stroke();&lt;br /&gt;
					&lt;br /&gt;
					// 플러스 기호 그리기 - 더 굵고 큰 선으로 그리기&lt;br /&gt;
					const iconX = x + radius*0.7;&lt;br /&gt;
					const iconY = y - radius*0.7;&lt;br /&gt;
					const iconSize = radius * 0.5; // 크기 증가&lt;br /&gt;
					&lt;br /&gt;
					// 흰색 플러스 기호 그리기&lt;br /&gt;
					ctx.lineWidth = iconSize * 0.3; // 더 굵게&lt;br /&gt;
					ctx.strokeStyle = &amp;#039;white&amp;#039;;&lt;br /&gt;
					&lt;br /&gt;
					// 수평선&lt;br /&gt;
					ctx.beginPath();&lt;br /&gt;
					ctx.moveTo(iconX - iconSize/2, iconY);&lt;br /&gt;
					ctx.lineTo(iconX + iconSize/2, iconY);&lt;br /&gt;
					ctx.stroke();&lt;br /&gt;
					&lt;br /&gt;
					// 수직선&lt;br /&gt;
					ctx.beginPath();&lt;br /&gt;
					ctx.moveTo(iconX, iconY - iconSize/2);&lt;br /&gt;
					ctx.lineTo(iconX, iconY + iconSize/2);&lt;br /&gt;
					ctx.stroke();&lt;br /&gt;
				};&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		// 3. 엣지 스타일 예시&lt;br /&gt;
		const edgeExamples = [&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;기본 화살표&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					arrows: { to: { enabled: true } },&lt;br /&gt;
					color: { color: &amp;#039;#848484&amp;#039; },&lt;br /&gt;
					width: 2&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;양방향 화살표&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					arrows: { to: { enabled: true }, from: { enabled: true } },&lt;br /&gt;
					color: { color: &amp;#039;#848484&amp;#039; },&lt;br /&gt;
					width: 2&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;점선&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					dashes: [5, 5],&lt;br /&gt;
					width: 2,&lt;br /&gt;
					color: { color: &amp;#039;#434343&amp;#039; }&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;다양한 화살표 타입&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					arrows: { to: { enabled: true, type: &amp;#039;circle&amp;#039; } },&lt;br /&gt;
					color: { color: &amp;#039;#6A1B9A&amp;#039; },&lt;br /&gt;
					width: 2&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;곡선 간선&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					smooth: { enabled: true, type: &amp;#039;curvedCW&amp;#039;, roundness: 0.3 },&lt;br /&gt;
					arrows: { to: { enabled: true } },&lt;br /&gt;
					color: { color: &amp;#039;#00695C&amp;#039; },&lt;br /&gt;
					width: 2&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;라벨 있는 간선&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					label: &amp;#039;관계&amp;#039;,&lt;br /&gt;
					font: { size: 12, align: &amp;#039;middle&amp;#039; },&lt;br /&gt;
					color: { color: &amp;#039;#E65100&amp;#039;, highlight: &amp;#039;#FF9800&amp;#039; },&lt;br /&gt;
					width: 2&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		const edgeContainer = document.getElementById(&amp;#039;edgeExamples&amp;#039;);&lt;br /&gt;
		edgeExamples.forEach(example =&amp;gt; {&lt;br /&gt;
			const exampleItem = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
			exampleItem.className = &amp;#039;example-item&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			// 제목 추가&lt;br /&gt;
			const title = document.createElement(&amp;#039;h4&amp;#039;);&lt;br /&gt;
			title.textContent = example.name;&lt;br /&gt;
			exampleItem.appendChild(title);&lt;br /&gt;
&lt;br /&gt;
			// 작은 네트워크 컨테이너 생성&lt;br /&gt;
			const networkContainer = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
			networkContainer.style.margin = &amp;#039;0 auto&amp;#039;;&lt;br /&gt;
			networkContainer.style.display = &amp;#039;flex&amp;#039;;&lt;br /&gt;
			networkContainer.style.justifyContent = &amp;#039;center&amp;#039;;&lt;br /&gt;
			networkContainer.style.alignItems = &amp;#039;center&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			exampleItem.appendChild(networkContainer);&lt;br /&gt;
&lt;br /&gt;
			edgeContainer.appendChild(exampleItem);&lt;br /&gt;
&lt;br /&gt;
			// 노드와 엣지 생성&lt;br /&gt;
			const nodes = new vis.DataSet([&lt;br /&gt;
				{ id: 1, label: &amp;#039;Node 1&amp;#039;, x: -40, y: 0 },&lt;br /&gt;
				{ id: 2, label: &amp;#039;Node 2&amp;#039;, x: 40, y: 0 }&lt;br /&gt;
			]);&lt;br /&gt;
&lt;br /&gt;
			const edges = new vis.DataSet([{&lt;br /&gt;
				from: 1,&lt;br /&gt;
				to: 2,&lt;br /&gt;
				...example.options&lt;br /&gt;
			}]);&lt;br /&gt;
&lt;br /&gt;
			// 네트워크 생성&lt;br /&gt;
			const network = new vis.Network(networkContainer, { nodes, edges }, {&lt;br /&gt;
				physics: {&lt;br /&gt;
					enabled: true,&lt;br /&gt;
					stabilization: true,&lt;br /&gt;
					barnesHut: {&lt;br /&gt;
						gravitationalConstant: -2000,&lt;br /&gt;
						centralGravity: 0.1,&lt;br /&gt;
						springLength: 95,&lt;br /&gt;
						springConstant: 0.04,&lt;br /&gt;
						damping: 0.09&lt;br /&gt;
					}&lt;br /&gt;
				},&lt;br /&gt;
				interaction: {&lt;br /&gt;
					dragNodes: true,&lt;br /&gt;
					dragView: false,&lt;br /&gt;
					zoomView: false&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			network.on(&amp;quot;afterDrawing&amp;quot;, function() {&lt;br /&gt;
				network.fit();&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		// 4. 레이아웃 예시&lt;br /&gt;
		const layoutExamples = [&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;표준 레이아웃&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					layout: { improvedLayout: true },&lt;br /&gt;
					physics: { enabled: true, solver: &amp;#039;barnesHut&amp;#039; }&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;계층형 (위→아래)&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					layout: {&lt;br /&gt;
						hierarchical: {&lt;br /&gt;
							enabled: true,&lt;br /&gt;
							direction: &amp;#039;UD&amp;#039;,&lt;br /&gt;
							sortMethod: &amp;#039;directed&amp;#039;&lt;br /&gt;
						}&lt;br /&gt;
					},&lt;br /&gt;
					physics: { enabled: false }&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;계층형 (좌→우)&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					layout: {&lt;br /&gt;
						hierarchical: {&lt;br /&gt;
							enabled: true,&lt;br /&gt;
							direction: &amp;#039;LR&amp;#039;,&lt;br /&gt;
							sortMethod: &amp;#039;directed&amp;#039;&lt;br /&gt;
						}&lt;br /&gt;
					},&lt;br /&gt;
					physics: { enabled: false }&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;ForceAtlas2 물리효과&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					layout: { improvedLayout: true },&lt;br /&gt;
					physics: {&lt;br /&gt;
						enabled: true,&lt;br /&gt;
						solver: &amp;#039;forceAtlas2Based&amp;#039;,&lt;br /&gt;
						forceAtlas2Based: {&lt;br /&gt;
							gravitationalConstant: -50,&lt;br /&gt;
							centralGravity: 0.01,&lt;br /&gt;
							springLength: 100,&lt;br /&gt;
							springConstant: 0.08&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;반발력 기반&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					layout: { improvedLayout: true },&lt;br /&gt;
					physics: {&lt;br /&gt;
						enabled: true,&lt;br /&gt;
						solver: &amp;#039;repulsion&amp;#039;,&lt;br /&gt;
						repulsion: {&lt;br /&gt;
							nodeDistance: 120,&lt;br /&gt;
							centralGravity: 0.2&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				name: &amp;#039;물리효과 없음&amp;#039;,&lt;br /&gt;
				options: {&lt;br /&gt;
					layout: { improvedLayout: true },&lt;br /&gt;
					physics: { enabled: false }&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		const layoutContainer = document.getElementById(&amp;#039;layoutExamples&amp;#039;);&lt;br /&gt;
		layoutExamples.forEach(example =&amp;gt; {&lt;br /&gt;
			const exampleItem = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
			exampleItem.className = &amp;#039;example-item&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			// 제목 추가&lt;br /&gt;
			const title = document.createElement(&amp;#039;h4&amp;#039;);&lt;br /&gt;
			title.textContent = example.name;&lt;br /&gt;
			exampleItem.appendChild(title);&lt;br /&gt;
&lt;br /&gt;
			// 작은 네트워크 컨테이너 생성&lt;br /&gt;
			const networkContainer = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
			networkContainer.style.margin = &amp;#039;0 auto&amp;#039;; &lt;br /&gt;
			networkContainer.style.display = &amp;#039;flex&amp;#039;;&lt;br /&gt;
			networkContainer.style.justifyContent = &amp;#039;center&amp;#039;;&lt;br /&gt;
			networkContainer.style.alignItems = &amp;#039;center&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			exampleItem.appendChild(networkContainer);&lt;br /&gt;
&lt;br /&gt;
			layoutContainer.appendChild(exampleItem);&lt;br /&gt;
&lt;br /&gt;
			// 샘플 그래프 데이터 생성&lt;br /&gt;
			const nodes = new vis.DataSet([&lt;br /&gt;
				{ id: 1, label: &amp;#039;1&amp;#039; },&lt;br /&gt;
				{ id: 2, label: &amp;#039;2&amp;#039; },&lt;br /&gt;
				{ id: 3, label: &amp;#039;3&amp;#039; },&lt;br /&gt;
				{ id: 4, label: &amp;#039;4&amp;#039; },&lt;br /&gt;
				{ id: 5, label: &amp;#039;5&amp;#039; }&lt;br /&gt;
			]);&lt;br /&gt;
&lt;br /&gt;
			const edges = new vis.DataSet([&lt;br /&gt;
				{ from: 1, to: 2 },&lt;br /&gt;
				{ from: 1, to: 3 },&lt;br /&gt;
				{ from: 2, to: 4 },&lt;br /&gt;
				{ from: 2, to: 5 }&lt;br /&gt;
			]);&lt;br /&gt;
&lt;br /&gt;
			// 네트워크 생성&lt;br /&gt;
			const network = new vis.Network(networkContainer, { nodes, edges }, example.options);&lt;br /&gt;
			network.on(&amp;quot;afterDrawing&amp;quot;, function() {&lt;br /&gt;
				network.fit();&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		// 탭 전환 함수&lt;br /&gt;
		function showTab(tabId) {&lt;br /&gt;
			// 모든 탭 컨텐츠 숨기기&lt;br /&gt;
			var tabContents = document.getElementsByClassName(&amp;quot;tab-content&amp;quot;);&lt;br /&gt;
			for (var i = 0; i &amp;lt; tabContents.length; i++) {&lt;br /&gt;
				tabContents[i].classList.remove(&amp;quot;active&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// 모든 탭 비활성화&lt;br /&gt;
			var tabs = document.getElementsByClassName(&amp;quot;tab&amp;quot;);&lt;br /&gt;
			for (var i = 0; i &amp;lt; tabs.length; i++) {&lt;br /&gt;
				tabs[i].classList.remove(&amp;quot;active&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// 선택한 탭 컨텐츠 보이기&lt;br /&gt;
			document.getElementById(tabId).classList.add(&amp;quot;active&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
			// 선택한 탭 활성화&lt;br /&gt;
			var selectedTab = document.querySelector(&amp;quot;.tab[onclick*=&amp;#039;&amp;quot; + tabId + &amp;quot;&amp;#039;]&amp;quot;);&lt;br /&gt;
			if (selectedTab) {&lt;br /&gt;
				selectedTab.classList.add(&amp;quot;active&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// 페이지 로드 시 디자인 예제 생성&lt;br /&gt;
		window.onload = function() {&lt;br /&gt;
			createDesignExamples();&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// 탭 전환 함수&lt;br /&gt;
	function showTab(tabId) {&lt;br /&gt;
		// 모든 탭 컨텐츠 숨기기&lt;br /&gt;
		var tabContents = document.getElementsByClassName(&amp;quot;tab-content&amp;quot;);&lt;br /&gt;
		for (var i = 0; i &amp;lt; tabContents.length; i++) {&lt;br /&gt;
			tabContents[i].classList.remove(&amp;quot;active&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// 모든 탭 비활성화&lt;br /&gt;
		var tabs = document.getElementsByClassName(&amp;quot;tab&amp;quot;);&lt;br /&gt;
		for (var i = 0; i &amp;lt; tabs.length; i++) {&lt;br /&gt;
			tabs[i].classList.remove(&amp;quot;active&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// 선택한 탭 컨텐츠 보이기&lt;br /&gt;
		document.getElementById(tabId).classList.add(&amp;quot;active&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		// 선택한 탭 활성화&lt;br /&gt;
		var selectedTab = document.querySelector(&amp;quot;.tab[onclick*=&amp;#039;&amp;quot; + tabId + &amp;quot;&amp;#039;]&amp;quot;);&lt;br /&gt;
		if (selectedTab) {&lt;br /&gt;
			selectedTab.classList.add(&amp;quot;active&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// 페이지 로드 시 디자인 예제 생성&lt;br /&gt;
	window.onload = function() {&lt;br /&gt;
		createDesignExamples();&lt;br /&gt;
	};&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
</feed>