Java 기반 TCP/IP 네트워크 프로그래밍 TCP Transmission Control Protocol 전송 제어 프로토콜 -> 데이터 전달 보증 IP Internet Protocol 각자 컴퓨터가 인터넷에 연결된 IP가 있습니다. PORT 포트, 서비스 번호(입구), 가상의 연결단위 80포트는 생략가능합니다. Socket 네트워크의 양끝 단위로서 통신을 위한 인터페이스를 의미합니다. 소켓은 뭐랄까... 포수에게 공을 던져지는 공 같다고 해야할까요... 뒤에서 더 자세하게 설명해보겠습니다. ServerSocket 서버에서 생성하는 서버 소켓 서버소켓은 포수라고 할 수 있겠습니다. 소켓을 받는 서버소켓입니다. 예시를 보면서 이해해볼까요? 예시 서버와 클라이언트 두개로 나눠서 예시를 들어보겠습니다. pa..
Thread란? Process 내부의 실행단위입니다. Process는 프로그램입니다. 크롬브라우저, 카카오톡, 이클립스, 곰플레이어 같은 프로그램이 Process 입니다. 사전적인 의미로는 실입니다. 여러 실들이 합쳐져서 옷이 만들어지는 것처럼 여러 스레드가 합쳐져서 하나의 Process를 만드는 것입니다. 예를 들어 동영상 플레이어 실행 Process가 있다고 하면 그 안에는 영상 Thread, 음향 Thread, 자막 Thread 가 동시에 실행되고 있는 것입니다. Thread 실행방법 1. extends Thread 단일 상속이라서 사용이 제한적입니다. 2. implements Runnable 다중 상속이 가능해서 implements Runnable 사용을 추천합니다. Thread 실행 원리 sta..
객체지향 언어에서 객체를 입출력하지 못한다면 참으로 안타까운 상황이 일어나겠죠. 하지만 이미 고슬링 형님은 알고 계셨습니다. 객체를 입출력 해야한다는 것을... 그래서 오늘은 객체의 입출력에 대해 알아봅시다. ObjectOutputStream(객체 직렬화) 객체 직렬화란 heap 메모리 상에 있는 객체를 외부로 전송할 수 있는 상태로 만드는 것입니다. ObjectInputStream(객체 역직렬화) 객체 역직렬화란 외부에 저장되어 있는 정보를 입력받아 heap 메모리 상의 객체로 만드는 것입니다. 역시 글은 너무 추상적이기 때문에 그림을 그려서 확인해봅시다. Heap 메모리에 있는 객체를 운영체제 위에 있는 Directory에 .obj 파일로 저장하는 과정을 그림으로 간단하게 표현한 것입니다. 이제 예제..
Java를 이용하여 운영체제 위에 있는 폴더와 파일에 접근하는 법을 알아보겠습니다. (아주 간단한 것들만 있으니 참고 부탁드립니다.) 더 많은 정보는 API 문서에 많습니다. https://docs.oracle.com/javase/7/docs/api/ File 사용자 인터페이스와 운영 체제는 시스템에 종속된 경로 이름 문자열을 사용하여 파일과 디렉터리의 이름을 지정합니다. 이 클래스는 계층적 경로 이름에 대한 추상적이고 시스템 독립적인 보기를 제공합니다. 추상 경로 이름에는 두 가지 구성 요소가 있습니다. Disk 드라이브 지정자, UNIX 루트 디렉터리의 경우 "/", 마이크로소프트 윈도우즈 UNC 경로 이름의 경우 "\\"와 같은 시스템 종속 접두사 문자열(선택 사항) 및 0개 이상의 문자열 이름 순..
Exception Handling 이란? 예외처리입니다. 예외 발생 시 적절한 대처 방안을 실행하고 프로그램이 정상 수행되게 하는 것을 말합니다. JVM이 프로그램 실행 중 Exception이 발생되면 즉시 프로그램 실행을 중단합니다. 프로그램 중단을 막기 위해 예외 처리를 해야합니다. 서버가 종료되면.... 안되잖아요. 실생활 예로 들면, 머리가 아프면 하던 일을 멈추고 두통약을 받아 복용합니다. 실명 인증서버에 장애 발생되면 메세지 창을 보여줘 잠시 후에 접속하도록 유도합니다. Try란? 예외 발생 예상 지점을 try를 이용해 감싸주어 예외가 발생하면 처리할 수 있게 합니다. Catch 란? 예외 처리 및 예외 발생 시 대처방안을 작성하는 곳입니다. 두개를 같이 사용해야 코드가 완성이 되기 때문에 개..
Map 이란? Map 인터페이스는 Collection(List, Set) 인터페이스와는 다른 저장 방식을 가집니다. Map 인터페이스를 구현한 Map 컬렉션 클래스들은 키와 값을 하나의 쌍으로 저장하는 방식(key-value 방식)을 사용합니다. 여기서 키(key)란 실질적인 값(value)을 찾기 위한 이름의 역할을 합니다. Key 값은 중복이 되지 않지만 value 값은 중복이 가능합니다. Map 의 종류 LinkedHashMap : 입력 순서 보장하는 Map TreeMap : 정렬 기능 내장 Map Java ApI documet에 가면 엄청나게 많은? 하위 class들이 있으니 확인해주세요 https://docs.oracle.com/javase/7/docs/api/ Map 함수 자주 사용하는 메소드..