ÀÚ¹Ù ³×Æ®¿öÅ©



ÀÚ¹Ù³×Æ®¿öÅ© ÇÁ·Î±×·¡¹ÖÀº ¸ðµç Á¾·ùÀÇ ±â±â¸¦ ³×Æ®¿öÅ©¿¡ ½±°Ô ¿¬°áÇÒ ¸ñÀûÀ¸·Î ¸¸µé¾îÁ³À¸¸ç, °ÔÀÓ ÇÁ·Î±×·¥ºÎÅÍ À¥, ¾ÖÇø®ÄÉÀ̼Ç, ERP µî ¸¹Àº °÷¿¡¼ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù. ¾ËÁö¿À ÀÚ¹Ù³×Æ®¿öÅ© °Á¸¦ ÅëÇØ ½º·¹µå(Thread), ¾ÏÈ£È Åë½Å, Å×À̺í, ¸ÖƼij½ºÆ®, ÆÄÀÏó¸® Ŭ·¡½º, URL Ŭ·¡½º, TCP/IP Ŭ¶óÀÌ¾ðÆ® ¼ÒÄÏ, Ŭ¶óÀ̾ðÆ®, UDP ÇÁ·ÎÅäÄÝ µî ÀÚ¹Ù³×Æ®¿öÅ©ÀÇ ¸ðµç °ÍÀ» ¸¶½ºÅÍÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
-
01.36ºÐ ÀÚ¹Ù IO
Stream, Reader, Writer, File, Zip
Ã¥°¥ÇÇ[00:26] ¿¹Á¦/[00:43] InputOutputStream/[01:00] InputStream/[01:07] read/[01:14] int/[01:25] byte/[01:42] ŸÀÔ Æ¯Â¡/[02:26] input/[02:34] buf/[02:39] read/[03:00] LineSeparator/[03:46] buf/[04:15] exit/[04:35] ½ÇÇà/[04:47] ÀÔ·Â/[05:22] exit/[05:41] OutputStream/[06:08] String/[06:16] byte/[06:25] text.getBytes/[06:36] System.out/[06:47] write/[07:15] flush/[07:25] close/[07:41] ½ÇÇà/[08:25] Reader ±âÃÊ/[08:50] System.in/[09:16] readCount/[09:29] char/[09:54] LineSeparator/[10:09] reader.read/[10:49] String/[11:05] exit/[11:22] ½ÇÇà/[11:29] ÀÔ·Â/[11:52] exit/[12:02] Writer ±âÃÊ/[12:19] String/[12:26] char/[12:32] toCharArray/[12:41] System.out/[13:10] write/[13:34] flush/[13:40] close/[14:14] FileInputStream ±âÃÊ/[14:41] File.separator/[15:01] readCount/[15:15] byte/[15:40] try/[16:28] read/[17:13] ½ÇÇà/[17:33] english/[17:50] FileOutStream ±âÃÊ/[18:07] String/[18:17] Scanner/[18:34] System.in/[18:38] try/[18:59] while/[19:11] scan.nextline/[19:32] write/[19:48] System.LineSeparator/[20:09] flush/[20:21] ½ÇÇà/[20:54] write/[21:16] ÀúÀå È®ÀÎ/[21:43] FileReader/[22:07] read/[22:11] char/[22:28] try/[22:45] fileName/[22:54] reader.read/[23:27] String/[23:41] ½ÇÇà/[24:03] ºñ±³/[24:24] FileWriter ±âÃÊ/[24:38] String/[24:58] Scanner/[25:10] try/[25:46] exit/[26:16] FileWriter/[26:31] flush/[26:56] ½ÇÇà/[27:21] exit/[27:44] ÀúÀå È®ÀÎ/[28:11] µ¥ÀÌÅÍ Ã³¸®/[28:48] Filter Stream/[29:01] byte/[29:07] try/[29:31] FileInputStream/[29:55] ZipEntry/[30:18] getNextEntry/[30:45] zin.read/[31:11] zin.colseEntry/[31:25] ½ÇÇà/[31:53] ouputZipStream/[32:18] String/[32:27] Scanner/[32:40] try/[33:24] ZipEntry/[33:59] nextLine/[34:07] exit/[34:25] write/[34:34] LineSeparator/[34:43] flush/[34:56] ½ÇÇà/[35:12] exit/[35:32] ÀúÀå È®ÀÎ -
02.46ºÐ Thread ±âÃÊ¿Í µ¥ÀÌÅÍ ¹Ýȯ ¹æ¹ý
Thread ±âÃÊ, µ¥ÀÌÅÍ ¹Ýȯ ¹æ¹ý, Æú¸µ ¹æ½Ä, Äݹé°ú ÀνºÅϽº Äݹé, Callable Future ExecutorService
Ã¥°¥ÇÇ[00:01] thread/[01:00] Process, Thread/[02:08] ¿¹Á¦1/[02:14] public class/[02:55] run ÇÔ¼ö/[03:19] MessageDigest/[03:36] getInstance/[03:53] sha/[04:06] try, catch/[04:49] while/[05:09] StringBuilder Ŭ·¡½º »ý¼º/[05:50] System.out.println/[06:07] °á°ú È®ÀÎ/[06:32] Thread, start ÇÔ¼ö/[07:21] Runnable/[07:57] run/[08:06] MessageDigest/[08:53] digest/[09:28] ÆÄÀϸí ÁöÁ¤/[09:44] Thread(run)/[10:07] °á°ú È®ÀÎ/[11:56] ·ÎÁ÷ ÁøÇà Àü ÀÎÀÚ°ªÀ» ÀÔ·Â ¹Þ´Â ¹æ¹ý/[12:08] fileName/[12:37] ½ÇÇà ·ÎÁ÷ ÈÄ ¹ÝȯµÇ´Â °ª ó¸®/[12:47] run/[14:06] ¿¹Á¦/[14:15] ExcuteThread/[15:00] ExcuteThread/[15:09] digest/[16:05] getDigest/[17:32] run/[17:54] °æÀï Á¶°Ç/[18:49] Thread.sleep(2000)/[20:47] Thread¿¡¼ µ¥ÀÌÅÍ ¹Ýȯ ¹æ¹ý/[20:53] Thread¿¡¼ µ¥ÀÌÅÍ ¹Ýȯ ¹æ¹ý 1/[21:09] Thread¿¡¼ µ¥ÀÌÅÍ ¹Ýȯ ¹æ¹ý 2/[21:34] Thread¿¡¼ µ¥ÀÌÅÍ ¹Ýȯ ¹æ¹ý 3/[21:59] Polling ¿¹Á¦/[22:29] ExcuteThread/[22:55] InputStream »ý¼º/[23:42] th.getDigest/[24:08] break/[24:50] °á°ú È®ÀÎ/[25:47] Thread.sleep/[27:21] Callback ¿¹Á¦/[27:40] main ¸Þ¼Òµå/[27:59] start/[29:01] Runnable/[29:23] getInstance/[29:50] receiveDigest/[30:24] °á°ú È®ÀÎ/[30:40] Polling, Callback ºñ±³/[31:57] Instance ¿¹Á¦/[32:24] caculateDigest/[32:49] Thread/[33:02] this/[34:15] run/[34:39] callback/[35:55] ¿¹Á¦/[35:59] main ¸Þ¼Òµå/[36:08] Integer/[36:31] FindMaxTask/[36:54] getRandomData/[37:22] Integer/[37:30] Random/[38:29] return data/[38:35] FindMaxTask/[39:09] Callable/[40:03] ¿¹Á¦ È®ÀÎ/[40:21] FindMaxTask/[41:15] max/[42:08] return max/[43:29] ExecutorService/[45:20] service.shutdown()/[45:43] °á°ú È®ÀÎ -
03.38ºÐ ÀÚ¹Ù³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Ö
IP to InetAddress, ¿©·¯°³ÀÇ InetAddress, ·ÎÄÃÈ£½ºÆ®ÀÇ InetAddress, InetAddress.getByAddress, CanonicalHostName, IPv4 IPv6ÀÎÁö ÆÇ´Ü, InetAddressÀÇ Equals
Ã¥°¥ÇÇ[00:01] InetAddress/[01:03] ¿¹Á¦/[01:18] InetAddress.getByName/[02:28] InetAddress.getByName(È£½ºÆ®¸í)/[03:19] UnknownHostException/[03:40] °á°ú È®ÀÎ/[04:43] InetAddress.getByName(ipÁÖ¼Ò)/[05:19] getHostName/[05:48] °á°ú È®ÀÎ/[06:42] InetAddress.getAllByName/[07:35] °á°ú È®ÀÎ/[08:24] ¿¹Á¦/[08:37] InetAddress.getLocalHost/[09:11] °á°ú È®ÀÎ/[09:45] ¿¹Á¦/[10:16] byte address/[10:24] InetAddress.getByAddress/[11:09] °á°ú È®ÀÎ/[12:29] ¿¹Á¦/[12:37] InetAddress.getByName(ipÁÖ¼Ò)/[13:27] getCanonicalHostName/[14:07] °á°ú È®ÀÎ/[14:20] ¿¹Á¦/[14:35] InetAddress.getLocalHost/[14:59] IPv4, IPv6 ±¸º°/[15:06] IPv4/[15:15] IPv6/[15:26] °á°ú È®ÀÎ/[15:43] ¿¹Á¦/[15:52] Equals/[16:47] InetAddress.getByName(È£½ºÆ®¸í)/[16:58] InetAddress.getByName(ipÁÖ¼Ò)/[17:34] °á°ú È®ÀÎ/[18:18] ¿¹Á¦/[18:39] sbl.spamhaus »çÀÌÆ®/[19:12] BLACKHOLE/[19:22] main ¸Þ¼Òµå/[19:40] isSpammer/[20:03] isSpammer/[20:10] private static boolean/[20:44] getAddress()/[21:56] for¹®/[23:17] ÃÖÁ¾ °Ë»öÇÒ ÁÖ¼Ò È®ÀÎ/[23:25] InetAddress.getByName(query)/[23:40] UnknownHostException/[23:52] °á°ú È®ÀÎ/[24:32] ¿¹Á¦/[24:46] weblog È®ÀÎ/[26:13] String filePath/[26:41] InputStreamReader/[27:12] for¹®/[27:22] String entry/[27:45] °ø¹é ¹®ÀÚ¿/[28:28] InetAddress.getByName(ip)/[29:03] °á°ú È®ÀÎ/[30:21] ¿¹Á¦/[30:35] NUM THREADS/[30:41] Executors.newFixedThreadPool/[31:01] LinkedList/[31:20] LogEntry/[32:18] Queue LogEntry results/[32:30] FileInputStream/[32:47] InputStreamReader/[34:00] LookupTask/[34:26] call()/[35:02] String rest/[35:22] String hostName/[35:35] unknown Host/[35:52] executor.submit/[36:25] LogEntry result/[36:52] add/[37:14] °á°ú È®ÀÎ -
04.43ºÐ URI/URL °´Ã¼¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅÍ Ã³¸® ¹× Àü¼Û¹æ½Ä
URL ±âÃÊ, URLÀ» ÀÌ¿ëÇÑ µ¥ÀÌÅÍ Ã³¸®01 - openStream, URLÀ» ÀÌ¿ëÇÑ µ¥ÀÌÅÍ Ã³¸®02 - openConnection, URLÀ» ÀÌ¿ëÇÑ µ¥ÀÌÅÍ Ã³¸®03 - getContent, URLÀ» ÀÌ¿ëÇÑ µ¥ÀÌÅÍ Formµ¥ÀÌÅÍ Àü¼Û - Get, Post ¹æ½Ä
Ã¥°¥ÇÇ[00:00] URI, URL/[00:17] URI/[00:32] ¿¹Á¦ ÁÖ¼Ò 1/[00:56] ¿¹Á¦ ÁÖ¼Ò 2/[01:30] URL/[02:05] ¿¹Á¦ ÁÖ¼Ò/[02:23] URI, URL ³»¿ë Á¤¸®/[03:01] URL ¿¹Á¦/[03:58] °á°ú È®ÀÎ/[04:20] ¿¹Á¦/[04:44] new URL/[05:21] °á°ú È®ÀÎ/[05:37] ¿¹Á¦/[05:44] URL u1/[05:54] URL u2/[06:20] URL u1 °´Ã¼ »ý¼º/[06:51] URL u2 °´Ã¼ »ý¼º/[07:43] °á°ú È®ÀÎ/[08:16] ¿¹Á¦/[08:29] ClassLoader/[09:08] °á°ú È®ÀÎ/[09:38] ¿¹Á¦/[09:46] URL °´Ã¼ ÀÌ¿ëÇÏ¿© µ¥ÀÌÅÍ °¡Á®¿À´Â ¹æ¹ý/[09:55] URL °´Ã¼ ÀÌ¿ëÇÏ¿© µ¥ÀÌÅÍ °¡Á®¿À´Â ¹æ¹ý 1/[10:21] URL °´Ã¼ ÀÌ¿ëÇÏ¿© µ¥ÀÌÅÍ °¡Á®¿À´Â ¹æ¹ý 2/[10:40] URL °´Ã¼ ÀÌ¿ëÇÏ¿© µ¥ÀÌÅÍ °¡Á®¿À´Â ¹æ¹ý 3/[11:18] ¿¹Á¦ 1/[11:36] String/[11:48] ÇØ´ç URL ºê¶ó¿ìÀú È®ÀÎ/[12:27] new URL/[12:35] openStream()/[12:57] int/[13:06] read()/[13:27] write()/[13:48] °á°ú È®ÀÎ/[14:07] InputStream/[14:37] ¿¹Á¦/[14:43] new URL/[14:58] openStream()/[15:21] BufferedReader/[15:38] String line/[16:23] °á°ú È®ÀÎ/[16:51] ¿¹Á¦/[17:21] String ALZIO URL/[17:37] new URL/[17:41] openConnection()/[18:06] getInputStream()/[18:52] System.out.write/[19:04] °á°ú È®ÀÎ/[19:24] µ¥ÀÌÅ͸¦ °¡Á®¿ÀÁö ¸øÇÑ ÀÌÀ¯/[19:42] ¿¹Á¦/[20:02] new URL/[20:22] getInputStream()/[20:58] readLine()/[21:26] °á°ú È®ÀÎ/[22:00] ¿¹Á¦/[22:15] new URL/[22:22] µ¥ÀÌÅÍ Å¸ÀÔ - png ÆÄÀÏ/[22:37] ºê¶ó¿ìÀú È®ÀÎ/[23:04] getContent()/[23:53] °á°ú È®ÀÎ/[24:12] ¿¹Á¦/[25:00] getContent()/[25:14] µ¥ÀÌÅÍ Å¸ÀÔ - html ¹®¼/[26:04] °á°ú È®ÀÎ/[26:54] ¿¹Á¦/[27:16] getContent()/[27:26] getName()/[27:33] InputStream/[28:53] °á°ú È®ÀÎ/[29:56] ¿¹Á¦/[30:11] Form Data/[30:27] GET/[31:38] Æ÷½ºÆ® ¹æ½Ä, GET ¹æ½Ä Â÷ÀÌÁ¡/[32:16] ¿¹Á¦/[32:32] Get Method/[33:08] php/[33:28] echo/[33:52] get/[34:56] encode/[35:11] new URL/[35:48] openConnection()/[36:11] huc.getInputStream()/[36:29] new BufferedReader/[37:05] °á°ú È®ÀÎ/[37:59] ¿¹Á¦/[39:05] echo/[39:31] openConnection()/[39:57] setDoOutput/[40:15] setRequestProperty/[40:27] getOutputStream()/[40:57] writer.write/[41:20] getInputStream()/[41:49] String line, readLine()/[42:09] °á°ú È®ÀÎ -
05.46ºÐ URLConnection ±âÃÊ
¼¹ö µ¥ÀÌÅÍ °¡Á®¿À±â, Http Header - ContentType Ȱ¿ë, Http Header - ContentLength¸¦ Ȱ¿ëÇÑ BinÆÄÀÏÀúÀå, Http Header - ·¡ÆÛ ¸Þ¼Òµå¿Í Header ³»¿ëÈ®ÀÎ, ¼¹ö·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ¿© È®ÀÎ
Ã¥°¥ÇÇ[00:41] urlconnection/[01:57] ¿¹Á¦/[02:07] Scanner(System.in)/[02:45] nextLine()/[03:06] openConnection()/[03:46] contentType/[04:22] if/[04:52] int encodingIdx/[05:08] encodingType/[06:49] ¼¹ö¿¡ µ¥ÀÌÅÍ Àоî¿À´Â ¿¹Á¦/[06:58] getInputStream()/[07:32] BufferedReader reader/[07:57] while, readLine()/[08:28] url/[08:56] contentType/[09:18] charset/[10:32] urlconnection/[11:49] ¿¹Á¦/[12:14] new Scanner/[12:45] Url ÁÖ¼Ò ÀÔ·Â/[13:06] nextLine()/[13:41] openConnection()/[14:57] new BufferedReader/[15:35] readLine()/[15:52] System.out.printIn/[16:16] MalformedURLException/[16:57] ½ÇÇà/[18:56] ¿¹Á¦/[19:33] urlStr/[20:22] URL url/[20:33] url.openConnection()/[20:55] getContentLength()/[21:54] getInputStream()/[22:28] byte ¹è¿ »ý¼º/[23:30] bis.read()/[25:49] url.getFile()/[26:29] FileOutputStream/[27:10] ½ÇÇà/[28:00] À̹ÌÁö È®ÀÎ/[28:14] urlconnection Header/[29:24] ¿¹Á¦/[29:58] scan.nextLine()/[30:30] url.openConnection()/[31:30] getDate(), getLastModified()/[31:39] getExpiration()/[31:51] getContentLength()/[32:16] ½ÇÇà/[33:50] ¿¹Á¦/[34:11] scan.nextLine()/[34:52] int, while(true)/[36:04] getHeaderFieldkey/[37:22] ½ÇÇà/[38:30] ¿¹Á¦/[38:37] String/[39:29] php echo/[39:56] new URL/[40:13] openConnection()/[40:58] getOutputStream()/[41:35] new BufferedWriter/[42:12] ¿¹Á¦/[42:26] uc.getInputStream()/[43:12] String line/[43:49] ½ÇÇà -
06.39ºÐ TCP ÀÚ¹Ù³×Æ®¿öÅ© Åë½Å1
TCP ³×Æ®¿÷ Åë½Å ±âÃÊ, ¼¹ö Àü¼Û, Ŭ¶óÀÌ¾ðÆ® ¼ö½Å, ½º·¹µå °³¼±, ¼¹ö ¼ö½Å, Ŭ¶óÀÌ¾ðÆ® Àü¼Û, Reader, Writer °³¼±
Ã¥°¥ÇÇ[00:00] tcp Åë½Å/[00:25] Server, Client/[00:32] Server/[01:17] accept()/[01:30] read()/[01:51] write()/[02:34] Client, socket()/[03:02] connect/[03:23] write()/[03:46] read()/[04:02] close()/[05:09] ¿¹Á¦1/[05:29] Server ¼ÒÄÏÀ» »ý¼º(Æ÷Æ®¹øÈ£)/[06:19] accept()/[06:34] Blocking ÇÔ¼ö/[06:55] socket.getInetAddress()/[07:22] InputStream/[08:06] System.out.println()/[09:12] Ŭ¶óÀ̾ðÆ®/[09:58] socket.getInetAddress()/[10:15] socket.getInputStream()/[10:37] socket.getOutputStream()/[11:11] close()/[11:49] ¼¹ö ½ÇÇà/[12:03] accept()/[12:46] Ŭ¶óÀÌ¾ðÆ® ¿¬°á »ý¼º/[13:57] ¿¹Á¦2/[15:20] Server¼ÒÄÏ »ý¼º/[16:00] accept()/[16:35] getInetAddress()/[17:20] getOutputStream()/[17:43] BufferedOutputStream()/[17:55] Date currentDate/[19:49] SimpleDateFormat/[20:45] BufferedOutputStream/[21:27] bos.write(buf, 0, buf.length)/[23:18] Ŭ¶óÀÌ¾ðÆ® ¿¹Á¦/[23:59] socket.getInetAddress()/[24:25] socket.getInputStream()/[24:49] socket.getOutputStream()/[25:20] new BufferedInputStream/[26:09] int read/[26:18] String line/[27:06] read/[28:21] is, os, socket/[28:56] ¼¹ö ½ÇÇà/[29:18] Ŭ¶óÀÌ¾ðÆ® ½ÇÇà/[30:38] TCP - Server ClientÅë½Å (Reader/Writer)/[31:32] ¿¹Á¦/[32:38] socket.getInetAddress()/[33:15] OutputStream/[33:53] BufferedWriter/[34:04] Date/[34:31] SimpleDateFormat/[34:38] format(currentDate)/[35:58] writer/[36:59] writer.newLine()/[38:00] writer.flush()/[38:24] close() -
07.1½Ã°£ 13ºÐ TCP ÀÚ¹Ù³×Æ®¿öÅ© Åë½Å2
ÇöÀç ½Ã°£ ¹®ÀÚ¿ Àü¼Û, ¼ö½Å - Client Åë½Å, ´ÙÁßÁ¢¼Ó °¡´ÉÇÑ ¼¹ö(Thread Àû¿ë) - Server Åë½Å, ´ÙÁßÁ¢¼Ó °¡´ÉÇÑ ¼¹ö(Thread Àû¿ë) - Client Åë½Å, Ŭ¶óÀÌ¾ðÆ®¿¡¼ ÀԷ¹ÞÀº ¹®ÀÚ¿ Àü¼Û - Server, Client Åë½Å, Ŭ¶óÀÌ¾ðÆ®¿¡¼ ÀԷ¹ÞÀº ¹®ÀÚ¿ Àü¼Û(Reader, Writer °³¼±) - Server, Client Åë½Å, Ŭ¶óÀÌ¾ðÆ® TCP Åë½Å(OutputStream »ç¿ë), Ŭ¶óÀÌ¾ðÆ® TCP Åë½Å(Writer »ç¿ë), ¼¹ö, Ŭ¶óÀÌ¾ðÆ® TCP Åë½Å(Buffered InputStream, OutputStream »ç¿ë), Ŭ¶óÀÌ¾ðÆ® TCP Åë½Å(Thread»ç¿ë), ¼¹ö TCP Åë½Å(Thread»ç¿ë)
Ã¥°¥ÇÇ[00:00] Client Åë½Å - ÇöÀç ½Ã°£ ¹®ÀÚ¿ Àü¼Û/¼ö½Å ¿¹Á¦/[00:28] Socket/[01:09] InetAddress/[01:59] InputStream/[02:28] BufferedReader/[02:55] readLine()/[03:18] reader.readLine()/[04:25] ¼¹ö ½ÇÇà/[05:13] ¼¹ö¿¡¼ ÇöÀç½Ã°£ Àü¼Û/[05:45] Ŭ¶óÀÌ¾ðÆ® ½ÇÇà/[06:25] Thread ¿¹Á¦/[08:10] new ServerSocket/[08:53] server.accept()/[09:40] new Thread/[10:03] Runnable/[10:32] run()/[11:12] socket.getInetAddress()/[11:28] BufferedWriter/[11:44] socket.getOutputStream()/[12:35] new Date()/[12:59] SimpleDateFormat/[13:50] write(formattedDate)/[14:24] finally, close()/[15:10] ¼¹ö Æ÷Æ® ÀÔ·Â/[15:53] socket.getInputStream()/[16:57] String line/[17:22] while/[17:49] close()/[18:07] ¼¹ö ½ÇÇà/[18:31] Thread/[19:54] Ŭ¶óÀÌ¾ðÆ® ½ÇÇà/[20:30] ¼¹ö È®ÀÎ/[20:49] Ŭ¶óÀÌ¾ðÆ® È®ÀÎ/[21:44] Server/Client Åë½Å ¿¹Á¦/[22:22] new ServerSocket/[22:57] accept()/[23:43] inetAddr/[23:54] socket.getInputStream()/[24:50] int read/[26:48] close()/[27:11] Ŭ¶óÀ̾ðÆ®/[27:26] new Socket(¼¹ö ÁÖ¼Ò, Æ÷Æ®)/[28:11] socket.getInetAddress()/[28:34] System.in/[29:09] scan.nextLine()/[29:54] socket.getOutputStream()/[30:31] os/[30:59] text.getBytes()/[31:25] close()/[31:40] ½ÇÇà/[32:03] ¹®ÀÚ¿ ÀÔ·Â/[32:32] Reader/Writer - Server/Client Åë½Å ¿¹Á¦/[33:09] new ServerSocket/[33:47] socket.getInetAddress()/[34:02] BufferedInputStream/[35:08] byte ¹è¿/[35:57] String line/[36:53] new String(buf, 0, read)/[37:16] Ŭ¶óÀÌ¾ðÆ® TCP Åë½Å(OutputStream) ¿¹Á¦/[38:15] Socket/[39:07] socket.getInetAddress()/[39:34] Scanner/[39:56] scan.nextLine()/[40:19] socket/[41:00] OutputStream/[41:11] getBytes()/[41:38] flush()/[42:14] scan, os, socket close()/[42:34] ¼¹ö, Ŭ¶óÀÌ¾ðÆ® ½ÇÇà/[43:12] Ŭ¶óÀ̾ðÆ®/[43:29] Socket/[44:31] socket.getInetAddress()/[44:55] Scanner(System.in)/[45:29] scan.nextLine()/[45:56] socket.getOutputStream()/[47:05] bos.write/[48:03] flush()/[48:17] scan, bos, socket close()/[48:38] Ŭ¶óÀÌ¾ðÆ® ½ÇÇà/[49:02] ¼¹ö Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¹ÞÀº ¹®ÀÚ¿/[49:32] Ŭ¶óÀÌ¾ðÆ® TCP Åë½Å(Writer) ¿¹Á¦/[50:19] ServerSocket/[51:04] accept()/[52:20] getInetAddress()/[52:44] socket.getInputStream()/[53:30] BufferedReader/[53:45] String line/[53:59] readLine()/[54:14] reader.close(), server.close()/[54:30] Ŭ¶óÀÌ¾ðÆ® ¼Ò½º/[54:41] Socket/[55:04] getInetAddress()/[55:40] System.in/[55:53] nextLine()/[56:19] getOutputStream()/[57:17] new BufferedWriter/[57:27] writer/[57:56] writer.newLine()/[58:52] close()/[59:04] ½ÇÇà/[01:00:03] Ŭ¶óÀÌ¾ðÆ® ¿¹Á¦/[01:00:54] Socket/[01:01:36] socket.getInetAddress()/[01:01:48] Scanner/[01:02:57] while(true)/[01:03:42] nextLine()/[01:04:05] if, break/[01:04:25] writer/[01:04:33] writer.newLine()/[01:04:54] writer.flush()/[01:05:04] scan, writer, socket, close()/[01:05:39] ServerSocket/[01:06:22] accept()/[01:07:06] Thread/[01:07:41] thread.start()/[01:07:56] Runnable/[01:08:27] run()/[01:08:53] getInetAddress()/[01:09:21] reader/[01:09:45] InputStreamReader/[01:10:26] String/[01:11:24] reader.close()/[01:11:35] ½ÇÇà/[01:12:04] ¼¹ö·Î Àü¼ÛÇÏ°í ½ÍÀº ¹®ÀÚ¿ ÀÔ·Â/[01:12:24] exit ¹®ÀÚ¿ -
08.1½Ã°£ 1ºÐ TCP ÀÚ¹Ù³×Æ®¿öÅ© Åë½Å3
Web¼¹ö ¼Ò½ºÄÚµå ¼³¸í ¹× ½ÇÇà, HTTP Åë½Å¹æ½Ä, JHTTP main ¸Þ¼Òµå, RequestProssessor
Ã¥°¥ÇÇ[00:00] TCP Åë½Å Ȱ¿ëÇÑ À¥ ¼¹ö ±¸Çö/[00:19] À¥ ¼¹ö Åë½Å/[00:28] À¥ ¼¹ö Åë½Å °úÁ¤ À̹ÌÁö/[01:48] Browser, Server/[02:49] main/[03:41] int port/[04:06] Integer/[04:19] port/[04:45] encoding/[05:09] args/[05:46] readAllBytes(path)/[06:40] URLConnection.getFileNameMap()/[08:10] start()/[08:24] ArrayIndexOutOfBoundsException/[09:12] System.out.println/[09:24] IOExcepion/[09:53] Logger/[10:25] Logger.getLogger/[10:43] content/[10:57] header/[11:07] port/[11:17] encoding/[11:33] ù ¹øÂ° »ý¼ºÀÚ/[11:38] String data, encoding, mimeType, port/[12:04] µÎ ¹øÂ° »ý¼ºÀÚ/[12:20] encoding/[12:30] this/[13:18] byte data, encoding, mimeType, port/[14:00] header/[14:59] Server, Content-length, Content-type/[15:22] getBytes()/[16:11] Executors.newFixedThreadPool()/[17:02] try/[17:36] while(true)/[17:46] server.accept()/[18:24] HTTPHandler, submit/[19:24] try/[19:53] log/[20:04] HTTPHandler/[20:17] Callable/[20:55] Callable/[21:11] HTTPHandler »ý¼ºÀÚ/[21:37] getOutputStream()/[21:46] getInputStream()/[21:58] BufferedOutputStream(), BufferedInputStream()/[22:12] OutputStream, InputStream/[23:26] append()/[24:34] out.flush()/[24:54] finally/[25:05] return null/[25:40] À¥¼¹ö ¿¹Á¦/[26:03] ¾ËÁö¿À ȨÆäÀÌÁö ¿¹Á¦/[27:06] Run Configurations/[29:12] ÁÖ¼Ò ÀÔ·Â, Æ÷Æ®/[29:45] GET/[30:02] À¥¼¹ö ¿¹Á¦/[31:22] Åë½Å ¹æ½Ä °úÁ¤ À̹ÌÁö/[31:46] Ŭ¶óÀÌ¾ðÆ® ¿ªÇÒÇÏ´Â Browser/[31:55] Browser/[33:18] ¿äû headers Àü¼Û/[33:40] Web page °æ·Î Ž»ö/[34:48] JHTTP ÀÚ¹Ù ÆÄÀÏ/[35:18] RequestProcessor.java/[36:09] JHTTP/[36:26] Logger.getLogger/[36:42] NUM_THREADS/[37:33] rootDirectory/[37:50] int port/[38:06] main ¸Þ¼Òµå/[38:20] args/[38:55] new File/[39:29] Integer.parseInt/[39:54] JHTTP »ý¼ºÀÚ/[40:38] rootDirectory, port ¹øÈ£/[40:49] rootDirectory/[41:34] NUM_THREADS/[42:19] try, ServerSocket/[42:48] Logger/[43:21] server.accept()/[43:33] Runnable/[44:19] pool.submit()/[46:27] rootDirectory.getCanonicalFile()/[47:46] rootDirectory.getPath()/[48:10] OutputStream/[48:23] Writer/[48:47] Reader/[49:11] US-ASCII/[49:26] while(true)/[50:21] Logger.info/[50:35] HTTP ¸Þ¼Òµå/[52:17] split()/[53:42] tokens/[53:59] method.equals/[54:38] if/[54:49] sendHeader/[55:21] flush()/[56:42] String contentType/[56:53] getFileNameMap()/[57:36] Logger.info/[58:28] File(rootDirectory, fileName)/[59:37] byte/[01:00:35] raw.flush() -
09.1½Ã°£ 7ºÐ UDP Åë½Å1
UDP Åë½Å ±âÃÊ ÀÌ·ÐUDP Daytime Client ¿¹Á¦ ¹× ½ÇÇà, UDP Discard¼¹ö, UDP DiscardŬ¶óÀÌ¾ðÆ® ¹× ½ÇÇà, UDP Echo¼¹ö-UDPServer, UDP Echo¼¹ö-UDPEchoServer
Ã¥°¥ÇÇ[00:00] else/[00:28] sendHeader/[01:00] out.write()/[01:26] method/[01:56] String/[02:27] body.length()/[02:38] out.flush()/[03:26] JHTTP °´Ã¼ ½ÇÇà/[04:23] Run Configurations/[05:56] locallhost/[06:17] Console È®ÀÎ/[07:28] UDP Åë½Å/[08:01] TCP¿Í UDPÀÇ Â÷ÀÌÁ¡/[08:16] TCP Åë½Å/[08:49] ½Å·Ú¼º ÀÖ´Â Àü¼Û/[10:16] UDP Åë½Å/[12:45] UDP ½Ç½ÀÇϱâ/[13:16] UDP ¿¹Á¦/[13:22] package/[13:54] Logger/[14:37] PORT ¹øÈ£/[15:17] main ¸Þ¼Òµå È®ÀÎ/[15:36] Logger.info/[16:33] new DatagramSocket/[17:07] socket.setSoTimeout()/[18:16] InetAddress host/[19:25] new DatagramSocket/[20:07] socket.send()/[21:25] socket.receive/[22:44] receivedPacket.getData()/[23:19] Logger.info/[23:33] receivedPacket.getPort()/[24:21] ³×Æ®¿öÅ©Åë½Å¿¡¼ °¡Àå Áß¿äÇÑ ¿¹¿Üó¸®/[24:31] SocketException/[24:58] UnknownHostException/[25:30] IOException/[26:21] ¼¹ö UDP Åë½Å/[26:46] package/[27:17] Logger.getLogger/[28:15] try/[28:49] UDP Åë½Å/[29:21] Ŭ¶óÀ̾ðÆ®/[29:44] ¹«ÇÑ ·çÇÁ/[30:31] ¼¹ö/[30:37] TCP Åë½Å/[31:25] new DatagramPacket/[31:49] socket.receive()/[32:10] String daytime/[32:27] getBytes()/[33:00] request.getAddress(), request.getPort()/[33:44] ½ÇÇà/[33:53] ¼¹ö ·Î±× È®ÀÎ/[34:03] Ŭ¶óÀÌ¾ðÆ® È®ÀÎ/[35:02] UDP Åë½Å/[35:18] Discard ¼¹ö Ŭ¶óÀ̾ðÆ®/[35:54] server/[36:37] Logger.getLogger/[37:19] MAX_PACKET_SIZE/[37:42] Logger.info/[38:09] new DatagramSocket/[39:42] while(true)/[40:57] String ŸÀÔÀ¸·Î º¯È¯/[41:35] UTF-8/[41:48] Logger.info/[42:20] receivedPacket.setLength/[43:19] Ŭ¶óÀÌ¾ðÆ® È®ÀÎ/[43:33] package/[43:50] Logger.getLogger/[44:33] main ¸Þ¼Òµå È®ÀÎ/[45:11] Logger.info/[46:01] InetAddress.getByName()/[46:29] InputStreamReader(System.in)/[47:21] While(true)/[48:33] userMessages.getBytes()/[49:44] socket.send/[50:16] SocketException/[50:24] UnknownHostException/[50:42] IOException/[50:54] ½ÇÇà, °á°ú È®ÀÎ/[51:10] DiscardServer ½ÇÇà È®ÀÎ/[51:15] Ŭ¶óÀÌ¾ðÆ® ½ÇÇà È®ÀÎ/[51:29] ¸Þ½ÃÁö Àü¼ÛÇϱâ/[52:36] UDP Åë½ÅÀ» ÀÌ¿ëÇÑ echo ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®/[52:48] °´Ã¼ÁöÇâ °³³ä Àû¿ëÇϱâ/[53:48] UDP ¼¹ö/[54:03] abstract class/[54:39] Logger.getLogger()/[54:59] isShutDown/[55:54] run()/[56:18] new DatagramSocket(port)/[56:39] socket.setSoTimeout()/[57:29] if(isShutDown) return/[58:18] receive()/[59:08] SocketTimeoutException/[01:00:32] respond/[01:01:09] ShutDown()/[01:01:32] echo ¼¹ö/[01:01:56] package/[01:02:37] Logger.getLogger()/[01:03:40] respond ¸Þ¼Òµå/[01:04:19] getAddress()/[01:04:38] getPort()/[01:05:34] shutDown()/[01:06:01] UDPEchoServer() -
10.57ºÐ UDP Åë½Å2
Echo Ŭ¶óÀÌ¾ðÆ® Å¬·¡½º, UDPRequest ·ÎÁ÷, UDPEchoClient ¸ÞÀÎ ÇÔ¼ö ºÎºÐ, UDPEchoClientÀÇ SenderThread ·ÎÁ÷, UDP ¿¡ÄÚ Å¬¶óÀÌ¾ðÆ® - ReceivedThread ¼³¸í, UDP ÆÄÀÏ Àü¼Û ¼¹ö ¿¹Á¦, UDP ÆÄÀÏ ¼ö½Å Ŭ¶óÀÌ¾ðÆ® ¿¹Á¦ ¹× ½ÇÇà, UDP ÆÄÀÏ ¸ñ·Ï Á¶È¸ ¼¹ö ¿¹Á¦, UDP ÆÄÀÏ ¸ñ·Ï Á¶È¸ Ŭ¶óÀÌ¾ðÆ® ¿¹Á¦
Ã¥°¥ÇÇ[00:00] UDP Echo Ŭ¶óÀÌ¾ðÆ® ¼ºñ½º/[00:20] getLogger()/[00:43] default_port/[01:17] InetAddress.getByName()/[01:48] UDPRequest/[02:29] udpRequest.request()/[03:17] Logger.info/[03:45] InetAddress.getByName/[04:27] class¸í ÁöÁ¤/[04:39] getLogger()/[05:08] buffersize/[05:21] timeout/[05:35] host/[05:45] port/[06:25] int buffersize/[07:26] InetAddress host, int port/[08:02] request()/[09:50] getBytes()/[10:18] DatagramPacket/[11:50] socket.setSoTimeout(timeout)/[12:31] socket.connect(host, port)/[13:12] byte buffer/[14:26] socket.receive()/[15:01] int receivedLength/[16:19] return/[16:50] UDP Echo ¼¹ö ½ÇÇà/[17:02] °á°ú È®ÀÎ/[17:30] ¼¹ö È®ÀÎ/[18:30] È¿À²ÀûÀÎ UDP Åë½Å ó¸®Çϱâ/[18:51] ¿¹Á¦ È®ÀÎ/[19:50] InetAddress.getByName()/[20:47] ¼Û½Å°ú ¼ö½ÅÀ» °¢ Thread·Î ºÐ¸®/[21:06] new SenderThread/[21:41] start()/[22:35] SenderThread/[22:56] Logger.getLogger/[23:47] boolean stopped/[24:10] SenderThread/[24:45] connect(server, port)/[24:58] halt()/[25:40] run()/[26:48] while/[27:13] logger.info/[28:15] datagrampacket/[29:00] send()/[29:38] ReceiverThread/[29:58] ReceiverThread/[30:57] halt()/[31:29] while/[32:03] receive()/[33:30] Thread.yield()/[33:58] ½ÇÇà, °á°ú È®ÀÎ/[34:49] UDP ÆÄÀÏ Àü¼Û Åë½Å/[35:30] TARGET_FILE_NAME/[35:51] BufferedReader/[36:32] DatagramPacket/[36:54] socket.receive/[37:58] if/[38:48] BufferedReader/[39:38] receivePacket.getAddress(), receivePacket.getPort()/[40:56] Exception/[41:28] finally/[41:48] UDPClient ¿¹Á¦/[42:38] try/[43:25] DatagramPacket/[44:34] send()/[45:23] receivePacket.getAddress()/[46:07] receivePacket.getData()/[47:02] ½ÇÇà, °á°ú È®ÀÎ/[48:17] txt ÆÄÀÏ È®ÀÎ/[48:29] ¼¹öÀÇ ÆÄÀϸñ·ÏÀ» Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇÏ´Â ¿¹Á¦/[49:35] server/[49:52] HOST, PORT/[50:21] GUBUN/[50:48] try/[51:33] receive()/[52:48] list()/[53:35] GUBUN/[54:06] getPort()/[54:52] datagrampacket ÀÎÀÚ/[55:24] send()/[56:04] localhost/[56:29] main ¸Þ¼Òµå È®ÀÎ/[57:04] InetAddress -
11.59ºÐ UDP Åë½Å3
UDP ÆÄÀÏ ¸ñ·Ï Á¶È¸ Ŭ¶óÀÌ¾ðÆ® ¿¹Á¦, UDP ´ÙÁß ·ÎÁ÷ Ŭ¶óÀ̾ðÆ®, ÆÄÀÏ ¸ñ·Ï Á¶È¸, ÆÄÀÏ ´Ù¿î·Îµå
Ã¥°¥ÇÇ[00:34] receivepacket/[00:45] socket.send()/[01:15] receivepacket.getlength()/[01:30] string »ý¼ºÀÚ/[02:36] return/[02:40] split()/[03:00] for/[03:07] ½ÇÇà, °á°ú È®ÀÎ/[03:27] server °á°ú È®ÀÎ/[04:57] ÆÄÀÏ ¸ñ·Ï Á¶È¸, ÆÄÀÏ Àü¼Û ¹× ¼ö½Å ¿¹Á¦/[05:15] ±¸Çöµµ È®ÀÎ/[05:27] filelist/[05:39] transfer/[06:03] Ŭ¶óÀÌ¾ðÆ® ¼³¸í/[06:17] logger °´Ã¼ »ý¼º/[06:40] main ¸Þ¼Òµå/[07:14] try/[07:42] inputstreamreader(system.in)/[08:17] while(true)/[08:55] readline()/[09:45] else if/[10:03] processtransfer/[10:13] else if, break/[10:41] processfilelist ¸Þ¼Òµå È®ÀÎ/[11:25] mode_file_list/[11:50] target_folder/[12:36] senddata.getbytes("utf-8")/[13:29] send()/[14:26] receive()/[15:06] getaddress()/[15:30] getlength()/[16:11] logger.info/[16:46] parsereceiveddata()/[17:00] split()/[17:45] unknownhostexception e/[18:25] ¿øÇÏ´Â ÆÄÀÏÀ» ´Ù¿î·Îµå ÇÒ °æ¿ì 󸮵Ǵ ·ÎÁ÷/[18:46] readline()/[19:17] processtransfer()/[19:56] mode_transfer/[21:36] send()/[22:00] receive()/[22:44] getlength()/[23:39] unknownhostexception e/[24:21] udpserver/[25:07] target_file_name/[25:58] main ¸Þ¼Òµå È®ÀÎ/[26:13] while(true)/[27:30] receive()/[28:51] process()/[30:16] processfilelist()/[30:54] exists()/[31:34] for/[32:17] tostring()/[33:27] processtransfer()/[34:16] bufferedreader °´Ã¼ »ý¼º/[35:15] sb.append()/[36:13] ½ÇÇà, °á°ú È®ÀÎ/[37:59] jsoup : java html parser/[38:57] ȯ°æ±¸Ãà/[39:12] jsoup ´Ù¿î·Îµå/[39:28] properties/[40:52] html ¹®ÀÚ¿À» jsoup ¶óÀ̺귯¸®°¡ ÆÄ½ÌÇÏ´Â ¿¹Á¦/[41:16] jsoup.parse(html)/[41:48] outerhtml()/[42:04] ½ÇÇà, °á°ú È®ÀÎ/[42:44] body¿¡ ÀÖ´Â ³»¿ë¸¸À» Ãß°¡ÇÏ´Â ¿¹Á¦/[43:09] jsoup.parsebodyfragment()/[43:29] doc.body()/[43:48] ½ÇÇà, °á°ú È®ÀÎ/[44:19] url¿¡ Á¢¼ÓÇÏ¿© htmlÀ» °¡Á®¿À´Â ¿¹Á¦/[44:32] jsoup.connect/[45:05] data()/[45:23] ȨÆäÀÌÁö Ä«Å×°í¸®¸¦ Ãß°¡ È®ÀÎ/[45:57] post()/[46:41] ½ÇÇà, °á°ú È®ÀÎ/[47:09] html ÆÄÀÏÀ» jsoup ¶óÀ̺귯¸®·Î ÆÄ½ÌÇÏ´Â ¿¹Á¦/[47:44] jsoup.parse()/[48:34] ½ÇÇà, °á°ú È®ÀÎ/[49:32] htmlÀ» ÆÄ½ÌÇϰí, ºÐ¼®ÇÏ´Â ¿¹Á¦/[52:32] get()/[53:34] ºê¶ó¿ìÀú ȸéÀ» ÅëÇÏ¿© °¡Á®¿Ã ´ë»ó È®ÀÎ/[54:17] f11 (°³¹ßÀÚ µµ±¸)/[55:34] getelementsbyclass/[56:44] html ÆÄ½Ì ¿¹Á¦/[57:23] data()/[57:32] get()/[58:29] ºê¶ó¿ìÀúÀÇ »ó¼¼³»¿ë È®ÀÎ -
12.55ºÐ Swing1
Swing Hello world ¿¹Á¦, ·¹À̾ƿô ¼³¸í, FlowLayout ½Ç½À, BorderLayout ½Ç½À, GridLayout, MixLayout ½Ç½À, Swing ÄÄÆ÷³ÍÆ® : TextField, Button Eventó¸®, üũ¹Ú½º, ÆÄÀϼ±Åà Dialog, ÆÄÀϼ±Åà Dialog with FileFilter, ÀÚ¹Ù I, O Reader with Swing
Ã¥°¥ÇÇ[00:00] java swing/[00:26] ±âº» »ý¼ºÀÚ/[01:01] setdefaultcloseoperation/[02:15] settitle/[02:42] jlable/[03:05] init()/[04:14] flowlayout/[04:45] jframe/[05:03] settitle/[05:10] init()/[05:41] flowlayout/[06:24] ÄÄÆ÷³ÍÆ® Ãß°¡Çϱâ/[06:47] flowlayout Ŭ·¡½º »ý¼º/[07:04] pack()/[07:21] ½ÇÇà, °á°ú È®ÀÎ/[08:06] borderlayout/[09:19] jframe/[09:34] settitle/[09:40] init()/[09:48] setlayout/[09:56] new borderlayout()/[10:38] add()/[11:23] main ¸Þ¼Òµå È®ÀÎ/[11:32] init(), pack(), setvisible()/[11:44] ½ÇÇà, °á°ú È®ÀÎ/[12:24] borderlayout(int hgap, int vgap)/[12:43] gridlayout/[13:20] setdefaultcloseoperation/[13:33] init()/[13:44] gridlayout(int row, int cols)/[14:55] ½ÇÇà, °á°ú È®ÀÎ/[15:19] mixlayout/[16:18] init()/[16:33] jpanel()/[17:32] setlayout()/[18:47] µÎ ¹øÂ° panel »ý¼º, setlayout()/[19:58] jframe/[21:02] ½ÇÇà, °á°ú È®ÀÎ/[22:04] ±âº» ÄÄÆ÷³ÍÆ®/[22:13] checkbox ÄÄÆ÷³ÍÆ®/[22:55] jframe/[23:54] init()/[24:14] allcheck º¯¼ö ±â´É/[24:54] actionperformed/[25:20] isselected()/[26:01] Àü¼Û¹öư Ãß°¡/[26:25] addactionlistener/[27:32] main ¸Þ¼Òµå È®ÀÎ/[27:43] init()/[28:04] ½ÇÇà, °á°ú È®ÀÎ/[29:08] ´ÙÀ̾ó·Î±×/[30:03] actionlistener/[31:04] jfilechooser/[31:58] filechooser/[32:41] jtextarea/[33:17] addactionlistener(this)/[35:06] openbutton/[35:43] getsource()/[36:16] showopendialog/[37:24] getselectedfile()/[38:13] ½ÇÇà, °á°ú È®ÀÎ/[39:26] ÆÄÀÏ ÇÊÅÍ ±â´É/[39:56] filechooser/[40:53] getdescription(), accept()/[41:51] return false/[42:37] openbutton/[43:19] borderlayout()/[44:09] getsource()/[45:03] ½ÇÇà, °á°ú È®ÀÎ/[46:02] ÀÚ¹Ù IO/[46:23] filechooser/[46:56] jframe/[48:05] seteditable(false)/[49:03] getcontentpane()/[49:55] e.getsource()/[50:59] getfilecontent/[52:09] bufferedreader/[52:35] reader.readline()/[53:27] message.append/[53:34] ½ÇÇà, °á°ú È®ÀÎ -
13.1½Ã°£ 8ºÐ Swing2
Java I, O File Reader °³¼±, Java I, O File Writer °³¼±, Long Work¸¦ InlineÀ¸·Î ó¸®, Long Work¸¦ Thread·Î ó¸®, Long Work¸¦ Áß°£¿¡ ÁßÁöÇϱâ
Ã¥°¥ÇÇ[00:00] Java I/O File Reader °³¼±/[00:36] actionlistener/[01:17] setdefaultcloseoperation/[02:10] filefilter()/[02:32] getdescription(), accept()/[03:17] return false/[03:49] ¿±â¹öư »ý¼º/[04:10] message.seteditable(false)/[04:52] borderlayout()/[05:08] add()/[05:43] actionperformed()/[06:20] filechooser.showopendialog/[07:27] getfilecontent()/[08:35] while/[08:41] append()/[08:55] printstacktrace()/[09:18] ½ÇÇà, °á°ú È®ÀÎ/[10:16] filewriter ¿¹Á¦ 1/[10:33] ÆÄÀÏ ¾²±â ±â´É Ãß°¡Çϱâ/[10:49] jframe, actionlistener/[11:07] textfilechooser, dirchooser/[12:49] setacceptallfilefilterused/[13:18] getdescription()/[13:46] return false/[14:29] directories_only/[15:03] seteditable(false)/[16:14] flowlayout()/[16:51] northpanel/[17:18] ¹öưÀ» ´·¶À» ¶§ À̺¥Æ® ó¸®Çϱâ/[17:26] actionperformed()/[17:49] getsource()/[18:04] textfilechooser.showopendialog/[18:45] getselectedfile()/[19:13] getfilecontent()/[19:48] stringbuilder/[20:18] while/[20:35] return sb.tostring()/[21:01] dirchooser/[21:32] getselectedfile()/[22:00] if, return/[22:23] writefile ¸Þ¼Òµå/[23:27] new bufferedwriter/[24:04] return true/[24:44] ½ÇÇà, °á°ú È®ÀÎ/[26:36] filewriter ¿¹Á¦ 2/[27:31] init()/[28:23] isdirectory()/[29:03] addactionlistener()/[30:07] new jpanel()/[30:29] getcontentpane()/[30:45] actionperformed()/[31:00] getsource()/[31:36] showopendialog()/[33:04] textfilechooser/[33:30] getfilecontent()/[33:58] message.append()/[34:46] string line/[35:07] lineseparator()/[35:47] writefile()/[36:34] new bufferedwriter/[37:29] ½ÇÇà, °á°ú È®ÀÎ/[38:49] swing ¿¹Á¦¿¡¼ thread 󸮽à ¹ß»ýÇÏ´Â ¹®Á¦Á¡, »ç¿ë¹ý/[38:59] ¿¹Á¦ 1/[39:53] »ý¼ºÀÚ ±¸Çö/[41:03] setactioncommand()/[42:17] while/[42:48] thread.sleep/[43:44] ±¸¼ºÇÑ ¿ä¼Ò ¹èÄ¡Çϱâ/[44:03] northpanel.setlayout/[45:29] add()/[46:19] pane.add()/[46:49] ½ÇÇà, °á°ú È®ÀÎ/[48:39] ¿¹Á¦ 2/[49:12] ±¸¼º ¿ä¼Ò/[49:59] init()/[50:37] set.actioncommand()/[51:31] thread.sleep()/[52:06] setactioncommand()/[52:30] new actionlistener()/[52:45] actionperformed()/[53:18] while/[53:46] thread.start()/[54:39] add()/[55:07] northpanel/[55:38] pane.add()/[55:56] init(), pack(), setvisible()/[58:14] ¿¹Á¦ 3/[59:09] exit_on_close/[01:00:30] setactioncommand()/[01:00:57] thread.sleep()/[01:01:10] thread ó¸® ÇÏ´Â ºÎºÐ/[01:01:23] addactionlistener/[01:02:15] new thread, getactioncommand()/[01:03:33] run()/[01:04:15] ÁßÁö¿äûÀÌ µé¾î¿ÔÀ» ¶§ Á¾·á µÇ´Â ºÎºÐ »ìÆìº¸±â/[01:04:32] thread.currentthread()/[01:04:45] isinterrupted()/[01:05:00] try, catch/[01:05:29] setactioncommand()/[01:06:00] interrupt()/[01:06:29] interrupt()/[01:06:52] setenabled()/[01:07:31] getcontentpane()/[01:07:41] pack(), setvisible()/[01:07:47] ½ÇÇà, °á°ú È®ÀÎ -
14.54ºÐ Swing3
Swing worker¸¦ ÀÌ¿ëÇÏÁö ¾Ê¾ÒÀ» °æ¿ì, Swing worker¸¦ ÀÌ¿ëÇÑ °æ¿ì, Swing worker ÁøÇà·üó¸® ¼³¸í ¹× ¿¹Á¦, Swing worker ÁøÇà·üó¸®(Ãë¼Ò) ¿¹Á¦, Swing Worker¸¦ ÀÌ¿ëÇÏÁö ¾ÊÀº ÆÄÀÏ º¹»ç ¿¹Á¦, Swing Worker¸¦ ÀÌ¿ëÇÑ ÆÄÀÏ º¹»ç ¿¹Á¦, Swing Worker¸¦ ÀÌ¿ëÇÑ ÆÄÀÏ º¹»ç ÁøÇà·ü Ç¥Çö ¿¹Á¦
Ã¥°¥ÇÇ[00:14] º°µµÀÇ thread, ui ÀÛ¾÷À» ÇÏÁö ¾Ê¾ÒÀ» °æ¿ì ¿¹Á¦/[00:31] setdefaultcloseoperation/[01:06] new jbutton/[02:06] setenabled(false)/[02:48] add()/[03:17] init()/[03:36] ½ÇÇà, °á°ú È®ÀÎ/[04:30] swingworker¸¦ »ç¿ëÇÑ °æ¿ì ¿¹Á¦/[04:54] init()/[05:11] addactionlistener()/[05:37] waitworker/[06:17] override/[07:01] thread.sleep()/[08:08] init(), pack(), setvisible()/[08:24] ½ÇÇà, °á°ú È®ÀÎ/[08:56] ÁøÇà·ü ó¸® ¿¹Á¦/[09:26] settitle/[09:52] add()/[10:46] swingworker/[11:17] max count, sleep time/[11:46] while¹®/[12:30] return/[12:54] addpropertychangelistener/[14:13] propertychange()/[14:40] pcevt.getpropertyname()/[15:22] setvalue()/[15:51] ½ÇÇà, °á°ú È®ÀÎ/[16:16] Ãë¼ÒÇϰíÀÚ ÇÏ´Â ¹öư Ãß°¡ÇÏ¿© ±¸ÇöÇÏ´Â ¿¹Á¦/[16:39] jprogressbar/[17:00] init()/[17:34] Ãë¼Ò¹öư »ý¼º/[18:07] setenabled()/[18:55] propertychange()/[19:04] setvalue()/[19:52] addactionlistener/[21:08] Ãë¼Ò¹öư ºñ¼ºÈ, ÁøÇà¹öư Ȱ¼ºÈ/[21:22] add()/[22:00] thread.sleep()/[22:32] ½ÇÇà, °á°ú È®ÀÎ/[23:04] ÆÄÀÏ ¼±ÅÃ, ¼±ÅÃÇÑ ÆÄÀÏ º¹»ç ÇÏ´Â ¿¹Á¦/[23:15] ÆÄÀÏ ÀúÀå½Ã swingworker¸¦ »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì ¿¹Á¦/[23:48] jpanel, jbutton/[24:40] jfilechooser ¼³Á¤/[25:21] init()/[26:03] setacceptallfilefilterused()/[26:44] accept()/[27:09] getname()/[27:40] ÆÄÀÏ ¿±â »ý¼º/[27:55] setactioncommand()/[28:41] addactionlistener/[28:51] jbutton »ý¼º/[29:21] jtextarea ÄÄÆ÷³ÍÆ® Ãß°¡/[29:58] flowlayout/[30:33] borderlayout()/[30:58] borderlayout.center/[31:49] actionperformed/[32:30] getactioncommand()/[33:32] ¿±â ¹öư À̺¥Æ® »ìÆìº¸±â/[33:44] showopendialog/[34:23] if, getselectedfile()/[35:17] ÀúÀå ¹öư À̺¥Æ® »ìÆìº¸±â/[35:48] showsavedialog/[36:53] writefile()/[37:54] bufferedinputstream, bufferedoutputstream/[38:43] int read/[39:05] while¹®, write()/[39:35] return false/[40:20] showsavedialog()/[40:45] log.append/[41:20] init(), pack(), setvisible(true)/[41:39] ½ÇÇà, °á°ú È®ÀÎ/[43:14] Áö³ ¿¹Á¦¸¦ ÀÌ¿ëÇÏ¿© °³¼±ÇÏ´Â ¿¹Á¦/[44:12] jprogressbar/[44:33] init()/[45:20] open, save º¯¼ö »ý¼º/[45:55] log º¯¼ö »ý¼º/[46:05] progressbar »ý¼º/[46:30] flowlayout()/[46:44] main panel »ý¼º/[47:13] progressbar Ãß°¡/[47:30] ¿±â ¹öư Ŭ¸¯ÇßÀ» ¶§ ó¸®ÇÏ´Â À̺¥Æ® »ìÆìº¸±â/[47:56] open action command/[48:28] ÀúÀå ¹öư Ŭ¸¯ÇßÀ» ¶§ ó¸®ÇÏ´Â À̺¥Æ® »ìÆìº¸±â/[48:48] actioncommand/[49:24] ÁÖÀDZí°Ô »ìÆìº¼ Á¡/[49:55] filecopyworker/[50:37] return null/[50:59] totalsize, progress/[51:46] int read/[52:33] percent/[52:52] write()/[53:10] return percent/[53:32] addpropertychangelistener/[54:16] propertychange/[54:40] execute()/[54:44] ½ÇÇà, °á°ú È®ÀÎ -
15.34ºÐ JTable
¹è¿À» »ç¿ëÇÑ ¿¹Á¦, Vector¸¦ »ç¿ëÇÑ ¿¹Á¦, CsvÆÄÀÏ Import ±â´É, export ±â´É
Ã¥°¥ÇÇ[00:00] JTable ±âº» array »ç¿ë ¿¹Á¦/[00:34] exit_on_close/[00:46] init()/[01:41] add()/[02:05] init()/[02:19] ½ÇÇà, °á°ú È®ÀÎ/[02:56] 2Â÷¿ø ¹è¿, º¤ÅÍ/[03:10] Ä÷º¼Ç º¤Å͸¦ »ç¿ëÇÏ¿© jtableÀ» ±¸ÇöÇÏ´Â ¿¹Á¦/[03:47] defaulttablemodel/[04:19] »ý¼ºÀÚ, ´Ý±â ¿É¼Ç/[04:36] init()/[05:06] addelement()/[06:11] addrow()/[07:13] main ¸Þ¼Òµå/[08:05] ½ÇÇàµÈ ȸé È®ÀÎ/[08:19] csv ÆÄÀÏ ¿¹Á¦/[09:07] jfilechooser/[09:31] setdefaultcloseoperation/[09:42] init()/[10:32] setacceptallfilefilterused(false)/[11:12] accept()/[12:29] addactionlistener()/[13:32] e.getactioncommand()/[14:14] showopendialog/[15:00] getabsolutepath()/[15:24] readfile()/[16:13] arraylist/[16:53] while/[17:26] split(±¸ºÐÀÚ ±âÈ£)/[18:27] if, else/[19:02] resultmap.put()/[19:36] printtable/[20:05] get()/[20:33] setcolumnidentifiers()/[21:26] setmodel()/[21:57] printtable/[22:05] ȸ鿡 Ç¥½ÃÇÒ µ¥ÀÌÅÍ È®ÀÎ/[22:29] ÅØ½ºÆ® ÆÄÀÏ ¿±â·Î ȸé Ãâ·ÂÇϱâ/[22:45] ȸéÀÇ ±¸¼º/[23:43] imort, export ÇÒ¼ö ÀÖ´Â ¿¹Á¦/[24:13] jpanel ¼±¾ð/[24:37] jfilechooser Ãß°¡/[25:20] »ý¼ºÀÚ, init()/[25:45] jfilechooser »ý¼º/[26:37] seteditable(false)/[27:12] addactionlistener()/[27:45] add()/[28:19] readfile()/[28:40] Á¶°Ç¹®/[28:51] showsavedialog()/[29:33] writefile()/[30:38] defaultmodel/[30:59] getcolumnname()/[31:46] getrowcount()/[32:07] getvalueat()/[32:37] ij¸®Áö ¸®ÅÏ, ¶óÀÎ Çǵå/[33:01] return true/[33:18] ½ÇÇà, °á°ú È®ÀÎ/[34:12] ÆÄÀÏ ÀúÀå ¿©ºÎ È®ÀÎ -
16.35ºÐ NIO
NIO¸¦ ÀÌ¿ëÇÑ ¹®ÀÚ»ý¼º±â Ŭ¶óÀ̾ðÆ®(Blocking ¹æ½Ä), NIO¸¦ ÀÌ¿ëÇÑ ¹®ÀÚ»ý¼º±â Ŭ¶óÀ̾ðÆ®(Non-Blocking ¹æ½Ä), NIO¸¦ ÀÌ¿ëÇÑ ¹®ÀÚ»ý¼º±â ¼¹ö, NIO¸¦ ÀÌ¿ëÇÑ ¿¡ÄÚ¼¹ö
Ã¥°¥ÇÇ[00:00] nio¸¦ ÀÌ¿ëÇÑ ¹®Àڹ߻ý±â ¿¹Á¦/[00:12] ¹®Àڹ߻ý±â À̹ÌÁö È®ÀÎ/[00:14] ¾Æ½ºÅ°ÄÚµå/[00:22] nio¸¦ ÀÌ¿ëÇÑ Å¬¶óÀÌ¾ðÆ® ¿¹Á¦/[00:58] Ŭ¶óÀÌ¾ðÆ® »ìÆìº¸±â/[01:34] new inetsocketaddress()/[02:04] open()/[02:42] bytebuffer/[03:33] ij¸®Áö ¸®ÅÏ, ¶óÀÎ Çǵå/[04:22] Ç¥ÁØÃâ·Â¿¡ µ¥ÀÌÅÍ Ãâ·ÂÇϱâ/[05:07] read()/[05:44] flip()/[05:55] write()/[06:04] clear()/[07:17] ½ÇÇà, °á°ú È®ÀÎ/[07:31] ¾Æ½ºÅ°ÄÚµå °ª È®ÀÎ/[08:02] NonBlocking I/O ¿¹Á¦/[08:49] open()/[09:20] NonBlocking ¹æ½Ä/[09:58] system.out/[10:28] NonBlocking, read()/[11:22] ¹«ÇÑ ·çÇÁ ±¸¹®/[12:18] clear()/[12:42] ½ÇÇà, °á°ú È®ÀÎ/[12:55] server »ìÆìº¸±â/[13:32] ¾Æ½ºÅ° ÄÚµå(¹®ÀÚ¿) ÁöÁ¤/[14:03] for¹®/[14:34] ½ºÆäÀ̽º ¹®ÀÚ¿ Ű Äڵ尪(32¹ø)/[16:00] ¼¹ö¼ÒÄÏä³Î °´Ã¼¸¦ »ý¼º/[17:14] NonBlocking i/o ¹æ½Ä/[17:46] open()/[18:36] bind()/[18:51] NonBlocking i/o ¹æ½Ä »ç¿ë/[19:04] ¼¿·ºÅÍ »ý¼º/[19:53] register()/[20:20] Ŭ¶óÀÌ¾ðÆ®¿Í ¿¬°áÇÏ°í µ¥ÀÌÅÍ Àü¼ÛÇϱâ/[20:28] NonBlocking i/o ¹æ½Ä/[20:50] selectedkeys()/[21:32] iterator.next()/[21:55] op_accept/[22:12] channel()/[23:17] register()/[25:14] attachment()/[25:27] rewind()/[26:53] flip()/[27:13] try, catch¹®/[27:32] close()/[27:41] ½ÇÇà, °á°ú È®ÀÎ/[28:05] ¹®ÀÚ¿ »ý¼º±â ¿¹Á¦/[28:16] ¿¡ÄÚ ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ® »ìÆìº¸±â/[28:40] echoserver/[29:10] open()/[30:25] while¹®/[30:51] selectedkeys()/[31:17] iterator.remove()/[32:01] accept()/[32:39] register()/[33:34] channel()/[34:11] flip()/[34:29] compact()/[34:43] ½ÇÇà, °á°ú È®ÀÎ
-
MYSQL ±âÃÊ+½Ç¹«MYSQL Àΰ Æò»ý±³À°¿ø ±³À° ¾È³» MYSQL ¿ÀǼҽº·Î ±¸¼ºÇÏ´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º °ü¸® ½Ã½ºÅÛÀ¸·Î ±âº»¸í·É¾î ¸¸À¸·Îµµ ½±°Ô MYSQL Àº Ãʺ¸ÀÚµµ ÀÌ¿ëÇÒ¼ö ÀÖ½À´Ï´Ù. ´Ü, °ü·Ã À¥¾ð¾îÀÇ ÀÀ¿ëÇÁ·Î±×·¥À¸·Î ¸¹ÀÌ »ç¿ëÇϱ⠶§¹®¿¡ ±âº»¸í·É¾î¿Ü¿¡µµ c¾ð¾î, php °°Àº ÇÁ·Î±×·¥ Áö½ÄÀÌ ÇнÀµÇ¾î ÀÖ´Ù¸é ´õ ¼Õ½±°Ô MYSQL ¼³Ä¡ºÎÅÍ »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. ȨÆäÀÌÁö³ª ¼îÇθô µî ÀϹÝÀûÀÎ À¥°³¹ß¿¡ ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ¾î °ü·Ã °³¹ßÀ» ¿øÇϴºеéÀÌ MYSQL°ÀÇ ¸¦ ÀÌ¿ëÇϸé ÁÁ½À´Ï´Ù.ÇнÀ±â°£ : 2°³¿ù/°ÀǼö : 20°/ÁøÇà½Ã°£ : 19½Ã°£ 35ºÐ/¼ö°·á :
270,000¿ø165,000¿ø