본문 바로가기

Web & Mobile102

Lecture 37 - Java(16) UDP소켓프로그래밍, Enums(열거형), 제네릭스(Generics) UDP 소켓 프로그래밍 TCP소켓 프로그래밍에서는 Socket과 ServerSocket을 사용하지만, UDP소켓 프로그래밍에서는 DatagramSocket과 DatagramPacket을 사용한다. UDP는 연결지향적인 프로토콜이 아니기 때문에 ServerSocket이 필요하지 않다. UDP통신에서 사용하는 소켓은 DatagramSocket이며 데이터를 DatagramPacket에 담아서 전송한다. DatagramPacket은 헤더와 데이터로 구성되어 있으며, 헤더에는 DatagramPacket을 수신할 호스트의 정보(호스트의 주소와 포트)가 저장되어 있다. 소포(packet)에 수신할 상대편의 주소를 적어서 보내는 거소가 같다고 이해하면 된다. 그래서 DatagramPacket을 전송하면 Datagram.. 2023. 6. 20.
Lecture 36 - Java(15) 채팅프로그램 SearchZipcodeEx01.SearchZipcodeServerEx01 package SearchZipcodeEx01; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.net.ServerSocket; import java.net.Socket; import java.sql.Connection; import java.sql.DriverManager; import java... 2023. 6. 20.
Lecture 35 - Java(14) URLEncode, Decode, JSON Library, socket, tcpserver, tcpclient URLEncodeEx01 - Encoding, Decoding import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; public class URLEncodeEx01 { public static void main(String[] args) { //String original = "[Java Solution : 홍길동]"; String original = "홍길동"; String encodeStr; String decodeStr; try { encodeStr = URLEncoder.encode(original, "utf-8"); decodeStr = URLDecoder.decode(.. 2023. 6. 20.
Lecture 34 - Java(13) 프로세스, 쓰레드, 멀티태스킹, 멀티쓰레딩, Network, Client, Server, URL 프로세스 실행 중인 프로그램 => 데이터(메모리공간) + CPU 할당 foreground process 전면 프로세스 화면동시에 지금 실행하고 있는 프로세스 응용프로그램 background process 후면 프로세스 화면없이 실행되고 있는 프로세스 서비스 / 서버류 멀티 프로세스(멀티 태스킹 - Windows) 프로세스 - 쓰레드(작업단위)로 구성 프로세스와 쓰레드 프로세스(process)란 간단히 말해서 '실행 중인 프로그램(program)'이다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드이.. 2023. 6. 20.
Lecture 33 - JSP(2) 우편번호검색, DatabaseMetadata, Callable SearchZipcode 동이름(2글자 이상의 부분) 입력받아서 => 우편번호 리스트 출력 select ~ from zipcode where dong like '입력%' import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; public class SearchZipcode { public static void main(String[] args) { // 입력 한번만 // 1자 이하로 입력 에러 ... // 동만 ... 리 포함해서 검색 Scanner scan =.. 2023. 6. 20.
Lecture 32 - JSP(1) JDBC API 사용법(Java와 SQL 연동) Managed Language - 자바, C#, python Unmanaged Language - C, C++, asm managed의 뜻은 메모리 관리를 자동으로 하냐 직접 해주냐임 두 영역별 언어 1개씩은 할 줄 아는게 중요 JDBC JDBC 드라이버 가져오는 법 JDBC URL, 드라이브로딩, 커넥션 DML 처리 JDBCEx01 - 드라이버 로딩 법 public class JDBCEx01 { public static void main(String[] args) { // 드라이버 - 라이브러리 내의 클래스 try { Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("드라이버 로딩 성공"); } catch (ClassNotFou.. 2023. 6. 20.
Lecture 31 - Java(12) DataInputStream, DataOutputStream, PrintStream, System.in, out, err, Menu, RandomAccessFile, ObjectInputStream, ObjectOutputStream DataInputStream과 DataOutputStream : DataInputStream/DataOutputStream도 각각 FilterInputStream/FilterOutputStreamm의 자손이며 DataInputStream은 DataInput 인터페이스를, DataOutputStream은 DataOutput 인터페이스를 각각 구현하였기 때문에, 데이터를 읽고 쓰는데 있어서 byte단위가 아닌, 8가지 기본 자료형의 단위로 읽고 쓸 수 있다는 장점이 있다. DataOutputStream이 출력하는 형식은 각 기본 자료형 값을 16진수로 표현하여 저장한다. 예를 들어 int값을 출력한다면, 4byte의 16진수로 출력된다. DataOutputStreamEx01 - utf-8 방식으로 저장 im.. 2023. 6. 20.
Lecture 30 - Java(11) File, InputStream, OutputStream, 보조스트림, FileReader, ZipCode 검색 FileEx01 continued import java.io.File; import java.io.IOException; public class FileEx01 { public static void main(String[] args) { // File 생성 // 파일이나 디렉토리 경로를 통해서 생성 // 파일이나 디렉토리가 반드시 존재하지 않아도 객체 생성 가능하다 File f1 = new File("c:\\Java");// windows File f2 = new File("c:/Java");// linux / mac File f3 = new File("c:/Java/test.txt");// 파일명 File f4 = new File("c:/Java", "test.txt");// 경로, 파일명 // 경로명.. 2023. 6. 20.