본문 바로가기
728x90
반응형

자바17

[day_02] DB / 03. JDBC (Java Database Connectivity) JDBC (Java Database Connectivity)란? → 자바 데이터베이스 프로그래밍 API → 자바 어플리케이션과 데이터베이스 연동을 위한 기술 : 자바 프로그램이 데이터베이스와 연결되어 데이터를 주고 받을 수 있게 해주는 "프로그래밍 인터페이스"이다. JDBC API Java 표준 제안자(Sun MicroSystems) : JDBC 명세(기준)를 제공한다 DB Vendor : JDBC 명세를 기준으로 JDBC API를 개발하여 배포한다 Java 응용 프로그램 개발자 : DB Vendor에서 배포한 JDBC API를 받아 JDBC 명세를 보고 프로그램을 작성한다 * java.sql library 설명링크 : https://docs.oracle.com/javase/8/docs/api/java/.. 2020. 8. 7.
CODE [day_02] DB / 02. JDBC - INSERT, DELETE INSERT SQL을 이용해 MEMBER TABLE에 회원정보 저장 SQL query INSERT INTO MEMBER(ID, PASSWORD, NAME, ADDRESS) VALUES('ebs','abcd','펭수','양재'); java code /TestJDBC3.java package step3; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; /* * INSERT SQL을 이용해 MEMBER TABLE에 회원정보 저장 */ public class TestJDBC3 { public static void main(String[] a.. 2020. 8. 7.
CODE [day_02] DB / 01. JDBC - SELECT, WHERE | Oracle DB 와 java 어플리케이션 연동 테스트 JDBC 프로그래밍 개발 단계 1. 데이터베이스 연동을 위한 jdbc driver loading 2. Connection 3. SQL 정의 후, PreparedStatement 생성 4. SQL 실행 executeQuery() 5. ResultSet : next(): boolean | getString() or getInt() 6. close Oracle DB와 연동하는 자바 어플리케이션 테스트 SELECT 구문을 실행해 결과를 조회하여 출력하는 예제 package step1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import .. 2020. 8. 6.
CODE [20.08.06/Day_21] Java SE / Chatting 서버, 클라이언트 구현 (IO, Thread, GUI, synchronized list) step5 채팅 서버 클라이언트 구현 (GUI 활용 + synchronized) Chatting Program의 UML 다수에 클라이언트에게 동시에 서비스(통신)를 제공해야 하기 때문에, 한 서버에서 Thread를 여러 개 생성해준다. → multi-Threading step4와 다른 점은 client에도 multi-Threading을 해준다는 점이다. 그 이유는, client끼리도 '서로 메세지를 주고 받고'기능 통신 서비스를 동시에 실행되어야 하기 때문이다. (다른 사람의 메세지도 보고, 나의 메세지도 뿌려주고 → broadcast() 함수로 구현) [ ChattingServer ] list → Client와 통신하는 객체를 리스트에 저장 다수의 스레드(serv.. 2020. 8. 5.
[20.08.05/Day_20] Java SE / Nested Class 중첩 클래스 Nested Class : 중첩 클래스 or Inner Claas → 클래스 안에 클래스를 정의 → 내부 클래스를 정의하는 이유는 Outer Class의 private member에 직접 접근해 사용할 수 있기 때문에 주로 쓴다. 사용 예제 //outer class class Outer{ private String password = "abcd"; //outer class에 inner class의 객체 생성 가능 public void outTest() { Inner in = new Inner(); in.innterTest(); } //inner class class Inner{ public void innterTest() { //Outer class의 private 변수에 직접 접근해 사용할 수 있음 S.. 2020. 8. 5.
CODE [20.08.05/Day_20] Java SE / Network 네트워크 | 다수의 클라이언트에서 메아리 서비스 구현 (멀티 스레드 활용) step4 다수의 클라이언트에게 지속적으로 메아리 서비스하는 서버 구축 다수의 클라이언트에게 지속적으로 서비스하기 위해서는 서버측에 멀티 스레드가 필요하다. 클라이언트가 접속할 때, 서버는 접속한 클라이언트에 대응되는 소켓을 accept()으로 반환받고, 클라이언트와 실제 통신할 ServerWorker Thread 생성 시에 생성자에 해당 소켓을 할당한다. 이렇게 ServerWorker Thread를 생성하고, start() 하는 역할까지가 MultiServer의 할일이다. ⇒ ServerWorker는 MultiServer내 while문에 삽입되어 작동하는 역할을 한다. [ 클라이언트 측 필요 클래스 ] 클라이언트는 step3의 Client를 그대로 사용해도 된다. (https://creamilk88.t.. 2020. 8. 5.
CODE [20.08.04/Day_19] Java SE / Network 네트워크 | 메아리 서버, 클라이언트 프로그램 구현 step3 메아리 서버, 클라이언트 구성 서버는 클라이언트가 보낸 메세지를 입력받아 자신의 콘솔에 출력하고, 다시 그 메세지를 클라이언트로 보내는 역할을 지속적으로 한다. 클라이언트는 스캐너로 콘솔에서 서버에 보낼 메세지를 입력받아 서버로 출력하고, 서버가 보낸 메세지를 다시 입력받아 자신의 콘솔에 출력하는 작업을 지속적으로 한다. 실행 예) Client Program 서버에 보낼 메세지 : 안녕 메아리 서버 (→enter) 서버에서 온 메세지 : 안녕 메아리 서버 *server* Server Program 12192.168.0.115 님이 입장하셨습니다. 12192.168.0.115 님 메세지 : 안녕 메아리 서버 Client Program : 스캐너로 입력받아 서버로 출력, 서버에서 보낸 메세지를 입.. 2020. 8. 4.
[20.08.04/Day_19] Java SE / Network 네트워크 ( Protocol 프로토콜 - TCP-IP & Port | Socket 소켓 ) [ Network 네트워크 ] java 기반의 TCP-IP Network Programming java.net 패키지에 주요 class들이 있다. Protocol 프로토콜 : 통신 규약(약속) TCP/IP : 인터넷 상의 통신 규약 TCP (Transmission Control Protocol) : 전송 제어 프로토콜 데이터 전달 보증 → 신뢰성이 높다. IP (Internet Protocol) : ip address(전화번호와 유사)로 호스트 주소 지정 * 자신의 ip는 cmd창에서 igconfig로 확인할 수 있다. ex) 나의 IP 주소 → 192.168.0.115 참고) DNS (Domain Name Service) : www.daum.net → ip와 연결되는 Domain name이다. Port.. 2020. 8. 4.
CODE [20.08.03/Day_18] Java SE / IO & Thread 스레드 | 파일 생성 및 이동 [ IO & Thread ] Interface /CommonInfo.java package step8; public interface CommonInfo { //public static final // MAKE_PATH : 파일을 생성하여 저장하는 directory String MAKE_PATH = "C:\\kosta203\\test\\repository"; // MUSIC_PATH : 위 경로에 저장된 파일 중 mp3 확장자를 가진 파일들만 이동시키는 directory String MUSIC_PATH = "C:\\kosta203\\test\\music"; // MOVIE_PATH : 위 경로에 저장된 파일 중 avi 확장자를 가진 파일들만 이동시키는 directory String MOVIE_PATH =.. 2020. 8. 3.
728x90
반응형