학과 샘플강의

자바 네트워크 -총 13시간 31분 / 강의당평균 : 50분41초

알지오 2016. 11. 16. 09:19



자바 네트워크

전체 : 13시간 31분 / 강의당평균 : 50분41초

01 자바 IO
InputStream/OutputStream/Reader/Writer/FileInputStream/FileOutputStream/FileReader/FileWriter/ZipInputStream/ZipOutputStream
36분 
책갈피 : [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 Thread 기초와 데이터 반환 방법
Thread 기초/데이터 반환 방법/폴링 방식/콜백과 인스턴스 콜백/Callable Future ExecutorService
46분 
책갈피 : [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 자바네트워크 프로그래밍
IP to InetAddress/여러개의 InetAddress/로컬호스트의 InetAddress/InetAddress.getByAddress/CanonicalHostName/IPv4 IPv6인지 판단/InetAddress의 Equals
38분 
책갈피 : [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 URI/URL 객체를 이용한 데이터 처리 및 전송방식
URL 기초/URL을 이용한 데이터 처리01 - openStream/URL을 이용한 데이터 처리02 - openConnection/URL을 이용한 데이터 처리03 - getContent/URL을 이용한 데이터 Form데이터 전송 - Get/Post 방식
43분 
책갈피 : [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 URLConnection 기초
서버 데이터 가져오기/Http Header - ContentType 활용/Http Header - ContentLength를 활용한 Bin파일저장/Http Header - 래퍼 메소드와 Header 내용확인/서버로 데이터를 전송하여 확인
46분 
책갈피 : [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 TCP 자바네트워크 통신1
TCP 네트웍 통신 기초/서버 전송, 클라이언트 수신/스레드 개선/서버 수신, 클라이언트 전송/Reader/Writer 개선
39분 
책갈피 : [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 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사용)
1시간 13분 
책갈피 : [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 TCP 자바네트워크 통신3
Web서버 소스코드 설명 및 실행/HTTP 통신방식/JHTTP main 메소드/RequestProssessor
1시간 1분 
책갈피 : [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 UDP 통신1
UDP 통신 기초 이론UDP Daytime Client 예제 및 실행/UDP Discard서버/UDP Discard클라이언트 및 실행/UDP Echo서버-UDPServer/UDP Echo서버-UDPEchoServer
1시간 7분 
책갈피 : [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 UDP 통신2
Echo 클라이언트 클래스/UDPRequest 로직/UDPEchoClient 메인 함수 부분/UDPEchoClient의 SenderThread 로직/UDP 에코 클라이언트 - ReceivedThread 설명/UDP 파일 전송 서버 예제/UDP 파일 수신 클라이언트 예제 및 실행/UDP 파일 목록 조회 서버 예제/UDP 파일 목록 조회 클라이언트 예제
57분 
책갈피 : [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 UDP 통신3
UDP 파일 목록 조회 클라이언트 예제/UDP 다중 로직 클라이언트/파일 목록 조회/파일 다운로드
59분 
책갈피 : [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 Swing1
Swing Hello world 예제, 레이아웃 설명/FlowLayout 실습/BorderLayout 실습/GridLayout, MixLayout 실습/Swing 컴포넌트 : TextField, Button Event처리/체크박스/파일선택 Dialog/파일선택 Dialog with FileFilter/자바 I/O Reader with Swing
55분 
책갈피 : [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 Swing2
Java I/O File Reader 개선/Java I/O File Writer 개선/Long Work를 Inline으로 처리/Long Work를 Thread로 처리/Long Work를 중간에 중지하기
1시간 8분 
책갈피 : [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 Swing3
Swing worker를 이용하지 않았을 경우/Swing worker를 이용한 경우/Swing worker 진행률처리 설명 및 예제/Swing worker 진행률처리(취소) 예제/Swing Worker를 이용하지 않은 파일 복사 예제/Swing Worker를 이용한 파일 복사 예제/Swing Worker를 이용한 파일 복사 진행률 표현 예제
54분 
책갈피 : [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] 주의깊게 살펴볼 점/[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 JTable
배열을 사용한 예제/Vector를 사용한 예제/Csv파일 Import 기능/export 기능
34분 
책갈피 : [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] 캐리지 리턴, 라인 피드/[33:01] return true/[33:18] 실행, 결과 확인/[34:12] 파일 저장 여부 확인

16 NIO
NIO를 이용한 문자생성기 클라이언트(Blocking 방식)/NIO를 이용한 문자생성기 클라이언트(Non-Blocking 방식)/NIO를 이용한 문자생성기 서버/NIO를 이용한 에코서버
35분 
책갈피 : [00:00] nio를 이용한 문자발생기 예제/[00:12] 문자발생기 이미지 확인/[00:14] 아스키코드/[00:22] nio를 이용한 클라이언트 예제/[00:58] 클라이언트 살펴보기/[01:34] new inetsocketaddress()/[02:04] open()/[02:42] bytebuffer/[03:33] 캐리지 리턴, 라인 피드/[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] 실행, 결과 확인


샘플확인 : 알지오 검색후 -> 강의검색란 -> 자바 네트워크