안녕
-
자바 네트워크(3) / 숫자 야구 게임프로그래밍/JAVA 자바 2021. 9. 9.
서버 코드 package netObj; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Random; import java.util.Vector; public class GameServer { private Vector client = new Vector(); private ServerSocket ss = null; private int port = 8000; private int guess; public static void main(String[] ar..
-
자바 네트워크(2.5) / UDP카테고리 없음 2021. 9. 9.
TCP/IP가 양방향 통신이라면 UDP는 그냥 일방적으로 한쪽에서 상대가 받든 말든 계속 쏘는 것 TCP와 UDP의 차이점 - 신뢰성 보장 힘듬 - 데이터 손실 여부 있음 - 패킷을 관리 해야함 - TCP보다 전송 속도는 빠름 자바에서 UDP 통신을 하려면 위의 DatagramPacket 클래스와 DatagramSocket 클래스를 사용해야 한다. 주고 받을 데이터와 관련된 클래스는 = DatagramPacket 실제 데이터의 전송과 관련된 클래스는 = DatagramSocket UDP 서버 코드 package udpEx; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import jav..
-
자바 네트워크(1) URL, 소켓 ,TCP/IP프로그래밍/JAVA 자바 2021. 9. 7.
package netEx; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.InetAddress; public class Ex001_InetAddress { public static void main(String[] args) { // www.naver.com 같은 주소를 치면 아이피를 알아 낼 수 있음. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String host = null; try { System.out.print("호스트명[www.naver.com 또는 컴 이름] ? "); host = br.readLine()..
-
자바 UI swing / 버튼 추가 해보기 JFrame프로그래밍/JAVA 자바 2021. 9. 7.
package swingEx; import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Ex001 extends JFrame { private static final long serialVersionUID = 1L; private JButton btn1, btn2, btn3, btn4; private JLabel lbl; public Ex001() { // x 버튼으로 프로그램을 종료 가능하도록 설정 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 기본적으로 JFrame는 BorderLayout을 ..
-
스레드(3) Timer 클래스 / wait프로그래밍/JAVA 자바 2021. 9. 7.
package threadEx2; import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class Ex001_Timer { public static void main(String[] args) { new MyTimer(); } } class MyTimer { public MyTimer() { // TimerTask : 타이머에 의해 1회 또는 반복 실행하도록 태스크되는 스케줄 TimerTask task = new TimerTask() { @Override public void run() { printTimes(); } }; // Timer : 스케줄 // 단점 : ..
-
Thread 스레드 (2) / synchronized프로그래밍/JAVA 자바 2021. 9. 6.
synchronized = 동기화 스레드간 동기화를 하지 않고, 멀티 스레드를 돌리면 안정성과 신뢰성이 바닥이다. 그렇다고 synchronized를 너무 많이 쓰면 프로그램의 성능 저하가 일어난다. synchronized 란? 여러개의 스레드가 한개의 자원을 사용할때 현재 사용되고 있는 스레드를 제외하고, 나머지 스레드들은 데이터에 접근 할 수 없도록 막는 개념 package threadEx2; public class Ex002_Synchronized { public static void main(String[] args) { MyBank2 b = new MyBank2(); Thread t1 = new Thread(b); Thread t2 = new Thread(b); t1.start(); t2.star..
-
프로세스, 쓰레드 Thread프로그래밍/JAVA 자바 2021. 9. 5.
간단히 말하자면 동작하고 있는 프로그램 => 프로세스 프로세스는 보통 한개의 작업을 함. 그러나 쓰레드를 이용하면 하나의 프로세스에서 두가지 이상의 일을 동시에 할 수 있음. 멀티 태스킹 생각하면 이해가 쉬움 ex) 밥을 먹으면서 핸드폰을 하는 행위도 쓰레드라 볼 수 있음. 스레드 클래스를 상속 받기 package threadEx; public class Ex001_Thread { public static void main(String[] args) { MyThread1 t = new MyThread1(); t.start(); // 스레드 시작 try { for(int i=1; i
-
데이터베이스 모델링 / 정규화(정규형)프로그래밍/DBMS 2021. 9. 2.
모델링이란 단순하게 말하자면 데이터베이스에 들어갈 내용들을 시각적으로 즉 눈으로 보기 편하게 하기 위해서 하는 것 모델링을 통해 복잡한 데이터들을 추상화 - 현실세계를 일정한 형식에 맞춰 표현 단순화 - 현실세계를 약속된 규약에 의한 표기법이나 언어로 표현해서 좀 더 이해하기 쉽게 명확화 - 누구나 이해하기 쉽게 애매모호한 것들을 제거 를 해야한다. 쉽게 말하자면 일반인한테도 이러이러해서~ 뭘 할거에요~ 설명했을때 이해 할 수 있도록 DB를 풀어서 표현하는거라 보면 된다. 모델링의 3가지 종류 ! 개념적 모델링 쉽게 말하자면 ER 다이어그램을 그려서 눈으로 보기 편하게 한다는것 예를 들면 이런식으로 다이어그램으로 표시하면 한눈에 뭘 하고자 하는지 알 수 있다. 논리적 모델링 ER다이어그램을 사용해서 관계..