간단한 1:1 채팅기능을 구현해보았다 이번에도 내 컴퓨터로 IP설정해서 테스트해봤다 Server import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class TcpChatServer { public static void main(String[] args) { ServerSocket server = null; Socket socket = null; try { server = new ServerSocket(7777); System.out.println("채팅서버 대기 중..."); socket = server.accept(); System.out.println("클라이언트와 연결되었습니다."); Se..
소켓이란? 두 호스트 간에 통신을 하기 위한 양 끝단(EndPoint)을 말한다 Server import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class TcpSocketServer { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(7777); Socket socket = server.accept(); TCP 소켓 통신을 하기 위해 ServerSocket 객체를 생성한다 포트번호를 매개변수로 사용했다 accep..
eclipse에서 properties파일을 열었는데 한글이 안 써지고 이상한 글자로 바뀐다 이런 현상을 인코딩 설정으로 해결해보겠다 상단에 Window 탭에서 Preferences로 들어간다 encoding으로 검색해 보면 여러 개가 뜨는데 여기서 General에 Content Types를 누른다 Text에서 Java Properties File을 누르면 맨 밑에 Default encoding 이 UTF-8이 아니다! 한글이 잘 보이려면 UTF-8로 바꿔주자 바꿨다면 Update 하고 Apply and Close 하면 된다 다시 글자를 써보면 잘 나오는 걸 볼 수 있다! 안되면 eclipse 재실행도 해보시길
제한된 타입 파라미터(Bounded Type Parameter) Generic을 이용한 타입에 대해 구체적으로 타입 제한할 경우에 사용 //제한타입과 그 자손타입들만 가능 와일드카드 ? 기호를 쓴다. 제너릭이 사용된 객체를 참조할 때 참조할 객체의 타입을 제한하기 위해 사용한다. 아직 결정되지 않은 타입을 위한 표기법 //모든 허용 가능한 타입이 가능 예시 1 Util2 클래스 안에 Generic 메서드를 만들었다. 를 써서 넘버 타입만 들어올 수 있도록 해주었다. 들어온 인자들은 Double타입으로 변환 후 값을 비교해서 1, 0, -1 중 하나의 값으로 리턴한다. class Util2 { public static int compare(T t1, T t2) { double v1 = t1.doubleVa..
클래스에 사용할 타입을 설계 시에 지정하지 않고 클래스를 사용할 때 지정하여 사용하는 기술 컴파일 시 잘못된 타입 사용을 체크하기 때문에 Type safety 코딩을 할 수 있다. 불필요한 타입변환을 하지 않아도 된다. 제너릭타입글자 T → Type K → Key V → Value E → Element Map 맵은 key와 value List 리스트는 element 이런 느낌이다. Generic 클래스 선언 방법 class 클래스명{ 제너릭타입글자 변수명;//변수선언에 제너릭을 사용하는 경우 제너릭타입글자 메서드명(){//반환값이 있는 메서드에 제너릭을 사용하는 경우 return 값; } } 예시 class MyGeneric { private T val; public T getVal() { return ..