IT수업/JAVA PART2 51

IT 수업 14주차 (60) socket_Thread 채팅

6개 클래스 만들어 준다. 서버와 클라이언트의 Receive와 Send 스레드에 implements Runnable을 추가해준다. 소캣연결이 되면 소캣을 던져주는 역할을 한다. - ClientRecvThread 클래스 - ServerRecvThread 클래스 - ServerSendThread 클래스 - ClientSendThread 클래스 - ServerSendThread 준비 동작을 위한 기본 코드를 준비한다. 그리고 동작하기 위한 코드도 작성한다. 각 클래스를 코딩해준다. - ServerMain 클래스 소켓을 받을 때는 무한으로 받지않고 하나씩 받는다. - ServerSendThread 클래스 - ServerRecvThread 클래스 - ClientMain 클래스 - ClientSendThread 클..

IT수업/JAVA PART2 2024.03.25

IT 수업 14주차 (59) Thread_임계영역

스레드 동기화를 하기 위해서는 임계영역(Critical section)과 락(Lock)이 필요하다. ● 임계영역 둘 이상의 스레드가 동시에 접근해서는 안되는 코드 영역을 말하며 하나의 스레드만이 코드를 실행할 수 있는 영역 즉, 두 개 이상의 스레드가 특정 자원을 공유하고 있을 때 한번에 하나의 스레드에게만 접근을 허용하는 영역 ● 락 임계영역을 포함하고 있는 객체에 접근할 수 있는 권한 먼저, synchronized 키워드를 통해 동시 접근이 가능한 영역을 임계영역으로 설정하여 동시 접근을 못하도록 설정한다. 이후 스레드가 임계 영역에 접근하게 되면 해당 스레드는 Lock을 얻게된다. 이후 해당 스레드가 Lock을 반납하기 이전에는 다른 스레드는 해당 임계영역에 접근하지 못하게 된다. - 메서드 전체를..

IT수업/JAVA PART2 2024.03.25

IT 수업 14주차 (58) Swing_Thread

- C03SwingThread 클래스, C03Worker1 클래스, C03Worker2 클래스를 만들고 시작한다. SwingThread 클래스에 btn1 인 왼쪽 시작 버튼을 눌렀을 때 출력되는 코드를 작성해본다. (수정 전 SwingThread클래스 코드 는 맨 밑에 있음) th1이 null이면 출력된다. 이렇게 코딩하면 시작버튼 눌렀을 때 콘솔창에 5번 출력된다. 콘솔창에 출력되는 것을 area1에 출력되도록 해본다. - SwingThread 클래스 - C03Worker1 클래스 area2에도 오른쪽 시작 버튼을 누르면 출력되도록 해본다. - SwingThread 클래스 - C03Worker2 클래스 중지버튼 누르면 중지 되는 것을 볼 수 있다. - SwingThread 클래스 - C03Worker1..

IT수업/JAVA PART2 2024.03.25

IT 수업 13주차 (57) 스레드 처리

worker1과 worker2의 클래스를 만들어 각각 만든 run()을 넣어주고 threadmain 클래스에서는 삭제해준다. unimplemented 누르면 어노테이션 생긴다. - Worker1에 스레드 추가 - Worker2에 스레드 추가 그리고 스레드메인 클래스로 돌아온다. 동시에 실행되는 것을 볼 수 있다. - 스레드 사용하기 마우스 우클릭으로 source에 들어가 override/implement methods로 들어가 run()을 체크해준다. 그리고 스레드를 작성해준다. 위의 코드와 똑같지만 로직에 전달하여 간단하게 만들 수 있다.

IT수업/JAVA PART2 2024.03.22

IT 수업 13주차 (57) 소켓 통신

●소켓 TCP/IP 기반 네트워크 통신에서 데이터 송수신의 마지막 접점 ● 소켓 통신 소켓을 통해 서버-클라이언트간 데이터를 주고받는 양방향 연결 지향성 통신이다. 소켓통신은 보통 지속적으로 연결을 유지하면서 실시간으로 데이터를 주고받아야 하는 경우에 사용한다. - 서버소켓 생성 ServerSocket serverSocket = new ServerSocket(8000); // 포트번호 - 클라이언트 접속 대기 Socket socket = serverSocket.accept( ); - 데이터 송수신을 위한 input/ouput 스트림 생성 InputStream in = socket.getInputStream( ); OutputStream out = socket.getOutputS..

IT수업/JAVA PART2 2024.03.22

IT 수업 13주차 (56) Swing을 DB에 연결

- INSERT 먼저 swing을 준비한다. ( 수정 전 전체 소스코드는 맨 밑에 있음) - DB_INSERT 버튼 클릭 - 테이블 만들기 - DB 연결하기 테이블이 만들어졌으면 자바와 연결시켜준다. 이전에 사용한 코드를 복사해왔다. 그리고 throw Exception 을 해준다. id열에 Auto Increment 체크 해준다. - actionPerformed 에 추가로 코딩하기 pstmt = conn.prepareStatement(""); 입력하고 try catch 클릭하면 된다. 그러면 자동으로 try catch가 나온다. DB를 확인하면 이렇게 값이 들어간 것을 확인 할 수 있다. - SELECT DB_SELECT 버튼을 누르면 성공했다는 표시가 뜨게된다. 기존에 넣은 데이터를 가..

IT수업/JAVA PART2 2024.03.22

IT 수업 13주차 (55) JDBC_트랜젝션

클래스를 만들어주고 모든인자와 getter, setter, toString을 만들어준다. *Student (오타) 그리고 main이 아닌 참조하는 곳에 코드를 작성해준다. (이전에 작성한 코드 긁어옴) Init도 만들어준다. 그리고 이전에 만든 try안의 코드를 긁어왔다. 그리고 값을 넣기 위한 코드를 작성한다. 만약 userid가 'ccc'가 아닌 'aaa'로 중복한다면 예외가 발생한다. 그러므로 예외를 해결해 볼것이다.

IT수업/JAVA PART2 2024.03.21

IT 수업 13주차 (54) JDBC 연결하기

● JDBC Java DataBase Connectivity의 약어로 Java와 DB 연결을 위한 표준 API이다. Java에서 DB를 연결하고, 그 안에 있는 데이터를 가져오기 위해서 사용한다. ● 주요클래스 및 인터페이스 - DriverManager : JDBC 드라이버 로드 - Connection : DB와 연결하기 위한 위한 인터페이스 - Statement / PreparedStatement / CallableStatement : SQL을 보내기 위한 통로 - Statement : SQL을 보내기 위한 통로로 인자가 없다. - PreparedStatement : Statement와 동일한데 차이점은 인자값으로 SQL을 받기 때문에 특정한 SQL에 대한 통로라고 생각하면 된다. - CallableS..

IT수업/JAVA PART2 2024.03.21

IT 수업 13주차 (53) 보조 스트림 In, Out _object

●object - 보조스트림 사용해서 Object 내보내기 클래스를 만들고 Source를 이용해 모든 인자들을 생성하고 getter setter, toString을 만들어 준다. 여기서 추가로 Board에 직렬화처리를 해준다. Board만 하면 상관없지만 다른 것도 있으면 구별해야하기 때문에 Board를 직렬화시켜 시리얼 번호를 부여한다. 바이너리 데이터로 들어가기 때문에 글씨가 깨지는 것처럼 보인다. - 보조스트림 사용해서 object 가져오기 역직렬화 작업을 해줄 것인데 Board로 받아오기 때문에 다운캐스팅 작업을 해줘야한다. 세번째 데이터가 없기 때문에 세번째 데이터를 출력하려하면 java.io.EOException 예외가 발생하는 것을 볼 수 있다. ※ java ..

IT수업/JAVA PART2 2024.03.21

IT 수업 13주차 (52) 보조 스트림 In, Out _ String, 개행처리, 자료형

● 보조스트림 다른 스트림과 연결이 되어 여러 편리한 기능을 제공한다. 단독으로는 사용이 불가하고 기본 입출력 소스와 함께 사용해야 한다. ● 성능향상 보조스트림 연결하기 InputStream is = ...; InputStreamReader reader = new InputStreamReader(is); BufferReader br = new BufferedReader(reader); ● 문자열 - 보조스트림 사용해서 문자열 내보내기 새로운 텍스트파일이 생기고 안에 해당 문자열이 들어가는 것을 볼 수 있다. - 보조스트림 사용해서 문자열 받아오기 보조스트림을 만들고 그냥 in.read하면 byte로 받아오지만 보조스트림을 사용한 rin.read를 하면 char 형식으로 받아오게 된다. ..

IT수업/JAVA PART2 2024.03.21