컴퓨터활용능력시험 1급 실기 - 2과목 데이터베이스 실무 (2018개정) [교안]
탐새 11단원 조회 문혜영교수 컴퓨터활용능력 1급 실기 2 1 Filter 목차 2 RecordSource 3 RecordsetClone 4 Ado filter • Filter : 폼, 보고서, 테이블, 쿼리에서 조건에 맞는 레코드만 추출합니다. • 문자 • Me.filter=“제품명=‘ ” & txt제품명 & “ ’ ” • 숫자 • Me.filter=“점수=“ & txt점수 • 날짜 • Me.filter=“날짜= # “ & txt날짜 & “#” • FilterOn : filter에서 정의된 조건을 폼이나 보고서에 적용할지를 지정합니다. True : 필터속성을 적용합니다. False : 필터속성을 해지합니다. • Me.filterOn=true • Me.filterOn=false • 판매관리폼의 <제품명찾기> 버튼(cmd제품명찾기)과 <전체보기1>버튼(cmd전체보기1)을 클릭하면 다 음과 같은 기능이 수행되도록 설정하시오. • txt제품명 컨트롤의 제품명을 입력하고 제품명찾기 버튼을 클릭하면 제품명이 txt제품명의 값과 같은 제품의 정보를 찾아 표시되도록 하시오. Me.filter=“제품명=‘ ” & txt제품명 & “ ’ ” Me.filterOn=true • <전체보기1>버튼을 클릭하면 폼에 모든 제품의 정보가 표시되도록 하시오. Me.filterOn=false recordsource • 테이블, 쿼리, SQL문등의 데이터를 폼이나 보고서의 데이터 원본으로 지정할 때 사용합니다. • Me.recordsource = "select * from 매출종합 where 코드 =" & t코드 • Me.recordsource = "select * from 매출종합 where 조회코드 = '" & txt조회코드 & "'" • Me.RecordSource = "SELECT * FROM 매출총합 where 매출코드 like ‘*" & txt매출코드 & "*‘" • ‘판매관리’폼의 ‘txt이메일’컨트롤에 담당자 이메일의 일부를 입력하고 <이메일 찾기>버튼(cmd이메일찾 기)를 클릭하면 다음과 같은 기능이 수행되도록 표시하시오. • 담당자 이메일 주소가 ‘txt이메일’에 입력된 글자를 포함하는 제품의 정보를 찾아 표시하시오. • 현재폼의 ‘recordsource’속성을 이용하여 이벤트 프로시저를 작성하시오 Me.RecordSource = "SELECT * FROM 제품별판매현황 where 담당자이메일 like ‘*" & txt이메일 & "*‘" recordsetclone • 주어진 쿼리나 폼의 RecordSource 속성에 의해 지정된 테이블의 사본이다. 지정한 조건에 맞는 첫 번째 레코드를 찾아 현재 레코드로 설정시킨다. • 특정 레코드를 유일하게 식별하는 표식이다. 복사된 레코드 셋을 열었을 때 여러 개의 레코드가 있지만 현재 레코드 포인터는 항상 1개만을 가리키므로 그것을 확인할 수있는 것이 bookmark 이다. • Me.RecordsetClone.FindFirst 조건 • 현재 폼의 레코드르 복사해서 조건에 맞는 첫번째 자료를 찾는다.. • Me.Bookmark = Me.RecordsetClone.Bookmark • 현재 폼의 북마크에 찾아놓은 레코드의 북마크를 대입한다. • Me.RecordsetClone.FindFirst "판매번호 = " & txt판매번호 • Me.Bookmark = Me.RecordsetClone.Bookmark • Me.recordsetClone.Findfirst "제품명 = '" & txt제품명 & "'" • Me.Bookmark = Me.recordsetClone.Bookmark ado • 판매관리 폼의 txt판매번호 컨트롤에 판매변호를 입력하고 <제품정보찾기.버튼을 클 릭하면 다음과 같은 기능이 수행되도록 하시오. • 제품정보 폼을 실행한 후 제품정보 폼의 판매번호가 txt판매번호의 값과 같은 제품의 정보를 찾아 표 시되도록 하시오. • Ado개체를 이용하시오. Dim rs As ADODB.Recordset => rs를 ADO의 변수로 선언합니다. Set rs = New ADODB.Recordset => rs에 임시로 저장할 레코드 셋을 할당합니다. DoCmd.OpenForm "제품정보“ => 제품정보 폼을 엽니다. rs.ActiveConnection = CurrentProject.Connection => rs레코드 셋에 현재 데이터베이스를 연결합니다. rs.Open "select * from 제품별판매현황 where 판매번호=" & txt판매번호 => 조건에 만족한 레코드를 rs레코드에 할당합니다. Forms!제품정보.txt판매번호 = rs!판매번호 Forms!제품정보.txt제품명 = rs!제품명 Forms!제품정보.txt판매량 = rs!판매량 Forms!제품정보.txt불량품 = rs!불량품 Forms!제품정보.txt단가 = rs!단가 Forms!제품정보.txt제품평 = rs!제품평 Forms!제품정보.txt거래처명 = rs!거래처명 Forms!제품정보.txt거래처등급 = rs!거래처등급 rs.Close =>rs를 닫습니다.
탐새 12단원 조회 연습문제 문혜영교수 컴퓨터활용능력 1급 실기 2 1 Filter 목차 2 RecordSource 3 RecordsetClone 4 Ado filter • 고객관리 폼의 조회버튼(cmd조회)을 클릭하면 다음과 같은 조회기능을 수행하시오. • 가입일이 txt조회에 입력된 값과 같은 레코드만 표시하도록 하시오. • Filter기능을 이용할 것 문자 Me.filter=“제품명=‘ ” & txt제품명 & “ ’ ” 숫자 Me.filter=“점수=“ & txt점수 날짜 Me.filter=“날짜= # “ & txt날짜 & “#” Me.Filter = "가입일 = #" & txt조회 & "#" Me.FilterOn = True recordsource • 도서찾기 폼의 찾기버튼(cmd찾기)를 클릭할 때 다음과 같은 조회기능을 수행하시오. • 도서명 필드에 txt찾기에 입력된 문자를 포함하는 도서의 정보를 찾아 표시하시오. • 현재폼의 recordsource속성을 이용하여 이벤트 프로시저를 작성하시오. Me.recordsource = "select * from 매출종합 where 코드 =" & t코드 Me.recordsource = "select * from 매출종합 where 조회코드 = '" & txt조회코드 & "'" Me.RecordSource = "SELECT * FROM 매출총합 where 매출코드 like ‘*" & txt매출코드 & "*‘" Me.RecordSource = "Select * from 도서 where 도서명 like '*" & txt찾기 & "*'" recordsetclone • 학생정보 폼의 txt조회 컨트롤에 학번을 입력하고 찾기 버튼(cmd찾기)를 클릭하면 다음과 같이 수행하도 록 하시오. • 입력된 학번에 해당하는 학생의 정보를 찾아 표시하도록 하시오. • 현재 폼의 recordsetClone속성과 bookmark속성, findfirst메서드등을 이용하시오. Me.RecordsetClone.FindFirst "판매번호 = " & txt판매번호 Me.Bookmark = Me.RecordsetClone.Bookmark Me.recordsetClone.Findfirst "제품명 = '" & txt제품명 & "'" Me.Bookmark = Me.recordsetClone.Bookmark Me.RecordsetClone.FindFirst "학번 = '" & txt조회 & "'" Me.Bookmark = Me.RecordsetClone.Bookmark ado • 봉사내역폼에서 txt학번컨트롤을 클릭할 때 다음과 같은 기능을 수행하도록 구현하 시오. • 학번이 txt학번에 표시된 값과 같은 학생의 이름, 학과, 전화번호를 표시한 메시 지 박스를 표시하시오. • Ado개체를 이용하시오. Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.ActiveConnection = CurrentProject.Connection rs.Open "select * from 봉사내역종합 where 학번= '" & txt학번 & "'" MsgBox rs!이름 & "/" & rs!학과 & "/" & rs!연락처 rs.Close
탐새 13단원 쿼리 문혜영교수 컴퓨터활용능력 1급 실기 2 1 쿼리 개념 목차 2 쿼리 만들기 3 쿼리 마법사 4 쿼리 디자인 쿼리 개념 쿼리는 ‘질문’이란 뜻으로, 테이블에 저장된 데이터 중에서 원하는 데이터만 불러내 필요할 때 정보로 활 용 할 수 있게 해주는 도구입니다. 쿼리 만들기 쿼리 마법사 • [만들기] 탭- [쿼리] 그룹- [쿼리 마법사] 쿼리 디자인 • [만들기] 탭- [쿼리] 그룹- [쿼리 디자인] 쿼리 마법사 • 크로스 탭 쿼리 테이블이나 또 다른 쿼리에 있는 필드를 열과 행 방향에 각각 배치 설정하여, 교차하는 필드의 값을 합계, 평균, 개수 등 함수를 사용하여 테이블을 요약하는 쿼리. • 중복데이터 검색 쿼리 • [만들기] 탭- [쿼리] 그룹-[쿼리 마법사]-[중복데이터 검색 쿼리 마법사] • 불일치 검색 쿼리 두 테이블을 비교하여 어느 한 쪽을 기준으로 다른 한 쪽 에는 없는 레코드가 있는지 파악하는 경우에 사용. 쿼리 디자인 추가 쿼리 기존테이블의 마지막 위치에 다른 테이블 에 있는 레코드를 추가하는 쿼리로 두 테 이블의 구조가 같아야 합니다. 업데이트 쿼리 특정 필드에 속해있는 데이터를 변경하여 적용할 경우 사용하는 쿼리입니다. 삭제 쿼리 조건에 맞는 레코드를 삭제하는 쿼리로 사용하지 않는 레코드를 한꺼번에 삭제할 수 있습니다 테이블 만들기 쿼리 쿼리 결과로 구한 테이블을 또 하나의 새 로운 테이블로 저장하는 경우 사용합니다. • 요약 쿼리 특정 필드를 기준으로 요약을 통해 그룹화하 여 합계나 평균, 개수 등으로 부분합 할 수 있 다. • 계산 쿼리 • 테이블이나 쿼리의 필드를 대상으로 연산을 통해서 새로운 필드를 추가하고 속성을 변경 할 수 있다.
탐새 14단원 쿼리 연습문제 문혜영교수 컴퓨터활용능력 1급 실기 1 • 소속지점쿼리를 작성하시오 • 판매테이블과 지점테이블을 이용하여 지점코드별 지점명, 판매수량의 평균, 지점년도를 조회하시오. • 판매수량평규을 중심으로 내림차순정렬하고 상위5번째까지 표시하시오. • 지점년도에는 창립일의 창립년도와 현재년도의 차이를 구하여 표시하시오. (date, datediff)함수 사용 2 • 판매현황제품쿼리를 작성하시오. • 제품명을 입력 받아서 해당제품의 판매수량,생산원가, 판매금액의 합계를 조회하시오. • 결과필드에는 제품명, 판매단가, 판매수량의합계, 생산원가의합계,판매금액합계로 표시하시오. • 제품과 판매테이블을 이용 하시오. • 판매금액=판매단가*판매수량 3 • 재고 쿼리를 작성하시오. • 판매가 이루어 지지 않은 제품에 대한 모든 정보를 '제품' 테이블에서 조회하시오. • '판매' 테이블에 존재하지 않는 제품코드는 판매가 이루어지지 않은 것으로 가정한다. • 판매단가가 40,000원 이상인 레코드만 표시한다. 4 • 지점별판매현황 쿼리를 작성하시오. • 제품명별로 각 지점에서 판매한 판매수량의 합계를 표시하는 크로스탭 쿼리를 작성하시오. • 판매현황 쿼리를 이용하시오.
탐새 15단원 처리 문혜영교수 컴퓨터활용능력 1급 실기 이벤트 프로시저 • 이벤트 프로시저 • 특정개체에 이벤트가 발생했을 때 자동으로 수행되는 프로시저이다. • 마우스 이벤트 • 포커스이벤트 이벤트 이벤트 속성 발생 시기 Click On Click 컨트롤을 마우스로 클릭할 경우 발생 DblClick On Dbl Click 컨트롤을 마우스로 더블클릭할 경우 발생 MouseDown On Mouse Down 마우스 단추를 누를때 발생 MouseMove On Mouse Move 마우스를 다른 컨트롤로 이동시킬 때 발생 MouseUp On Mouse Up 누르고 있던 마우스 단추를 놓을 때 발생 이벤트 이벤트 속성 발생 시기 Activate On Activate 폼이나 보고서가 활성화 될때 Deactivate On Deactivate 활성창이 다른 창으로 바뀔때 Enter On Enter 특정컨트롤로 포커스가 옯겨지기 전에 발생 Exit On Exit 다른 컨트롤로 포커스를 잃기 전에 발생 GotFocus On Got Focus 컨트롤이나 폼이 포커스를 받을 때 발생 LostFocus On Lost Focus 폼이나 컨트롤이 포커스를 잃을 때 발생 매크로 작성 DoCmd 개체 • Docmd개체 : 매크로 함수를 VisualBasic에서 실행하기 위한 개체이다. Docmd.OpenForm "폼이름", 보기형태(acNormal이 기본값이며 생략 가능), 필터이름, "조건절" DoCmd.OpenForm "사원자료" DoCmd.OpenForm "사원자료", acNormal, , "[주소]='" & txt조회 & "'" DoCmd.OpenForm "사원자료", , , "[주소]='" & txt조회 & "'" If 문 If 조건식 then 실행문 Endif If (조건식)then (실행문) Else (실행문) Endif If(조건식1) then (실행문1) Elseif 조건식2 then 실행문2 Elseif 조건식3 then 실행문3 Else 실행문4 endif If txt수량 >= 100 Then MsgBox "10%할인", vbOKOnly, "사은행사" ElseIf txt수량 >= 50 Then MsgBox "무료배송", vbOKOnly, "사은행사" Else MsgBox "일반배송", vbOKOnly, "사은행사" End If MsgBox • 대화상자안에 메시지를 보여주고 사용자가 단추를 누를때 까지 기다린다음 사용자가 누른 단추에 해당하는 값을 반 환합니다. • Msgbox (메시지, [버튼종류], [대화상자타이틀]) • MsgBox "무엇을 원하세요", vbOKOnly, "문혜영“ MsgBox "무엇을 원하세요", vbOKCancel, "문혜영" • vbOKonly : <확인> • vbOKCancel : <확인>과 <취소> • vbAbortRetryIgnore : <중단>,<다시시도>,<무시> • vbYesNoCancel : <예>,<아니오>,<취소> • vbYesNo : <예>,<아니오> • vbRetryCancel :<다시시도>,<취소> • MsgBox "저장할까요?", vbOKCancel + vbCritical, "문혜영" vbQuestion vbExclamation vbinformation 1 • Txt,상품명 컨트롤과 cmb분류 컨트롤에 포커스가 옮겨가면(got focus이벤트) 다음과 같은 계산을 수행 하시오. • Txt상품명 컨트롤에 있는 값을 txt이름 컨트롤에 표시하시오. • Cmb분류 컨트롤에 있는 값을 txt분류 컨트롤에 표시하시오. Private Sub cmb분류_GotFocus() txt분류 = cmb분류 End Sub Private Sub txt상품명_GotFocus() txt이름 = txt상품명 End Sub 2 • <분류등록>(cmd분류등록)을 클릭했을 때 다음과 같은 기능을 수행하도록 하시오. • 분류등록 폼을 폼보기형태로 열리도록 이벤트 프로시저를 구현하시오. • Txt분류 컨트롤에 입력된 상품에 해당하는 데이터만 출력하도록 할것 • DoCmd개체 사용 Docmd.OpenForm "폼이름", 보기형태(acNormal이 기본값이며 생략 가능), 필터이름, "조건절" DoCmd.OpenForm "사원자료" DoCmd.OpenForm "사원자료", acNormal, , "[주소]='" & txt조회 & "'" DoCmd.OpenForm "사원자료", , , "[주소]='" & txt조회 & "'" Private Sub cmd분류등록_Click() DoCmd.OpenForm "분류등록", acNormal, , "분류명= '" & txt분류 & "'" End Sub 3 • <분류별인쇄>버튼(cmd분류별인쇄)을 클릭할 때 다음과 같은 기능을 수행하도록 매크로 함수로 구현하시 오. • 분류별판매내역 보고서를 인쇄 미리보기의 형태로 여시오. • txt분류 컨트롤에 입력된 분류에 해당하는 데이터만 출력하도록 하시오. 4 • <상품정보>버튼(cmd상품정보)을 더블클릭할 때 다음과 같은 기능을 수행하도록 하시오. • ‘상품정보’폼을 폼보기형식으로 열리도록 하는 매크로를 생성하시오. • txt이름 컨트롤에 입력된 상품에 해당하는 데이터만 출력하도록 할 것 5 • <닫기>버튼(cmd닫기)을 클릭하면 <그림>과 같이 메시지 상자를 ‘판매현황’폼을 종료하도록 구현하시오. • 매크로로 작성하되 매크로 이름은 ‘종료’로 할 것 6 • txt수량 컨트롤에 포커스가 이동하면(GotFocus) 그림과 같은 메시지 상자를 표시하는 이벤트 프로시저 를 구현하시오. • txt수량 컨트롤에 표시된 값이 100이상이면 “20%할인“, 100미만 50이상이 “로켓배송”, 그외에는 “일 반배송"으로 표시하시오. • It~elseif문을 사용하시오. Private Sub txt수량_GotFocus() If txt수량 >= 100 Then MsgBox "20%할인", vbOKCancel, "사은행사" ElseIf txt수량 >= 50 Then MsgBox "로켓배송", vbOKCancel, "사은행사" Else MsgBox "일반배송", vbOKCancel, "사은행사" End If End Sub
*******************
C 언어로 구현된 스마트 그리드 모니터링 시스템을 위한 LabVIEW와 C 언어의 TCP/IP통신 , TCP/IP communication between LabVIEW and C language for Smart Grid Monitoring System Jueun Kim , Nam-Sup Choi , Hyo-Sik Yang , Byung-Moon Han Chonnam National University , Sejong University , Myongji University ABSTRACT In smart grid system which uses photovoltaic system, fuel cells and so on, a program implemented with C language is used for control and measurement. When using programs implemented with C language GUI is difficult to watch control and monitor the smart grid system. But LabVIEW is a graphical programming language and it is easy to design GUI screen and to manage many variables such as real-time output of electric power including solar cell, wind power system and fuel cell. This paper suggests LabVIEW and C-language TCP /IP communication for smart grid monitoring system i mplemented with C-language. 1. 서론 태양광 발전, 연료전지 등을 사용하는 스마트 그리드 시스템 에서 제어 및 계측은 C언어로 구현된 프로그램을 사용한다. C 언어로 구현된 프로그램의 제어와 데이터 관리는 용이한 반면 스마트 그리드 시스템의 감시 및 제어를 모니터링하는 GUI가 어렵다. 그러나 LabVIEW는 그래픽 기반의 Graphical programming 으로 디버깅이 용이하고 따로 GUI 화면 설계가 필요하지 않다. 또한 별도의 컴파일링 작업 없이 Solar Cell, Wind Power System, Fuel Cell, Battery 등의 실시간 전력 생산량, 계통연 계 인버터 고조파 함유율과 같은 여러 변수들을 관리하는데 용 이하다. 본 논문에서는 C 언어로 구현된 스마트 그리드 모니터링 시스템을 위한 LabVIEW와 C 언어의 TCP/IP통신을 제안하였 다. 2. 본론 2.1 LabVIEW와 C 언어의 TCP/IP통신 시스템 개요 Socket 통신은 네트워크상에서 프로세서들 간 데이터 전송 을 위해 일반적으로 사용하는 방법이다. Socket 통신을 사용하 려면 Sever에서 Socket 초기화와 더불어 임의의 Port Number 를 담고 있는 Listen Socket 생성이 선행되어야 한다. Sever는 Socket을 생성하고 Client의 접속을 확인한 후 데이터를 전송 한다. 이때, 네트워크에 Client가 접속할 때까지 Sever는 Block 상태이다. Sever는 모든 데이터의 전송을 마치면 Socket을 닫 고, Client와의 연결도 닫는다.[1] 한편 LabVIEW에서 설계한 Client는 Sever와 Port Number, IP Address를 동일하게 지정 하고 데이터를 받을 수 있게 한다. Sever가 데이터를 전송하면 Client는 데이터를 받고, 데이터의 감시와 모니터링이 쉽게 디 스플레이한다. 즉, LabVIEW와 C언어에서 설계한 프로그램은 각각 Client, Sever의 역할을 하며, 두 언어 사이에서 데이터가 TCP/IP통신을 통해 송⋅수신이 가능하게 한다. 2.2 LabVIEW와 C 언어의 TCP/IP통신 시스템 설계 동일한 언어가 아닌 다른 두 언어 사이의 데이터 통신 시스 템이므로, 데이터 전송 시 발생할 수 있는 통신상의 문제, Endian 등을 고려하여 설계해야한다. C언에서 설계한 TCP/IP Sever 시스템은 다른 언어와 데이 터 전송에도 구조가 크게 달라지지 않는다. 그러나 LabVIEW 에서 설계한 Client 시스템은 Sever에서 전송한 데이터를 Endian 문제[2]로 인해 문자열이 뒤집히거나 순서가 바뀐 형태 로 읽었는지 확인해야 한다. 2.2.1 LabVIEW에서 설계한 Client 시스템 C언와 달리 LabVIEW는 그래픽 기반의 언어로써 라이브러 리 안에 있는 TCP/IP 연결 열기, 읽기, 쓰기, 연결 닫기 함수 를 순서대로 연결하면 TCP/IP통신 시스템에서 Client의 틀이 된다. Sever에서 네트워크를 통해 보낸 데이터를 원하는 출력 형태에 맞게 바꾸고, Port번호와 IP주소 입력을 해당 노드에 연결하는 것이 LabVIEW에서 설계한 기본 Client 시스템이다. 그림 1은 TCP/IP 연결 열기 함수로 Sever와 Address, Port Number로 서로의 접속 여부를 확인한 후 4byte크 기의 데이터를 읽는 것을 나타낸다. 또한, 그림 1을 통해 읽은 데이터의 순서를 뒤집고 타입캐스트 함수를 이용해 4byte로 타입을 변환한 후 출력하며, Sever의 전송이 끝 나면 TCP/IP 연결을 닫는 것을 볼 수 있다. 359 3. 결론 LabVIEW와 C 언어의 TCP/IP통신의 실험을 통해 Sever 에서 보낸 데이터를 Client는 실시간으로 받고 출력 할 수 있 는 것을 확인했다. Sever가 시간이 지남에 따라 변하는 여러 데이터를 보내도 그림 1 LabVIEW에서 설계한 Client 시스템의 블록 다이어그램 Fig. 1 block diagram of Client systems designed in LabVIEW 2.3 구현 결과 제안한 시스템의 동작을 검증하기 위해 임의의 Port Number 7575로 Sever가 0.01초 마다 sin, cos의 가 씩 커지는 데이터를 Client로 전송하고, sin, cos 값을 출력하는 시스템을 시뮬레이션 한다. 먼저 Sever는 Port Number 7575로 Socket을 생성하고, Client의 접속을 확인한다. Client가 네트워크에 접속하면 0.01 초 마다 sin, cos의 값이 씩 커지는 데이터를 Client 에 전송한다. Client는 TCP/IP통신을 통해 실시간으로 전송된 데이터를 읽고 sin와 cos 값을 프런트패널에 디스플레이 한다. Sever가 모든 데이터를 전송하면 Socket과 Client의 연결 을 닫으면 Client도 TCP/IP 연결을 닫는다. 그림 2는 LabVIEW의 프런트패널로 그림 1의 블록다이어그 램의 설계에 따라 데이터 출력 VI(Visual display) 이다. 각 데이터에 LabVIEW가 식별할 수 있는 형태의 ID를 붙이면 데이터 별로 출력이 가능하다. 이는 Client가 데이터를 읽고 출 력하는 사이에 ID 식별 후 분석하고, 데이터를 분류하는 함수 를 삽입하면, 각 데이터 마다 게이지, 그래프 등 여러 형태로 출력 할 수 있다. 이러한 방법을 이용하면, 스마트 그리드 시스 템뿐만 아니라 C언어로 구현된 프로그램의 제어, 모니터링이 필요한 분야에 다방면으로 사용할 수 있다. 본 논문에서 제안한 방법으로 스마트 그리드 시스템을 모니 터링하면 제어와 디버깅이 용이하며, GUI 설계가 쉽다. 또한 Solar Cell, Super Capacitor Fuel Cell의 각 Battery양, 실시간 전력 생산량, 계통연계 인버터 고조파 함유율 등의 여러 변수 들을 별도의 컴파일링 작업 없이 관리하고, 하나의 VI안에서 모니터링 할 수 있다. 감사의 글 본 논문은 지식경제부의 에너지자원인력양성사업의 지원으로 명지대학교 분산 전원 복합 운용연구센터를 통해 수행된 결과물의 일부입니다.