<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>파브레가스님의 이글루</title>
	<link>http://kim6351.egloos.com</link>
	<description></description>
	<language>ko</language>
	<pubDate>Tue, 02 Dec 2008 11:34:30 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>파브레가스님의 이글루</title>
		<url>http://md.egloos.com/img/samplelogo2.gif</url>
		<link>http://kim6351.egloos.com</link>
		<width>80</width>
		<height>80</height>
		<description></description>
	</image>
  	<item>
		<title><![CDATA[ 마지막 자바 일기 ]]> </title>
		<link>http://kim6351.egloos.com/1210957</link>
		<guid>http://kim6351.egloos.com/1210957</guid>
		<description>
			<![CDATA[ 
  <p>오늘 자바 일기에 프로그램을 적어야 되는데<br>마지막이어서 글로 남깁니다.<br>이번 자바 2학기 프로젝트를 하면서 좀 제 모자른 부분이 많은걸 느낀 프로젝트 였습니다.<br>아쉬운 점은 같은 조 형 도움을 많이 받아서 아쉽습니다.<br>어느덧 1년이 지나가네여 <br>자바를 처음 배울 때 마음가짐이 마지막까지 이어진것 같아서 그나마 뿌듯합니다.<br>노래방 프로그램을 잘 만들어서 그나마 다행입니다.<br>교수님 1년 동안 수고 하셨고 자바 배운 걸 잊어 먹지 않도록 하겠습니다.<br>정말 1년동안 무지 감사드리고 감사했습니다.<br>교수님 겨울에 추운데 감기 조심하시고 수고하십시오~~</p>			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/1210957#comments</comments>
		<pubDate>Tue, 02 Dec 2008 11:34:30 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 자바 일기 (프로젝트완성) ]]> </title>
		<link>http://kim6351.egloos.com/1206415</link>
		<guid>http://kim6351.egloos.com/1206415</guid>
		<description>
			<![CDATA[ 
  <p>import java.io.*;<br>import java.util.*;<br>import java.text.*;<br>import java.awt.*;<br>import java.awt.event.*;<br>import javax.swing.*;<br>import javax.swing.border.*;</p><p>public class NoRaeBang_System extends JFrame implements ActionListener<br>{&nbsp;<br>&nbsp;// 화면 사이즈 정보<br>&nbsp;static final int SCREEN_WIDTH = 640;<br>&nbsp;static final int SCREEN_HEIGHT = 480;</p><p>&nbsp;// 파일 저장 정보<br>&nbsp;static final String SAVE_FILE = "total.txt";<br>&nbsp;static final String SAVE_DATA_HEADER = "TOTAL RECORD NUMBER";<br>&nbsp;static final String SAVE_RECORD_HEADER = "RECORD ID";</p><p>&nbsp;// 가격 정보<br>&nbsp;static final int NORAEBANG_PRICE = 15000; <br>&nbsp;static final int HELPER_PRICE = 20000; <br>&nbsp;static final int BEVERAGE_PRICE = 1000; </p><p>&nbsp;// 현재 화면 정보<br>&nbsp;int current_state = -1;&nbsp;&nbsp;&nbsp;&nbsp;</p><p>&nbsp;static final int STATE_INIT_ROOM &nbsp;= 0x0100;<br>&nbsp;static final int STATE_MAIN_SCREEN &nbsp;= 0x0200;<br>&nbsp;static final int STATE_ENTER_ROOM &nbsp;= 0x0300;<br>&nbsp;static final int STATE_OUT_OF_ROOM &nbsp;= 0x0400;<br>&nbsp;static final int STATE_HELPER&nbsp; &nbsp;= 0x0500;<br>&nbsp;static final int STATE_BEVERAGE&nbsp; &nbsp;= 0x0600;<br>&nbsp;static final int STATE_ROOM_INFO&nbsp;= 0x0700;<br>&nbsp;static final int STATE_SALES_INFO&nbsp;= 0x0800;<br>&nbsp;static final int NEW_SONGS_INFO&nbsp;&nbsp;= 0x0A00;</p><p>&nbsp;// 방 정보<br>&nbsp;int total_room_number = -1;<br>&nbsp;RoomInfo ri[] = null;</p><p>&nbsp;// 메시지 팝업창에서 사용할 변수들<br>&nbsp;JDialog jpopup = new JDialog(this, "노래방 시스템", true);<br>&nbsp;JLabel jpopup_label = new JLabel();<br>&nbsp;JPanel jpopup_panel = new JPanel();<br>&nbsp;JButton jpopup_button = new JButton("확인");&nbsp;<br>&nbsp;<br>&nbsp;// 숫자 입력창에서 사용할 변수들<br>&nbsp;JDialog jinput = new JDialog(this, "노래방 시스템", true);<br>&nbsp;JLabel jinput_label = new JLabel();<br>&nbsp;JTextField jinput_textfield = new JTextField();<br>&nbsp;JButton jinput_button1 = new JButton("확인");<br>&nbsp;JButton jinput_button2 = new JButton("취소");<br>&nbsp;<br>&nbsp;// 다이얼로그 화면 정보<br>&nbsp;int dialog_state = -1;<br>&nbsp;<br>&nbsp;static final int DG_INPUT_ROOM_NUMBER = 0;<br>&nbsp;static final int DG_INPUT_ENTER_ROOM = 1;<br>&nbsp;static final int DG_INPUT_HELPER = 2;<br>&nbsp;static final int DG_INPUT_BEVERAGE = 3;<br>&nbsp;<br>&nbsp;// 정보 창에서 사용할 변수들<br>&nbsp;JDialog jinfo = new JDialog(this, "노래방 시스템", true);<br>&nbsp;JTextArea jinfo_jta = new JTextArea();<br>&nbsp;JButton jinfo_button = new JButton("확인");<br>&nbsp;<br>&nbsp;// 방 정보를 표시하는 화면에서 사용할 변수들<br>&nbsp;JPanel RoomSelect = null;<br>&nbsp;JLabel jl_RoomSelect = new JLabel();<br>&nbsp;JButton jb_RoomSelect[] = new JButton[23];<br>&nbsp;boolean rs_room_available;<br>&nbsp;int room_select_page = 0;<br>&nbsp;int selected_room_idx;</p><p>&nbsp;// 메인 메뉴 화면에서 사용할 변수들&nbsp;<br>&nbsp;JPanel MainScreen = null;<br>&nbsp;static final String bn_MainScreen[] = {"입&nbsp; 실", "퇴&nbsp; 실", "도우미", "음료수 판매", "방의 정보", "총 매출 확인", "화면 지우기", "신곡 정보", "종&nbsp; 료"};<br>&nbsp;JButton jb_MainScreen[] = new JButton[bn_MainScreen.length];<br>&nbsp;JTextArea jta_MainScreen = new JTextArea();</p><p>&nbsp;// 세이브 데이터 처리를 위한 HashTable<br>&nbsp;Hashtable ht = new Hashtable();</p><p><br>&nbsp;public NoRaeBang_System()&nbsp;&nbsp;&nbsp;// 생성자 (변수를 초기화 한다)<br>&nbsp;{&nbsp;<br>&nbsp;&nbsp;setTitle("노래방 시스템");<br>&nbsp;&nbsp;setSize(SCREEN_WIDTH, SCREEN_HEIGHT);<br>&nbsp;&nbsp;setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;loadData();&nbsp;&nbsp;&nbsp;&nbsp;// 저장한 파일을 읽어온다.<br>&nbsp;&nbsp;setVisible(true);&nbsp;&nbsp;&nbsp;// 프레임을 화면에 띄운다.</p><p>&nbsp;&nbsp;initInputDialog();&nbsp;&nbsp;&nbsp;// 입력 다이얼로그를 초기화<br>&nbsp;&nbsp;initInfoDialog();&nbsp;&nbsp;&nbsp;// 정보 다이얼로그를 초기화<br>&nbsp;&nbsp;initPopup();&nbsp;&nbsp;&nbsp;&nbsp;// 팝업 창을 초기화</p><p>&nbsp;&nbsp;// 메인 화면에 표시될 정보 입력<br>&nbsp;&nbsp;jta_MainScreen.setText(" ******************************\n");<br>&nbsp;&nbsp;jta_MainScreen.append(" *&nbsp;&nbsp;&nbsp; 노래방 관리 프로그램&nbsp;&nbsp;&nbsp; *\n");<br>&nbsp;&nbsp;jta_MainScreen.append(" *&nbsp;&nbsp; 만든이 : 박원규 김영철&nbsp;&nbsp; *\n");<br>&nbsp;&nbsp;jta_MainScreen.append(" ******************************\n");<br>&nbsp;&nbsp;jta_MainScreen.append(" \n");<br>&nbsp;&nbsp;jta_MainScreen.append(" 사용하실 메뉴를 선택해 주세요.\n\n");</p><p>&nbsp;&nbsp;setMainScreen();&nbsp;&nbsp;&nbsp;// 메인 화면을 세팅<br>&nbsp;&nbsp;setInputDialog("방의 수를 입력해 주세요.", false, DG_INPUT_ROOM_NUMBER);<br>&nbsp;}<br>&nbsp;<br>&nbsp;public static void main(String args[]) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 메인 메써드<br>&nbsp;{<br>&nbsp;&nbsp;NoRaeBang_System nrb = new NoRaeBang_System();<br>&nbsp;}</p><p>&nbsp;// 이벤트 처리&nbsp;<br>&nbsp;public void actionPerformed(ActionEvent evt)<br>&nbsp;{<br>&nbsp;&nbsp;if (evt.getSource() == jpopup_button)&nbsp;&nbsp;&nbsp;&nbsp;// 팝업창을 닫는다.<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;jpopup.dispose();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else if (evt.getSource() == jinput_button1)&nbsp;&nbsp;&nbsp;// 다이얼로그 확인 버튼 클릭<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;int input_number = -1;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;// textfield 에 입력된 값을 읽어온다.&nbsp;<br>&nbsp;&nbsp;&nbsp;try {<br>&nbsp;&nbsp;&nbsp;&nbsp;input_number = Integer.parseInt(jinput_textfield.getText());<br>&nbsp;&nbsp;&nbsp;} catch (Exception e_jb) {}<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;if (input_number &gt; 0)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;switch(dialog_state)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case DG_INPUT_ROOM_NUMBER:&nbsp;&nbsp;// 방의 수 입력 화면 - 입력된 숫자에 따라 방을 생성하고 각 방을 초기화 한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;total_room_number = input_number;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ri = new RoomInfo[total_room_number];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;total_room_number;i++) ri[i] = new RoomInfo(NORAEBANG_PRICE, HELPER_PRICE, BEVERAGE_PRICE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initSelectRoom();&nbsp;&nbsp;// 방 선택 화면 정보를 초기화 한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case DG_INPUT_ENTER_ROOM:&nbsp;&nbsp;// 시간 입력<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ri[selected_room_idx].enterRoom(input_number);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;updateSelectRoom();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 화면 갱신<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;updateData(selected_room_idx);&nbsp;&nbsp;&nbsp;&nbsp;// 세이브 데이터 업데이트<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setPopupLog((selected_room_idx+1)+" 번 방 사용이 시작되었습니다.");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case DG_INPUT_HELPER:&nbsp;&nbsp;&nbsp;// 도우미 추가<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ri[selected_room_idx].addHelper(input_number);&nbsp;&nbsp;// 도우미 추가<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;updateData(selected_room_idx);&nbsp;&nbsp;&nbsp;&nbsp;// 세이브 데이터 업데이트<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setPopupLog((selected_room_idx+1)+" 번 방에 " + input_number + "명의 도우미가 추가되었습니다.");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case DG_INPUT_BEVERAGE:&nbsp;&nbsp;&nbsp;// 음료 추가<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ri[selected_room_idx].addBeverage(input_number);&nbsp;// 음료 추가<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;updateData(selected_room_idx);&nbsp;&nbsp;&nbsp;&nbsp;// 세이브 데이터 업데이트<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setPopupLog((selected_room_idx+1)+" 번 방에 " + input_number + "개의 음료가 추가되었습니다.");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;jinput.dispose();&nbsp;&nbsp;&nbsp;// 다이얼로그 창을 닫는다.<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;else <br>&nbsp;&nbsp;&nbsp;&nbsp;setPopup("숫자를 올바르게 입력해 주세요.");<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else if (evt.getSource() == jinput_button2)&nbsp;&nbsp;&nbsp;// 다이얼로그 취소 버튼 클릭<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;jinput.dispose();&nbsp;&nbsp;&nbsp;&nbsp;// 다이얼로그 창을 닫는다.<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else if (evt.getSource() == jinfo_button)&nbsp;&nbsp;&nbsp;// 방 정보 다이얼로그 확인 클릭<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;jinfo.dispose();&nbsp;&nbsp;&nbsp;&nbsp;// 다이얼로그 창을 닫는다.<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;// 메인 화면에 있는 버튼을 처리<br>&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;jb_MainScreen.length;i++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;if (evt.getSource() == jb_MainScreen[i]) event_MainScreen(i);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;// 방선택 이벤트 처리&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;jb_RoomSelect.length;i++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;if (evt.getSource() == jb_RoomSelect[i]) event_RoomSelect(i);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;}</p><p>&nbsp;// 메인화면의 버튼 처리<br>&nbsp;public void event_MainScreen(int idx)<br>&nbsp;{<br>&nbsp;&nbsp;switch(idx)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;case 0:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 입실<br>&nbsp;&nbsp;&nbsp;&nbsp;room_select_page = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;setEnterRoom();<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 퇴실<br>&nbsp;&nbsp;&nbsp;&nbsp;room_select_page = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;setOutofRoom();<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 도우미<br>&nbsp;&nbsp;&nbsp;&nbsp;room_select_page = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;setHelper();<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 3:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 음료수<br>&nbsp;&nbsp;&nbsp;&nbsp;room_select_page = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;setBeverage();<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 4:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 방정보<br>&nbsp;&nbsp;&nbsp;&nbsp;room_select_page = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;setRoomInfo();<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 5:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 총 매출 확인<br>&nbsp;&nbsp;&nbsp;&nbsp;setInfoDialog();<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 6:<br>&nbsp;&nbsp;&nbsp;&nbsp;jta_MainScreen.setText(" 사용하실 메뉴를 선택해 주세요.\n\n");<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 7:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 신곡 정보<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 8:<br>&nbsp;&nbsp;&nbsp;&nbsp;System.exit(0);<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;}<br>&nbsp;}</p><p>&nbsp;// 방 선택시 이벤트 처리<br>&nbsp;public void event_RoomSelect(int idx)<br>&nbsp;{<br>&nbsp;&nbsp;switch(idx)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;case 20:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 이전 페이지<br>&nbsp;&nbsp;&nbsp;&nbsp;room_select_page = Math.max(0, room_select_page-1);<br>&nbsp;&nbsp;&nbsp;&nbsp;updateSelectRoom();<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 21:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 다음 페이지<br>&nbsp;&nbsp;&nbsp;&nbsp;room_select_page = Math.min((total_room_number-1)/20, room_select_page+1);<br>&nbsp;&nbsp;&nbsp;&nbsp;updateSelectRoom();<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case 22:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 메인 화면<br>&nbsp;&nbsp;&nbsp;&nbsp;setMainScreen();<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;default:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 각 방을 선택한 경우<br>&nbsp;&nbsp;&nbsp;&nbsp;selected_room_idx = room_select_page * 20 + idx;&nbsp;// 해당 방의 실제 인덱스를 구한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;switch(current_state)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case STATE_ENTER_ROOM:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setInputDialog("몇 시간을 사용하실 건가요?", true, DG_INPUT_ENTER_ROOM);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case STATE_OUT_OF_ROOM:&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ri[selected_room_idx].outofRoom();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;updateSelectRoom();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setPopupLog((selected_room_idx+1)+" 번 방의 사용이 종료되었습니다.");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case STATE_HELPER:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setInputDialog("몇명의 도우미를 추가하실 건가요?", true, DG_INPUT_HELPER);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case STATE_BEVERAGE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setInputDialog("몇개의 음료를추가하실 건가요?", true, DG_INPUT_BEVERAGE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case STATE_ROOM_INFO:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setInfoDialog(selected_room_idx);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;}<br>&nbsp;}</p><p>&nbsp;// 팝업 다이얼로그 창 초기화<br>&nbsp;public void initPopup()<br>&nbsp;{<br>&nbsp;&nbsp;jpopup.setSize(300,135);&nbsp; //크기<br>&nbsp;&nbsp;//jpopup.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);</p><p>&nbsp;&nbsp;Dimension screen = this.getSize();&nbsp;&nbsp;&nbsp;&nbsp;//화면크기<br>&nbsp;&nbsp;Dimension frame = jpopup.getSize();&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;//다이얼로그 크기<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;jpopup.setLocation( (int)(screen.getWidth()-frame.getWidth())/2 , (int)(screen.getHeight()-frame.getHeight())/2 );<br>&nbsp;&nbsp;jpopup.setLayout(new BorderLayout());</p><p>&nbsp;&nbsp;jpopup.add(jpopup_label);<br>&nbsp;&nbsp;jpopup_panel.add("Center", jpopup_button);<br>&nbsp;&nbsp;jpopup.add("South", jpopup_panel);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;jpopup_label.setHorizontalAlignment(JLabel.CENTER);<br>&nbsp;&nbsp;jpopup_button.addActionListener(this);<br>&nbsp;}</p><p>&nbsp;// 메인 화면에 text 를 추가하고 팝업을 띄운다.<br>&nbsp;public void setPopupLog(String s)<br>&nbsp;{<br>&nbsp;&nbsp;jta_MainScreen.append(s+"\n");<br>&nbsp;&nbsp;setPopup(s);<br>&nbsp;}</p><p>&nbsp;// 팝업 창에 메시지를 설정하고 화면에 띄운다.<br>&nbsp;public void setPopup(String s)<br>&nbsp;{<br>&nbsp;&nbsp;jpopup_label.setText(s);<br>&nbsp;&nbsp;jpopup.setVisible(true);&nbsp;&nbsp;<br>&nbsp;}&nbsp;</p><p>&nbsp;// 숫자 입력 다이얼로그를 초기화 한다.<br>&nbsp;public void initInputDialog()<br>&nbsp;{<br>&nbsp;&nbsp;jinput.setSize(300, 135);<br>&nbsp;&nbsp;jinput.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;// 다이얼로그를 화면 중간에 배치하기 위한 코드<br>&nbsp;&nbsp;Dimension screen = this.getSize();&nbsp;&nbsp;&nbsp;&nbsp;// 화면크기를 얻어옴<br>&nbsp;&nbsp;Dimension frame = jinput.getSize();&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;// 다이얼로그 크기를 얻어옴</p><p>&nbsp;&nbsp;int pos_x = (int) (screen.getWidth() / 2 - frame.getWidth() / 2);<br>&nbsp;&nbsp;int pos_y = (int) (screen.getHeight() / 2 - frame.getHeight() / 2);<br>&nbsp;&nbsp;jinput.setLocation(pos_x, pos_y);&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 다이얼로그 위치 지정</p><p>&nbsp;&nbsp;// 다이얼로그에 필요한 내용을 추가하는 코드<br>&nbsp;&nbsp;jinput.setLayout(null);</p><p>&nbsp;&nbsp;jinput_label.setHorizontalAlignment(JLabel.CENTER);<br>&nbsp;&nbsp;jinput_label.setBounds(0, 10, 300, 20);<br>&nbsp;&nbsp;jinput_textfield.setBounds(20, 40, 255, 20);<br>&nbsp;&nbsp;jinput_button2.setBounds(115+40, 75, 62, 28);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;jinput_button1.addActionListener(this);<br>&nbsp;&nbsp;jinput_button2.addActionListener(this);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;jinput.add(jinput_label);<br>&nbsp;&nbsp;jinput.add(jinput_textfield);<br>&nbsp;&nbsp;jinput.add(jinput_button1);<br>&nbsp;&nbsp;jinput.add(jinput_button2);<br>&nbsp;}</p><p>&nbsp;// 숫자 입력 다이얼로그를 띄운다.<br>&nbsp;public void setInputDialog(String tf, boolean clr, int dg_idx)<br>&nbsp;{<br>&nbsp;&nbsp;dialog_state = dg_idx;<br>&nbsp;&nbsp;jinput_label.setText(tf);<br>&nbsp;&nbsp;jinput_textfield.setText(null);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;if (clr)<br>&nbsp;&nbsp;&nbsp;jinput_button1.setBounds(115-40, 75, 62, 28);<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;jinput_button1.setBounds(115, 75, 62, 28);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;jinput_button2.setVisible(clr);<br>&nbsp;&nbsp;jinput.setVisible(true);<br>&nbsp;}</p><p>&nbsp;// 정보 창 초기화<br>&nbsp;public void initInfoDialog()<br>&nbsp;{<br>&nbsp;&nbsp;jinfo.setSize(300, 235);<br>&nbsp;&nbsp;jinfo.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;// 다이얼로그를 화면 중간에 배치하기 위한 코드<br>&nbsp;&nbsp;Dimension screen = this.getSize();&nbsp;&nbsp;&nbsp;&nbsp;// 화면크기를 얻어옴<br>&nbsp;&nbsp;Dimension frame = jinfo.getSize();&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;// 다이얼로그 크기를 얻어옴</p><p>&nbsp;&nbsp;int pos_x = (int) (screen.getWidth() / 2 - frame.getWidth() / 2);<br>&nbsp;&nbsp;int pos_y = (int) (screen.getHeight() / 2 - frame.getHeight() / 2);<br>&nbsp;&nbsp;jinfo.setLocation(pos_x, pos_y);&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 다이얼로그 위치 지정</p><p>&nbsp;&nbsp;// 다이얼로그에 필요한 내용을 추가하는 코드<br>&nbsp;&nbsp;jinfo.setLayout(null);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;jinfo_jta.setBounds(10, 10, 272, 160);<br>&nbsp;&nbsp;//jinfo_jta.setEnabled(false);<br>&nbsp;&nbsp;jinfo.add(jinfo_jta);</p><p>&nbsp;&nbsp;jinfo_button.setBounds(115, 175, 62, 28);<br>&nbsp;&nbsp;jinfo_button.addActionListener(this);<br>&nbsp;&nbsp;jinfo.add(jinfo_button);<br>&nbsp;}<br>&nbsp;<br>&nbsp;// 방 정보 창을 띄운다.<br>&nbsp;public void setInfoDialog(int rn)<br>&nbsp;{<br>&nbsp;&nbsp;int sub[] = new int[3];</p><p>&nbsp;&nbsp;for(int i=0;i&lt;3;i++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;sub[i] = ri[rn].sd.sdata[i][0] * ri[rn].sd.sdata[i][1];<br>&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;jinfo_jta.setText("방사용료\n");<br>&nbsp;&nbsp;jinfo_jta.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "+ri[rn].sd.sdata[0][0] + " x " + ri[rn].sd.sdata[0][1] + " = \t" + sub[0] + "\n");<br>&nbsp;&nbsp;jinfo_jta.append("도우미\n");<br>&nbsp;&nbsp;jinfo_jta.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "+ri[rn].sd.sdata[1][0] + " x " + ri[rn].sd.sdata[1][1] + " = \t" + sub[1] + "\n");<br>&nbsp;&nbsp;jinfo_jta.append("음료\n");<br>&nbsp;&nbsp;jinfo_jta.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "+ri[rn].sd.sdata[2][0] + " x " + ri[rn].sd.sdata[2][1] + " = \t" + sub[2] + "\n");<br>&nbsp;&nbsp;jinfo_jta.append("\n합계\n");<br>&nbsp;&nbsp;jinfo_jta.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \t\t"+(sub[0]+sub[1]+sub[2]));<br>&nbsp;&nbsp;jinfo.setVisible(true);<br>&nbsp;}</p><p>&nbsp;// 총 매출 정보 창을 띄운다.<br>&nbsp;public void setInfoDialog()<br>&nbsp;{<br>&nbsp;&nbsp;int sub[] = new int[3];<br>&nbsp;&nbsp;for (Enumeration e = ht.elements() ; e.hasMoreElements() ;) {<br>&nbsp;&nbsp;&nbsp;SalesData sd = (SalesData)e.nextElement();</p><p>&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;3;i++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;sub[i] += sd.sdata[i][0] * sd.sdata[i][1];<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;jinfo_jta.setText("방사용료\n");<br>&nbsp;&nbsp;jinfo_jta.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \t\t" + sub[0] + "\n");<br>&nbsp;&nbsp;jinfo_jta.append("도우미\n");<br>&nbsp;&nbsp;jinfo_jta.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \t\t" + sub[1] + "\n");<br>&nbsp;&nbsp;jinfo_jta.append("음료\n");<br>&nbsp;&nbsp;jinfo_jta.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \t\t" + sub[2] + "\n");<br>&nbsp;&nbsp;jinfo_jta.append("\n합계\n");<br>&nbsp;&nbsp;jinfo_jta.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \t\t"+(sub[0]+sub[1]+sub[2]));<br>&nbsp;&nbsp;jinfo.setVisible(true);<br>&nbsp;}</p><p>&nbsp;// 방 선택 부분 UI 초기화<br>&nbsp;public void initSelectRoom()<br>&nbsp;{<br>&nbsp;&nbsp;if (RoomSelect == null) <br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;RoomSelect = new JPanel();</p><p>&nbsp;&nbsp;&nbsp;RoomSelect.setLayout(null);<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;jl_RoomSelect.setBounds(10, 10, SCREEN_WIDTH, 30);<br>&nbsp;&nbsp;&nbsp;RoomSelect.add(jl_RoomSelect);<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;jb_RoomSelect[20] = new JButton("이전 페이지");<br>&nbsp;&nbsp;&nbsp;jb_RoomSelect[20].setBounds(SCREEN_WIDTH-300, SCREEN_HEIGHT-60, 128, 28);<br>&nbsp;&nbsp;&nbsp;jb_RoomSelect[20].addActionListener(this);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;jb_RoomSelect[21] = new JButton("다음 페이지");<br>&nbsp;&nbsp;&nbsp;jb_RoomSelect[21].setBounds(SCREEN_WIDTH-150, SCREEN_HEIGHT-60, 128, 28);<br>&nbsp;&nbsp;&nbsp;jb_RoomSelect[21].addActionListener(this);</p><p>&nbsp;&nbsp;&nbsp;jb_RoomSelect[22] = new JButton("메인 메뉴");<br>&nbsp;&nbsp;&nbsp;jb_RoomSelect[22].setBounds(SCREEN_WIDTH-150, 10, 128, 28);<br>&nbsp;&nbsp;&nbsp;jb_RoomSelect[22].addActionListener(this);</p><p>&nbsp;&nbsp;&nbsp;RoomSelect.add(jb_RoomSelect[20]);<br>&nbsp;&nbsp;&nbsp;RoomSelect.add(jb_RoomSelect[21]);<br>&nbsp;&nbsp;&nbsp;RoomSelect.add(jb_RoomSelect[22]);</p><p>&nbsp;&nbsp;&nbsp;int wspan = (SCREEN_WIDTH-27)/5 -1;<br>&nbsp;&nbsp;&nbsp;int hspan = (SCREEN_HEIGHT-115)/4 -1;</p><p>&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;20;i++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;jb_RoomSelect[i] = new JButton("");<br>&nbsp;&nbsp;&nbsp;&nbsp;jb_RoomSelect[i].setBounds(10 + (wspan+1)*(i%5), 45 + (hspan+1)*(i/5), wspan, hspan);<br>&nbsp;&nbsp;&nbsp;&nbsp;jb_RoomSelect[i].addActionListener(this);<br>&nbsp;&nbsp;&nbsp;&nbsp;RoomSelect.add(jb_RoomSelect[i]);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;}</p><p>&nbsp;// 방 선택 세팅 : 빈방이 선택될때도 있고, 사람이 있는 방이 선택될 수도 있기 때문에 rs_room_available을 플래그로 넣는다.<br>&nbsp;public void setSelectRoom(String title, boolean room_status)<br>&nbsp;{<br>&nbsp;&nbsp;jl_RoomSelect.setText(title);<br>&nbsp;&nbsp;rs_room_available = room_status;<br>&nbsp;&nbsp;updateSelectRoom();<br>&nbsp;}<br>&nbsp;<br>&nbsp;// 방 선택 부분 화면 업데이트 처리<br>&nbsp;public void updateSelectRoom()<br>&nbsp;{&nbsp;<br>&nbsp;&nbsp;jb_RoomSelect[20].setEnabled(room_select_page &gt; 0);<br>&nbsp;&nbsp;jb_RoomSelect[21].setEnabled(room_select_page &lt; (total_room_number - 1)/20);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;for(int i=0;i&lt;20;i++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;jb_RoomSelect[i].setText( (room_select_page * 20 + 1 + i) + "번 방" );<br>&nbsp;&nbsp;&nbsp;if (room_select_page * 20 + i &lt; total_room_number)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;jb_RoomSelect[i].setVisible(true);<br>&nbsp;&nbsp;&nbsp;&nbsp;jb_RoomSelect[i].setEnabled( rs_room_available^ri[room_select_page * 20 + i].room_available );<br>&nbsp;&nbsp;&nbsp;} else jb_RoomSelect[i].setVisible(false);<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>&nbsp;// 기존 패널을 프레임에서 제거해 주는 매써드<br>&nbsp;public void removePreviousScreen()<br>&nbsp;{<br>&nbsp;&nbsp;switch(current_state)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;case STATE_MAIN_SCREEN:&nbsp;&nbsp;remove(MainScreen);&nbsp;break;<br>&nbsp;&nbsp;&nbsp;case STATE_ENTER_ROOM:<br>&nbsp;&nbsp;&nbsp;case STATE_OUT_OF_ROOM:<br>&nbsp;&nbsp;&nbsp;case STATE_HELPER:<br>&nbsp;&nbsp;&nbsp;case STATE_BEVERAGE:<br>&nbsp;&nbsp;&nbsp;case STATE_ROOM_INFO:&nbsp;&nbsp;remove(RoomSelect);&nbsp;break;<br>&nbsp;&nbsp;}<br>&nbsp;}</p><p>&nbsp;</p><p><br>&nbsp;// 메인 화면 꾸며주는 메써드<br>&nbsp;public void setMainScreen()<br>&nbsp;{<br>&nbsp;&nbsp;if (current_state &gt; 0) removePreviousScreen();<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;if (MainScreen == null)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;MainScreen = new JPanel();<br>&nbsp;&nbsp;&nbsp;MainScreen.setLayout(null);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;int num_button = bn_MainScreen.length;<br>&nbsp;&nbsp;&nbsp;int span = (SCREEN_HEIGHT - 45 - 2 * num_button) / num_button + 2;<br>&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;num_button;i++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;jb_MainScreen[i] = new JButton(bn_MainScreen[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;jb_MainScreen[i].setBounds(10, 10+span*i, SCREEN_WIDTH/4-11, span-2);<br>&nbsp;&nbsp;&nbsp;&nbsp;jb_MainScreen[i].addActionListener(this);<br>&nbsp;&nbsp;&nbsp;&nbsp;MainScreen.add(jb_MainScreen[i]);<br>&nbsp;&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;&nbsp;jta_MainScreen.setBorder(new LineBorder(Color.GRAY));<br>&nbsp;&nbsp;&nbsp;jta_MainScreen.setBounds(10+SCREEN_WIDTH/4, 10, SCREEN_WIDTH*3/4-26, span*num_button-2);<br>&nbsp;&nbsp;&nbsp;//jta_MainScreen.setEnabled(false);<br>&nbsp;&nbsp;&nbsp;MainScreen.add(jta_MainScreen);</p><p>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;add(MainScreen);<br>&nbsp;&nbsp;setVisible(true);<br>&nbsp;&nbsp;repaint();</p><p>&nbsp;&nbsp;current_state = STATE_MAIN_SCREEN;<br>&nbsp;}</p><p><br>&nbsp;// 입실<br>&nbsp;public void setEnterRoom()<br>&nbsp;{<br>&nbsp;&nbsp;if (current_state &gt; 0) removePreviousScreen();<br>&nbsp;&nbsp;setSelectRoom("입실할 방을 선택해 주세요", false);&nbsp;// 사용가능한 방을 체크<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;add(RoomSelect);<br>&nbsp;&nbsp;setVisible(true);<br>&nbsp;&nbsp;repaint();<br>&nbsp;&nbsp;current_state = STATE_ENTER_ROOM;<br>&nbsp;}</p><p>&nbsp;// 퇴실<br>&nbsp;public void setOutofRoom()<br>&nbsp;{<br>&nbsp;&nbsp;if (current_state &gt; 0) removePreviousScreen();<br>&nbsp;&nbsp;setSelectRoom("퇴실할 방을 선택해 주세요", true);&nbsp;// 사용 중인 방을 체크<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;add(RoomSelect);<br>&nbsp;&nbsp;setVisible(true);<br>&nbsp;&nbsp;repaint();<br>&nbsp;&nbsp;current_state = STATE_OUT_OF_ROOM;<br>&nbsp;}</p><p>&nbsp;// 도우미 추가<br>&nbsp;public void setHelper()<br>&nbsp;{<br>&nbsp;&nbsp;if (current_state &gt; 0) removePreviousScreen();<br>&nbsp;&nbsp;setSelectRoom("도우미를 추가할 방을 선택해 주세요.", true);&nbsp;// 사용 중인 방을 체크<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;add(RoomSelect);<br>&nbsp;&nbsp;setVisible(true);<br>&nbsp;&nbsp;repaint();<br>&nbsp;&nbsp;current_state = STATE_HELPER;<br>&nbsp;}</p><p>&nbsp;// 음료수 추가<br>&nbsp;public void setBeverage()<br>&nbsp;{<br>&nbsp;&nbsp;if (current_state &gt; 0) removePreviousScreen();<br>&nbsp;&nbsp;setSelectRoom("음료수를 주문한 방을 선택해 주세요.", true);&nbsp;// 사용 중인 방을 체크<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;add(RoomSelect);<br>&nbsp;&nbsp;setVisible(true);<br>&nbsp;&nbsp;repaint();<br>&nbsp;&nbsp;current_state = STATE_BEVERAGE;<br>&nbsp;}</p><p>&nbsp;// 방 정보 보기<br>&nbsp;public void setRoomInfo()<br>&nbsp;{<br>&nbsp;&nbsp;if (current_state &gt; 0) removePreviousScreen();<br>&nbsp;&nbsp;setSelectRoom("정보를 확인할 방을 선택해 주세요.", true);&nbsp;// 사용 중인 방을 체크<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;add(RoomSelect);<br>&nbsp;&nbsp;setVisible(true);<br>&nbsp;&nbsp;repaint();<br>&nbsp;&nbsp;current_state = STATE_ROOM_INFO;<br>&nbsp;}<br>&nbsp;<br>&nbsp;<br>&nbsp;// hex 데이터를 long 데이터로 바꿔주는 매써드<br>&nbsp;public long getLong(String h)<br>&nbsp;{<br>&nbsp;&nbsp;String t = h.toLowerCase();<br>&nbsp;&nbsp;long rv = 0l;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;for(int i=0;i&lt;t.length();i++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;if (t.charAt(i) &lt;= '9')<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;rv = (rv &lt;&lt; 4) | (t.charAt(i)-'0');<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;rv = (rv &lt;&lt; 4) | (t.charAt(i)-'a'+10);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;return rv;<br>&nbsp;}<br>&nbsp;<br>&nbsp;// HashTable 에 저장된 데이터를 업데이트 하고 파일에 기록한다.<br>&nbsp;public void updateData(int rn)<br>&nbsp;{<br>&nbsp;&nbsp;// HashTable 에서 같은 키 값이 존재하는지 체크해서 있으면 삭제<br>&nbsp;&nbsp;if (ht.containsKey(ri[rn].sd.start_time))<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;ht.remove(ri[rn].sd.start_time);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;// HashTable에 등록한다.<br>&nbsp;&nbsp;ht.put(ri[rn].sd.start_time, ri[rn].sd);<br>&nbsp;&nbsp;saveData();<br>&nbsp;}<br>&nbsp;<br>&nbsp;// 파일에 저장하는 매써드<br>&nbsp;public void saveData()<br>&nbsp;{<br>&nbsp;&nbsp;try {<br>&nbsp;&nbsp;&nbsp;PrintWriter pw = new PrintWriter(SAVE_FILE);</p><p>&nbsp;&nbsp;&nbsp;pw.println(SAVE_DATA_HEADER+" : "+ht.size());&nbsp;&nbsp;&nbsp;// 파일에 데이터 개수를 저장<br>&nbsp;&nbsp;&nbsp;pw.println("-------------------------------");&nbsp;&nbsp;&nbsp;// </p><p>&nbsp;&nbsp;&nbsp;int g_total = 0;<br>&nbsp;&nbsp;&nbsp;for (Enumeration e = ht.elements() ; e.hasMoreElements() ;) {&nbsp;// HashTable의 객체들을 읽어옴<br>&nbsp;&nbsp;&nbsp;&nbsp;SalesData sd = (SalesData)e.nextElement();<br>&nbsp;&nbsp;&nbsp;&nbsp;int sub[] = new int[3];<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;int sub_total = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;3;i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub[i] = sd.sdata[i][0] * sd.sdata[i][1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub_total += sub[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;g_total += sub_total;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;pw.println(SAVE_RECORD_HEADER+" : "+Long.toHexString(sd.start_time));&nbsp;&nbsp;// HashTable에 저장된 키값</p><p>&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");<br>&nbsp;&nbsp;&nbsp;&nbsp;Date nnn = new Date(sd.start_time);<br>&nbsp;&nbsp;&nbsp;&nbsp;pw.println("Time : " + formatter.format(nnn));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 날짜를 기록한다.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;pw.println("방사용료");<br>&nbsp;&nbsp;&nbsp;&nbsp;pw.println("\t"+sd.sdata[0][0]+" x "+sd.sdata[0][1] + " =\t" + sub[0]);<br>&nbsp;&nbsp;&nbsp;&nbsp;pw.println("도우미");<br>&nbsp;&nbsp;&nbsp;&nbsp;pw.println("\t"+sd.sdata[1][0]+" x "+sd.sdata[1][1] + " =\t" + sub[1]);<br>&nbsp;&nbsp;&nbsp;&nbsp;pw.println("음료수");<br>&nbsp;&nbsp;&nbsp;&nbsp;pw.println("\t"+sd.sdata[2][0]+" x "+sd.sdata[2][1] + " =\t" + sub[2]);<br>&nbsp;&nbsp;&nbsp;&nbsp;pw.println("합계\t\t\t" + sub_total);<br>&nbsp;&nbsp;&nbsp;&nbsp;pw.println("-------------------------------");<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;pw.println("총합계\t\t\t" + g_total);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;pw.flush();<br>&nbsp;&nbsp;&nbsp;pw.close();<br>&nbsp;&nbsp;} catch (Exception err) {}<br>&nbsp;}<br>&nbsp;<br>&nbsp;// 저장된 파일을 읽어온다.<br>&nbsp;// 처음에 헤더를 읽어서 데이터 개수를 읽고,<br>&nbsp;// 나머지는 해당 데이터들을 파싱해서 처리한다.<br>&nbsp;public void loadData()<br>&nbsp;{<br>&nbsp;&nbsp;try {<br>&nbsp;&nbsp;&nbsp;FileReader fr = new FileReader(SAVE_FILE);<br>&nbsp;&nbsp;&nbsp;BufferedReader br = new BufferedReader(fr);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;int data_num = 0;<br>&nbsp;&nbsp;&nbsp;int counter = 0;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;while(true)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;String line = br.readLine();<br>&nbsp;&nbsp;&nbsp;&nbsp;if (line == null) break;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;if (data_num == 0) <br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (line.indexOf(SAVE_DATA_HEADER) &gt; -1) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_num = Integer.parseInt(line.substring(line.indexOf(":")+1).trim());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 새로운 레코드의 시작<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (line.indexOf(SAVE_RECORD_HEADER) &gt; -1) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SalesData sd = new SalesData();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 키 값을 읽어온다.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sd.start_time = getLong(line.substring(line.indexOf(":")+1).trim());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line = br.readLine();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 수량 과 단가를 읽어온다.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;3;i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line = br.readLine();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line = br.readLine().trim();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sd.sdata[i][0] = Integer.parseInt(line.substring(0, line.indexOf("x")).trim());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sd.sdata[i][1] = Integer.parseInt(line.substring(line.indexOf("x")+1, line.indexOf("=")).trim());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// HashTable에 저장한다.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ht.put(sd.start_time, sd);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter ++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (counter == data_num) break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;br.close();<br>&nbsp;&nbsp;&nbsp;fr.close();<br>&nbsp;&nbsp;} catch (Exception e) {}<br>&nbsp;}<br>}</p><p>// 세이브 데이터로 사용될 데이터 객체<br>class SalesData<br>{<br>&nbsp;long start_time;&nbsp;&nbsp;&nbsp;// 방 사용 시작 시간<br>&nbsp;int sdata[][] = new int[3][2];&nbsp;&nbsp;// 사용시간, 요금, 도우미, 요금, 음료수, 요금<br>}</p><p>// 방 정보에 해당하는 객체 <br>class RoomInfo<br>{<br>&nbsp;boolean room_available = true;&nbsp;&nbsp;// 방이 비었는지 여부<br>&nbsp;SalesData sd = new SalesData();</p><p>&nbsp;// 방 객체를 생성할 때, 가격 정보를 기록한다.<br>&nbsp;public RoomInfo(int c1, int c2, int c3)<br>&nbsp;{<br>&nbsp;&nbsp;sd.sdata[0][1] = c1;<br>&nbsp;&nbsp;sd.sdata[1][1] = c2;<br>&nbsp;&nbsp;sd.sdata[2][1] = c3;<br>&nbsp;}</p><p>&nbsp;// 입실을 처리한다.<br>&nbsp;// 입실시 시간을 기록하는데, 이 시간은 HashTable의 키로 사용된다.<br>&nbsp;public void enterRoom(int t)<br>&nbsp;{<br>&nbsp;&nbsp;room_available = false;<br>&nbsp;&nbsp;sd.start_time = System.currentTimeMillis();<br>&nbsp;&nbsp;sd.sdata[0][0] = t;<br>&nbsp;}<br>&nbsp;<br>&nbsp;// 퇴실 처리<br>&nbsp;public void outofRoom()<br>&nbsp;{<br>&nbsp;&nbsp;room_available = true;<br>&nbsp;&nbsp;for (int i=0;i&lt;sd.sdata.length;i++) sd.sdata[i][0] = 0;&nbsp;&nbsp;<br>&nbsp;}<br>&nbsp;<br>&nbsp;// 도우미 추가<br>&nbsp;public void addHelper(int num)<br>&nbsp;{<br>&nbsp;&nbsp;sd.sdata[1][0] += num;<br>&nbsp;}<br>&nbsp;<br>&nbsp;// 음료 추가<br>&nbsp;public void addBeverage(int num)<br>&nbsp;{<br>&nbsp;&nbsp;sd.sdata[2][0] += num;<br>&nbsp;}<br>}</p><p><br>이렇게 프로젝트가 완성 되었네여 ㅎㅎ<br>제가 모자른 부분이 많아서 같은조 형한테 도움을 많이 받았습니다.<br>그래도 뿌듯하네여 ㅎㅎ<br>그럼 과제 발표 때 뵙겠씁니다.</p>			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/1206415#comments</comments>
		<pubDate>Mon, 01 Dec 2008 12:27:04 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 자바 11주차 두번째 일기 ]]> </title>
		<link>http://kim6351.egloos.com/1123540</link>
		<guid>http://kim6351.egloos.com/1123540</guid>
		<description>
			<![CDATA[ 
  <p>네트워크 프로그램입니다. 제가 이시간에 면접을 보고 와서 동영상을 보고 공부하는데도 어렵네여 ㅠ<br><br>InetAddress클래스 <br>인터넷에서 사용하는 32비트 주소체계인 IP주소를 액세스하기 위한 추상 클래스</p><p>이것을 이용하면 Ipv6용 프로그램으로 포팅 할 때 투명성을 유지할 수 있다.<br></p><p><br><br>서버<br>import java.net.*;&nbsp; &lt;- Socket을 사용함으로<br>import java.io.*;&nbsp; &lt;-Input ,OutStream을 사용함으로</p><p>class JavaServer{</p><p>private int port;&nbsp; <br>private ServerSocket servSocket;<br>private Socket clntSocket;</p><p>public JavaServer(int port){&nbsp; &lt;-&nbsp;메인에서 인수를 받아서 결정<br>&nbsp;this.port = port;<br>}<br>public void listen(){&nbsp; &lt;- 연결을 기다리는 메소드<br>&nbsp;try{<br>&nbsp;&nbsp;servSocket = new ServerSocket (port);<br>&nbsp;&nbsp;clntSocket = servSocket.accept();&nbsp; <br>&nbsp;}catch (IOException e){<br>&nbsp;&nbsp;System.out.println ("IOExceptiob : " + e.getMessage());<br>&nbsp;}<br>}</p><p>public void handleConnection(){&nbsp; &lt;- 데이터를 주고 받는 메소드<br>&nbsp;try{<br>&nbsp;&nbsp;BufferedReader in = new BufferedReader(new InputStreamReader(clntSocket.getInputStream()));<br>&nbsp;&nbsp;PrintWriter out = new PrintWriter (clntSocket.getOutputStream(),true);<br>&nbsp;&nbsp;System.out.println ("Java Server가"+clntSocket.getInetAddress().getHostName()+"와 연결되었습니다.");<br>&nbsp;&nbsp;System.out.println ("첫 입력라인은"+in.readLine()+"입니다.");&nbsp; //in.readLine()을&nbsp;출력<br>&nbsp;&nbsp;out.println ("Java Server에 잘 연결되었습니다.");<br>&nbsp;&nbsp;&nbsp;clntSocket.close();&nbsp;&nbsp;//Socket을 종료<br>&nbsp;}catch(IOException e){<br>&nbsp;&nbsp;System.out.println ("IOException:"+e.getMessage());<br>&nbsp;}<br>}<br>&nbsp;public static void main (String []args){<br>&nbsp;&nbsp;int port = 8088; //디폴트값<br>&nbsp;&nbsp;if (args.length&gt;0){&nbsp; //인수르 받은 숫자가 있으면<br>&nbsp;&nbsp;&nbsp;port = Integer.parseInt(args[0]); //&nbsp;그 값을 숫자로 바꿔서 포트에 넣는다 인수는 스트링이다!!<br>&nbsp;&nbsp;}<br>&nbsp;<br>&nbsp;&nbsp;JavaServer jServer = new JavaServer(port);<br>&nbsp;&nbsp;jServer.listen();<br>&nbsp;&nbsp;jServer.handleConnection();<br>&nbsp;}<br>}</p><p><br><br><br><br>클라이언트&nbsp; <br>import java.net.*;&nbsp; //위와 동일<br>import java.io.*;</p><p><br>class JavaClient{<br>private Socket cSocket;</p><p>public JavaClient(String addr, int port){<br>&nbsp;try{<br>&nbsp;&nbsp;cSocket = new Socket (addr, port);&nbsp; //서버의 주소와 포트를 가지고 객체를 만듬<br>&nbsp;}catch (IOException e){<br>&nbsp;System.out.println ("IOException :"+e.getMessage());<br>&nbsp;}<br>&nbsp;}</p><p>public void handleConnection(){<br>&nbsp;try{<br>&nbsp;&nbsp;BufferedReader in = new BufferedReader(new InputStreamReader(cSocket.getInputStream()));<br>&nbsp;&nbsp;PrintWriter out = new PrintWriter (cSocket.getOutputStream(), true);<br>&nbsp;System.out.println ("Java Client가"+cSocket.getInetAddress().getHostName()+"와 연결되었습니다.");<br>&nbsp;out.println ("여기는 Java Client입니다.");<br>&nbsp;System.out.println ("서버로 부터의 첫입력라인은"+in.readLine()+"입니다.");<br>&nbsp;BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));<br>&nbsp;&nbsp;cSocket.close();<br>&nbsp;}catch (IOException e){<br>&nbsp;System.out.println ("IOException : "+ e.getMessage());<br>&nbsp;}<br>}<br>&nbsp;public static void main (String []args){<br>&nbsp;String addr = "203.237.163.173";&nbsp; //이 주소는 내 컴퓨터 주소를 사용한다.<br>&nbsp;int port = 8088;&nbsp; //위와 동일<br>&nbsp;if (args.length&gt;0){<br>&nbsp;addr = args[0];<br>&nbsp;port = Integer.parseInt(args[1]);<br>&nbsp;}<br>&nbsp;JavaClient jClient = new JavaClient (addr, port);<br>&nbsp;jClient.handleConnection();<br>&nbsp;}<br>}<br>네트워크 프로그램이 좀 힘드네여 ㅠㅠ<br>더 공부 해봐야 겠습니다<br>더 열심히 ^^<br><br>&nbsp;</p>			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/1123540#comments</comments>
		<pubDate>Tue, 18 Nov 2008 12:21:33 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 자바 11주차 첫번째 일기 ]]> </title>
		<link>http://kim6351.egloos.com/1123416</link>
		<guid>http://kim6351.egloos.com/1123416</guid>
		<description>
			<![CDATA[ 
  <p>제가 모르고 DB공부를 안해서 지금에서 DB공부를 합니다.<br>죄송합니다 교수님 ㅋㅋㅋ<br>제가 깜빡했네여<br><br>DB 데이터의 양이 방대해 지면서 관리에 어려움이 생겨서<br>데이터를 효과적으로 관리하기 위해서 사용 </p><p><br>설치 방법<br><a href="http://www.mysql.com/">www.mysql.com</a>에서 다운로드 클릭</p><p>mysql-nt.exe<br>mysql서버 프로그램</p><p>mysqladmin.exe<br>명령 프롬프트상에서 서버의 시작 및 종료, 데이터베이스의 생성및 삭제등을 하는 관리자<br>프로그램</p><p>mysql.exe <br>sql을 불러오는것을 사용</p><p>서버 종료<br>mysqladmin -u root -p shutdown 서버의 종료</p><p>서버의 재시작<br>mysqladmin -u root -p reload</p><p>새로운 데이터베이스 생성<br>mysqladmin -u root create dbname</p><p>기존의 데이터베이스 삭제<br>mysqladmin -u root drop dbname<br><br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds10.egloos.com/pds/200811/18/51/f0018051_4922af4ac78b5.jpg" width="500" height="324.963072378" onclick="Control.Modal.openDialog(this, event, 'http://pds10.egloos.com/pds/200811/18/51/f0018051_4922af4ac78b5.jpg');" /></div></p><p>데이터베이스 계층적 구조<br>데이터베이스 &lt;- 테이블 &lt;- 레코드 &lt;- 자료형</p><p>CHAR(M) - 고정길이 문자열 ex)string_var1 char(10); 변수명을 먼저 쓰고 그 다음 자료형을 씀<br>VARCHAR(M) -&nbsp; 가변길이 문자열 ex)string_var2 VARCHAR(10); //차이점 5개를 저장할때<br>CHAR은 5를 억지로 채우고 VARCHAR은 억지로 채우지 않음 속도면에서 차이가 나서<br>CHAR은 빠르고 VARCHAR은 느림 메모리에 따라 사용<br>INT = 정수형 (4바이트)<br>INT unsigned - 부호없는 정수형<br>FLOAT[(M,D)] = 소수 M =전체숫자개수 D=소수점아래 최대 숫자개수<br>ex)float_var FLOAT (4,2); (42.35은 유효, 324.45 324.5가 됨)</p><p>대소문자를 가리지 않음</p><p>명령어를 실행할려면 세미콜론 (;)을 써야 한다.</p><p>-&gt; 중간에 길어질때 이 표시로 계속 쳐서 한다. <br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds13.egloos.com/pds/200811/18/51/f0018051_4922af592fc71.jpg" width="500" height="324.963072378" onclick="Control.Modal.openDialog(this, event, 'http://pds13.egloos.com/pds/200811/18/51/f0018051_4922af592fc71.jpg');" /></div><br></p><p>SHOW DATABASE 데이터베이스 확인<br><br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds10.egloos.com/pds/200811/18/51/f0018051_4922af665fc16.jpg" width="500" height="324.963072378" onclick="Control.Modal.openDialog(this, event, 'http://pds10.egloos.com/pds/200811/18/51/f0018051_4922af665fc16.jpg');" /></div></p><p>USE dbname; 데이터를 사용할것을 알려줌</p><p>DESC tablename; 테이블 상태를 확인<br>INSERT INTO tablename VALUES (값1, 값2...) - 레코드 값 입력 (n개의 필드를 다)<br>또는<br>INSERT INTO tablename VALUES (필드명 1, 필드명 2)VALUES(값1, 값2) (필드를 정해서)</p><p><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds11.egloos.com/pds/200811/18/51/f0018051_4922af98a6be8.jpg" width="500" height="324.963072378" onclick="Control.Modal.openDialog(this, event, 'http://pds11.egloos.com/pds/200811/18/51/f0018051_4922af98a6be8.jpg');" /></div><br><br><br>아이디를 안넣어줘도 되는것은 auto_increment때문이다<br>대신 처음에는 꼭 갚을 넣어줘야 함<br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds10.egloos.com/pds/200811/18/51/f0018051_4922af9e29b7b.jpg" width="500" height="324.963072378" onclick="Control.Modal.openDialog(this, event, 'http://pds10.egloos.com/pds/200811/18/51/f0018051_4922af9e29b7b.jpg');" /></div></p>DB를 좀 공부해봤습니다. 동영상을 보고 천천히 따라해보고<br>mysql도 잘 깔았고 나름대로 괜찮네여 더 연습해봐야 겠습니다.			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/1123416#comments</comments>
		<pubDate>Mon, 17 Nov 2008 09:20:00 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 자바 10주차 첫번째 일기 ]]> </title>
		<link>http://kim6351.egloos.com/1080953</link>
		<guid>http://kim6351.egloos.com/1080953</guid>
		<description>
			<![CDATA[ 
  <p>죄송합니다 교수님 제가 취직을 한게 아니라<br>회사 교육받으러 연수 갔는대 오해시게 글을 남겼네여 ㅎㅎ<br>아직 취직 못했구여 이번주부터 열심히 수업 듣습니다!!! ^^<br>그래서 저번주에 못했던거 동영상을 보고 공부해 봤습니다.<br><br>Thread란?<br>프로그램내에 존재하는 하나의 순차적인 실행의 흐름 (지금까지는 하나의 실행흐름 밖에 없었다.)<br>이건 싱글 쓰레드이다.</p><p><br>우리가 하던 싱글 쓰레드 프로그램 을 실행시킬 때</p><p>Java CanvasExam을 실행시키면 이 클래스에서 <br>메인을 찾은다음<br>프레임을 만들고 캔버스를 만들고 (위에꺼 실행) 사이즈정하고 더해주고 끝냄<br>차례대로 실행이 된다. (하나의 흐름만 존재함)</p><p>멀티 쓰레드란???<br>동시에 두 가지 일을 진행시키는 프로그램이 필요할 때 사용하는 것.<br>ex)게임에서 두 캐릭터가 대결하는 경우같은 것을 말함</p><p>동시에 두 개 이상의 실행흐름을 갖는 것을 멀티 쓰레딩이라고 하며 이 프로그램을<br>멀티 쓰레드 프로그램이라고 한다</p><p><br>싱글쓰레드는 쓰레드가 시작해서 한줄로 싱글쓰레드가 종료된다.</p><p>메인 쓰레드가 시작한다음 쓰레드를 생성하고 자신의 업무를 시작<br>그리고 또 하나의 쓰레드를 사용하고 또 시작 이 때 3개의 작업이 동시에 시작됨.<br>프로그램은 모든 프로그램이 종료가 되어야 끝난다.</p><p>2가의 방법 (쓰레드는 만드는)<br>java.lang.Thread&nbsp; //클래스를 상속<br>java.lang.Runnable을 //인터페이스를 구현&nbsp; (2개의 클래스를 상속하는 것을 자바에서는 금지하기 <br>때문에 상속을 하면서 인터페이스를 할 때 이것을 씀)</p><p>&nbsp;</p><p>class CountThread extends Thread&nbsp; //Thread를 클래스를 상속한 카운트 쓰레드<br>{</p><p>&nbsp;public void run(){&nbsp; //쓰레드가 할일을 runmethod에서 구현<br>&nbsp;&nbsp;for (int i = 100;i&lt;110 ;i++ )&nbsp; //100부터 109까지 증가시키기 위해 for문 돌림<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;System.out.println ("지금은"+i+"입니다.");<br>&nbsp;&nbsp;}&nbsp; //여기까지 runmethod이다. 그다음 메인 클래스를 구현<br>&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;public static void main (String []args){<br>&nbsp;&nbsp;Thread thread1 = new CountThread();&nbsp; //객체 만들고<br>&nbsp;&nbsp;thread1.start(); //객체 스타트 시킴<br>&nbsp;&nbsp;//CountThread객체를 만들고 시작하기 위해서<br>&nbsp;&nbsp;for (int i = 0;i&lt;10 ;i++ )<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;System.out.println ("지금은"+i+"입니다.");<br>&nbsp;&nbsp;}<br>&nbsp;<br>}<br>}</p><p>동시에 수행되는것이 아니고 작은 시간간격으로 교대로 실행시키는 것이다.</p><p>실행 천천히 하기</p><p><br>class CountThread extends Thread&nbsp; //Thread를 클래스를 상속한 카운트 쓰레드<br>{</p><p>&nbsp;public void run(){&nbsp; //쓰레드가 할일을 runmethod에서 구현<br>&nbsp;&nbsp;for (int i = 100;i&lt;110 ;i++ )&nbsp; //100부터 109까지 증가시키기 위해 for문 돌림<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;System.out.println ("지금은"+i+"입니다.");<br>&nbsp;&nbsp;&nbsp;try&nbsp;{Thread.sleep(1000);<br>&nbsp;&nbsp;&nbsp;}catch (InterruptedException e){System.out.println (e.getMessage());}<br>&nbsp;&nbsp;}&nbsp; //여기까지 runmethod이다. 그다음 메인 클래스를 구현<br>&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;public static void main (String []args){<br>&nbsp;&nbsp;Thread thread1 = new CountThread();&nbsp; //객체 만들고<br>&nbsp;&nbsp;thread1.start(); //객체 스타트 시킴<br>&nbsp;&nbsp;//CountThread객체를 만들고 시작하기 위해서<br>&nbsp;&nbsp;</p><p>&nbsp;&nbsp;for (int i = 0;i&lt;10 ;i++ )<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;System.out.println ("지금은"+i+"입니다.");<br>&nbsp;&nbsp;&nbsp;try&nbsp;{Thread.sleep(1000);<br>&nbsp;&nbsp;&nbsp;}catch (InterruptedException e){System.out.println (e.getMessage());}</p><p>&nbsp;&nbsp;}<br>&nbsp;<br>}<br>}</p><p>느리게 천천히 올라가는게 보였습니다.</p><p>Runnable구현 방법</p><p>쓰레드가 해야할일을 runmethod에서 시작 클래스를 생성한다음 이 객체를 생성자는 인수로 하여 Thread객체 생성<br>쓰레드 객체를 start method에서 호출하여 시작</p><p>&nbsp;</p><p>class CountRunnable implements Runnable<br>{<br>&nbsp;public void run(){<br>&nbsp;&nbsp;for (int i =100;i&lt;110 ;i++ )<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;System.out.println ("지금은"+i+"입니다");<br>&nbsp;&nbsp;}<br>&nbsp;}<br>}</p><p>public class MultiCounter<br>{<br>&nbsp;public static void main (String []args){<br>&nbsp;&nbsp;CountRunnable cr = new CountRunnable();&nbsp; //Countrunnable인수를 만든다음<br>&nbsp;&nbsp;Thread thread1 = new Thread(cr); //쓰레드에 실행시키고<br>&nbsp;&nbsp;thread1.start();&nbsp; //start1실행<br>&nbsp;&nbsp;for (int i = 0;i&lt;10 ;i++ )<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;System.out.println ("지금은"+i+"입니다");<br>&nbsp;&nbsp;}<br>}<br>}</p><p><br>후~~아직 더 해야 되네여 빨리 빨리 더 공부해야겠습니다 </p>			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/1080953#comments</comments>
		<pubDate>Mon, 10 Nov 2008 12:48:10 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 자바 9주차 첫번째 일기 ]]> </title>
		<link>http://kim6351.egloos.com/1044990</link>
		<guid>http://kim6351.egloos.com/1044990</guid>
		<description>
			<![CDATA[ 
  <p>안녕하세요 교수님~~^^<br>오늘은 복습시간입니다<br>import javax.swing.*; <br>import java.awt.*; <br>public class LookAndFeelExam { <br>&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String args[]) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");&nbsp; //어떤 버튼으로 할지&nbsp;결정해 주는 것으로 3개가 있습니다.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}catch(Exception ee){} </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JFrame frm = new JFrame("Swing 예제"); //JFrame을&nbsp;만들어주고<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frm.setSize(200,200);&nbsp; //사이즈<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Container contentPane = frm.getContentPane(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JPanel pane = new JPanel(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pane.setLayout(new GridLayout(3, 2)); <br>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[] data = {"one", "two", "three", "four"}; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contentPane.add(pane, "Center"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contentPane.add(new JButton("Button 2"),"South"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frm.setVisible(true); <br>&nbsp;&nbsp;&nbsp;&nbsp;} <br>} <br><br>수업시간에 풀어본 문제 지금 풀고 있는데 잘 안되네여 ㅠㅠ<br>다른 사람꺼 보구서 맹연습중!!<br>아 그리고 교수님 제가 교수님 제가 담주에 회사 4박5일연수를 가는데<br>자바 수업에 빠질것 같습니다.<br>근데 말씀 못드려서 ㅠㅠ<br>죄송합니다. 교수님 여기서에서 말씀 드려서 일기도 하루 빼먹겠네여 ㅠㅠ<br>죄송합니다.</p>			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/1044990#comments</comments>
		<pubDate>Sun, 02 Nov 2008 14:05:24 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 자바8주차 두번째 일기 ]]> </title>
		<link>http://kim6351.egloos.com/1022104</link>
		<guid>http://kim6351.egloos.com/1022104</guid>
		<description>
			<![CDATA[ 
  <p>죄송합니다 교수님!!!<br>제가 깜빡하고 일기를 한번 못썼습니다. ㅠㅠ<br>내일 배울 내용 예습합니다 교수님!!<br><br><br>자바에서 윈도우를 만드는 방법은 AWT와 SWING이 있다.<br>AWT는 os에 따라 결과가 다르다<br>하지만 스윙은 Look&amp;Feel 보고느끼는 거에 대해서 설정을 할 수 있다.</p><p>컨테이너<br>AWT와 비슷하나<br>JFrame, JDialog, JWindow, JApplet, JInternalFrame은 직접 add()메서드를 호출해 컴포넌트를 추가할수 없다.<br><br></p><p><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds13.egloos.com/pds/200810/28/51/f0018051_49070574284cb.jpg" width="202" height="203" onclick="Control.Modal.openDialog(this, event, 'http://pds13.egloos.com/pds/200810/28/51/f0018051_49070574284cb.jpg');" /></div>import javax.swing.*;<br>import java.awt.*;</p><p>public class SwingExam<br>{<br>&nbsp;public static void main (String args[]){<br>&nbsp;&nbsp;JFrame j = new JFrame("Swing예제"); //J프레임 만들기<br>&nbsp;&nbsp;j.setSize (200,200);<br>&nbsp;&nbsp;Container contentPane = j.getContentPane();&nbsp; //컨테이너 가져오기<br>&nbsp;&nbsp;JPanel pane = new JPanel();<br>&nbsp;&nbsp;pane.setLayout(new GridLayout(3,2));&nbsp; //GridLayout으로<br>&nbsp;&nbsp;pane.add(new JTextField(10));<br>&nbsp;&nbsp;pane.add(new JPasswordField(10));<br>&nbsp;&nbsp;pane.add(new JRadioButton("Radio"));<br>&nbsp;&nbsp;pane.add(new JButton("Button"));<br>&nbsp;&nbsp;String []data = {"one", "two", "three", "four"};<br>&nbsp;&nbsp;pane.add(new JList(data));<br>&nbsp;&nbsp;pane.add(new JCheckBox("Checkbox"));<br>&nbsp;&nbsp;contentPane.add(pane,"Center");&nbsp; //결과를 contentPane에 저장<br>&nbsp;&nbsp;contentPane.add(new JButton("Button2"),"South");<br>&nbsp;&nbsp;j.setVisible(true);<br>&nbsp;}<br>}<br><br>우선 스윙에 대해서 조금 공부해 봣는데 AWT랑 많이 비슷한대 더 어려워 진듯 하네여 ㅠㅠ<br>지금 계속 공부하고 있겠습니다.<br>그럼 교수님 내일 뵙겠습니다.<br></p>			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/1022104#comments</comments>
		<pubDate>Tue, 28 Oct 2008 12:29:31 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 자바6주차 두번째 일기 ]]> </title>
		<link>http://kim6351.egloos.com/954486</link>
		<guid>http://kim6351.egloos.com/954486</guid>
		<description>
			<![CDATA[ 
  수업시간에 풀다 못푼 문제 동영상을 보고 같이 풀어 봤습니다.<br>import java.awt.*;<br>import java.awt.event.*;<br>class Ky extends Frame{<br>TextField tf;<br>public Ky(){<br>&nbsp;super ("실습문제!!");<br>&nbsp;tf = new TextField(10);<br>&nbsp;Canvas c = new Canvas ();<br>&nbsp;c.addMouseListener(new MouseAdapter(){&nbsp; //Canvas의 마우스 리스너에 마우스아답터를 설정<br>&nbsp;&nbsp;public void mouseClicked(MouseEvent e){&nbsp; //마우스를 클릭할때 이벤트를 설정하기 위해<br>&nbsp;&nbsp;&nbsp;tf.setText("x:"+e.getX()+"y:"+e.getY());&nbsp; //.get이라는 것이&nbsp;찍을 떄 그 값을 기록해 주는 것<br>&nbsp;&nbsp;}<br>&nbsp;});<br>&nbsp;add (tf, "North");<br>&nbsp;add (c, "Center");<br>}<br>public static void main (String args[]){<br>&nbsp;Ky y = new Ky();<br>&nbsp;y.setSize(500,500);<br>&nbsp;y.setVisible(true);<br>}<br>}<br><br>이제좀 리스너와 아답터 쓰는거에 감이 잡힐듯합니다.<br>아직 머랄까 .get과 같이 이런걸 잘 몰라서 힘들지만 ㅠㅠ<br>교수님이 풀어보라는 문제 푸는데 잘 안되네여 ㅠㅠ<br>한번더 풀어 보겠습니다.ㅎㅎ			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/954486#comments</comments>
		<pubDate>Tue, 14 Oct 2008 13:24:00 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 자바6주차 첫번째 일기 ]]> </title>
		<link>http://kim6351.egloos.com/949065</link>
		<guid>http://kim6351.egloos.com/949065</guid>
		<description>
			<![CDATA[ 
  <p>setEditable -&nbsp;점수를 고치는 것을 막아주는것 (쓰는 예 : name.setEditable (false)) - false로 막아준다.<br>paint메소드를 실행할때 애는 자동호출된다.&nbsp; Graphics g (g는 미리 정해준것)<br>g.드루라인 (&nbsp; ,&nbsp; ,&nbsp; )이 좌표를 인수 바아서 paint가 알아서 그려줌<br>canvas이다. 좌표를 정해주어야 한다.<br><br>그림그리기<br>import java.awt.*;</p><p>class Mycanvas extends Canvas{<br>&nbsp;public void paint (Graphics g){&nbsp; //paint의 먼저 이름을 정해줌 이제 그림을 그리기 시작하면됨<br>&nbsp;&nbsp;g.drawString ("김영철입니다!!!",200,200);&nbsp; //글자를 적어줌<br>&nbsp;&nbsp;g.drawRect (100,100,100,100); //사각형을 만들어줌<br>&nbsp;&nbsp;g.fillRect (10,20,50,50);&nbsp; //색이 입혀진 사각형을 만들어줌<br>&nbsp;&nbsp;int xPos[] = {300,200,500,400,100};&nbsp;&nbsp;<br>&nbsp;&nbsp;int yPos[] = {30,20,50,40,10};<br>&nbsp;&nbsp;g.drawPolygon (xPos, yPos, 5);&nbsp; //다각형&nbsp;그리기<br>&nbsp;&nbsp;g.drawRoundRect (11,22,33,44,55,66); //둥근 사각형 그리기<br>&nbsp;&nbsp;g.drawOval (20,30,100,100); //원그리기<br>&nbsp;&nbsp;g.drawArc (100,200,100,200,50,-50); //호그리기 마지막&nbsp;50 -50 은 각도를 지정해줌<br>&nbsp;}<br>}</p><p>class Kim {<br>&nbsp;public static void main (String args[]){<br>&nbsp;&nbsp;Mycanvas mc = new Mycanvas();<br>&nbsp;&nbsp;Frame f = new Frame();<br>&nbsp;&nbsp;f.setSize (1000,1000);<br>&nbsp;&nbsp;f.add (mc);<br>&nbsp;&nbsp;f.setVisible(true);<br>&nbsp;}<br>}<br><br>색채우기 (예습문제)<br>import java.awt.*;</p><p>class Kk extends Canvas{<br>&nbsp;public void paint (Graphics g){<br>&nbsp;&nbsp;g.setColor (new Color (0,0,255));&nbsp; //RGB로&nbsp;색을 입히고<br>&nbsp;&nbsp;g.fillRect (100,100,100,100);&nbsp; //색이 채워진&nbsp;사각형<br>&nbsp;&nbsp;g.setColor (new Color (255,0,0));&nbsp; //빨간색으로 채움<br>&nbsp;&nbsp;g.fillRoundRect (200,100,100,100,10,10); //둥근 모서리를 만들어야되서 이렇게 해주고 크기를 좀 크게함<br>&nbsp;&nbsp;g.fillRect (300,100,100,100);&nbsp; //같은 색으로 더 크게함 그래야지 3개가&nbsp;같이 보임<br>&nbsp;}<br>}<br>class Kim{<br>&nbsp;public static void main (String args[]){<br>&nbsp;&nbsp;Kk k = new Kk();<br>&nbsp;&nbsp;Frame f = new Frame();<br>&nbsp;&nbsp;f.setSize (1000,1000);<br>&nbsp;&nbsp;f.add (k,"Center");<br>&nbsp;&nbsp;f.setVisible(true);<br>&nbsp;}<br>}<br><br>그리기가 재미있는대 먼가 어려우네여 ㅠㅠ<br>지금 교수님이 내주신 문제 풀고 있습니다. 힘차게!!<br>그럼 내일 뵙겠습니다.</p>			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/949065#comments</comments>
		<pubDate>Mon, 13 Oct 2008 06:01:52 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 자바 5주차 두번째 일기 ]]> </title>
		<link>http://kim6351.egloos.com/922588</link>
		<guid>http://kim6351.egloos.com/922588</guid>
		<description>
			<![CDATA[ 
  저희 조 프로젝트 내용입니다.<br><br>&nbsp;AWT를 이용한 노래방 도우미 프로그램<br>1. 프로젝트 명<br>AWT를 이용한 노래방 도우미 프로그램<p>2. 프로젝트 개요<br>AWT를 이용, 글씨가 아닌 화면 (이미지)를 통한 노래방 관리 프로그램</p><p>3. 구현 기능<br>- 화면 배치를 통한 깔끔한 화면 구성<br>- ActionListener를 이용한 노래방 계산<br>- 영엽 관리 기능</p><p>4. 클래스 설계<br>- AWT를 이용한 레이아웃 클래스<br>- 각 기능별 이벤트 클래스<br>- 영업 관리 클래스</p><p>5. 조원별 구현 클래스 및 업무분담<br>- 레이아웃 클래스 : 김영철<br>- 각 기능별 이벤트 클래스 : 박원규<br>- 영업 관리 클래스 : 박원규, 김영철</p><p>6. 조원간 업무협력 방안<br>- 각자 집에서 클래스를 구성한 뒤 일주일에 1~2번 모여서 프로젝트 구성<br>- 불가피한 경우 메신저를 이용해서 프로젝트 구성</p><p>6. 개발 일정 (주별 진행 계획)<br>1주차<br>10월&nbsp; 6일 ~ 10월 11일&nbsp; AWT를 이용한 레이아웃 클래스, 각 기능별 이벤트 클래스 구성 (AWT, ActionListener)</p><p>2주차<br>10월 13일 ~ 10월 18일&nbsp; AWT를 이용한 레이아웃 클래스, 각 기능별 이벤트 클래스 구성 (AWT, ActionListener)</p><p>3주차<br>10월 20일 ~ 10월 25일&nbsp; AWT를 이용한 레이아웃 클래스, 각 기능별 이벤트 클래스 구성 (AWT, ActionListener)</p><p>4주차<br>10월 27일 ~ 11월 1일&nbsp;&nbsp; 중간 점검</p><p>5주차<br>11월 3일 ~ 11월&nbsp; 8일&nbsp;&nbsp; 영업 관리 클래스 (파일 입출력)</p><p>6주차<br>11월 10일 ~ 11월 15일&nbsp; 영업 관리 클래스 (파일 입출력)</p><p>7주차<br>11월 17일 ~ 11월 22일&nbsp; 과제 제출 전 작동 및 오류 검출</p><p>8주차<br>11월 24일 ~ 11월 29일&nbsp; 과제 제출 전 작동 및 오류 검출</p><p>11월 30일&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 과제제출 마감일</p><p>6. 참고 문헌 및 Website<br>- 자바 누리 <a href="http://javanuri.devpia.com/">http://javanuri.devpia.com/</a><br>- 자바 스터디 네트워크 <a href="http://www.javastudy.co.kr/">http://www.javastudy.co.kr/</a><br>- 프로그래밍 왕기초 java2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 영진.COM</p><p><br>열심히 한번 해보겠습니다!!!</p>			 ]]> 
		</description>
		<category>실험프로젝트2학기</category>

		<comments>http://kim6351.egloos.com/922588#comments</comments>
		<pubDate>Tue, 07 Oct 2008 03:04:40 GMT</pubDate>
		<dc:creator>파브레가스</dc:creator>
	</item>
</channel>
</rss>
