본문 바로가기

전체 글

(141)
Oracle 설치 받은 파일 : OracleXE112_Win64.zip 오라클 11ver 구버전이지만 용량 제일 작음 오라클을 이용한 SQL 시간이라 상관없음 Express Edition : 교육용버전 cf) 컴퓨터 이름은 반드시 영문, 폴더명도 영문 권장, 한글이면 접근못하는 경우 많음 중복설치, 한번에 여러개 제거 -> 디스크 망가짐 한번에 1개씩 ※ sys(system) 계정 = 관리자계정. 높은 버전에서는 비밀번호 자릿수 많아야함 ※ Port for 'Oracle Database Listener': 1521 일반접속 내 컴퓨터에서 1521 포트번호 열고 기다리는 작업 = 오라클이 실행되는 작업 Port for 'Oracle HTTP Listener': 8080 웹에서 8080 포트번호 열고 기다리는 작업 C:\or..
서버 멀티 스레드 ※ 클라이언트 별 메인에 의해 서버사이드에 소켓 만들어지고, 새로운 스레드 시작 각각 스레드는 소켓과 연결된 스트림을 통해 데이터 주고받는 구조 초록색 새로운 스레드가 할 일 → 메인스레드 1개 새로운 스레드 3개 생성되서 서버에는 총 4개의 스레드 package com.my.tcp.server; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.BindException; import java.net.InetA..
네트워크 예제 3 package com.my.tcp.server; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.BindException; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; class ReceiveForClientMultiThread extends Thread{ private Socket s; privat..
네트워크 예제 2 package com.my.tcp.server; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.BindException; import java.net.ServerSocket; import java.net.Socket; public class ServerTest { public static void main(String[] args) { int port = 5432; // 포트번호 정하기, 0~1024는 예약..
네트워크 예제 1 SocketException : 접속은 됐었는데 그 이후에 소켓이 망가진 것 ConnectException : 아예 접속이 안됨 서버의 소켓 망가져서 클라이언트 소켓도 망가진것을 확인할 수 있음
네트워크 ※ 네트워크(network)는 여러 컴퓨터들을 통신 회선으로 연결한 것 LAN(Local Area Network)은 가정, 회사, 건물, 특정 영역에 존재하는 컴퓨터를 연결한 것 WAN(Wide Area Network)은 LAN을 연결한 것. WAN이 우리가 흔히 말하는 인터넷(Internet) ※ 네트워크에서 유무선으로 컴퓨터가 연결되어 있다면 실제로 데이터를 주고 받는 행위는 프로그램들이 한다. 서비스를 제공하는 프로그램을 일반적으로 서버(server)라고 부르고, 서비스를 요청하는 프로그램을 클라이언트(client)라고 부른다. 서버는 서비스를 하는쪽, 클라이언트는 서비스를 요구하는 쪽 ※ IP(Internet Protocol) 주소 건물주소, Port 건물에 들어가있는 각 사무실 1호 2호 3호 ..
스레드 안전 종료 스레드를 강제 종료시키기 위해 Thread는 stop() 메소드를 제공하고 있으나 이 메소드는 deprecated(더 이상 사용하지 않음) 되었다. stop메서드 사용 권장 X, 스레드를 안전하게 종료하는 방법은 사용하던 리소스들을 정리하고 run() 메소드를 빨리 종료하는 것이다. 아래 예제는 메인 스레드에서 3초 후에 stop 필드값을 true로 설정해서 PrintThread를 종료한다. package ch14.sec07.exam01; public class PrintThread extends Thread { private boolean stop; public void setStop(boolean stop) { this.stop = stop; } @Override public void run() { ..
스레드 동기화 멀티 스레드는 하나의 객체를 공유해서 작업할 수도 있다. 이 경우, 다른 스레드에 의해 객체 내부 데이터가 쉽게 변경될 수 있기 때문에 의도했던 것과는 다른 결과가 나올 수 있다. ↓ : 시간의 흐름 시간의 흐름상 그림은 50이 출력, 내가 의도한 것과 다른 결과가 나올 수 있다 User1Thread는 Calculator 객체의 memory 필드에 100을 먼저 저장하고 2초간 일시 정지 상태가 된다. 그동안 User2Thread가 memory 필드값을 50으로 변경한다. 2초가 지나 User1Thread가 다시 실행상태가 되어 memory 필드의 값을 출력하면 User2Thread가 저장한 50이 나온다. User1Thread에 저장된 데이터가 날아가버림. 스레드가 사용 중인 객체를 다른 스레드가 변경..