전체 글

코딩 개발/Java

Java - Thread, Runnable

Thread란? Process 내부의 실행단위입니다. Process는 프로그램입니다. 크롬브라우저, 카카오톡, 이클립스, 곰플레이어 같은 프로그램이 Process 입니다. 사전적인 의미로는 실입니다. 여러 실들이 합쳐져서 옷이 만들어지는 것처럼 여러 스레드가 합쳐져서 하나의 Process를 만드는 것입니다. 예를 들어 동영상 플레이어 실행 Process가 있다고 하면 그 안에는 영상 Thread, 음향 Thread, 자막 Thread 가 동시에 실행되고 있는 것입니다. Thread 실행방법 1. extends Thread 단일 상속이라서 사용이 제한적입니다. 2. implements Runnable 다중 상속이 가능해서 implements Runnable 사용을 추천합니다. Thread 실행 원리 sta..

코딩 개발/Java

Java - ObjectInputStream & ObjectOutputStream

객체지향 언어에서 객체를 입출력하지 못한다면 참으로 안타까운 상황이 일어나겠죠. 하지만 이미 고슬링 형님은 알고 계셨습니다. 객체를 입출력 해야한다는 것을... 그래서 오늘은 객체의 입출력에 대해 알아봅시다. ObjectOutputStream(객체 직렬화) 객체 직렬화란 heap 메모리 상에 있는 객체를 외부로 전송할 수 있는 상태로 만드는 것입니다. ObjectInputStream(객체 역직렬화) 객체 역직렬화란 외부에 저장되어 있는 정보를 입력받아 heap 메모리 상의 객체로 만드는 것입니다. 역시 글은 너무 추상적이기 때문에 그림을 그려서 확인해봅시다. Heap 메모리에 있는 객체를 운영체제 위에 있는 Directory에 .obj 파일로 저장하는 과정을 그림으로 간단하게 표현한 것입니다. 이제 예제..

코딩 개발/Java

Java - File Class에 대한 간단한 예제

Java를 이용하여 운영체제 위에 있는 폴더와 파일에 접근하는 법을 알아보겠습니다. (아주 간단한 것들만 있으니 참고 부탁드립니다.) 더 많은 정보는 API 문서에 많습니다. https://docs.oracle.com/javase/7/docs/api/ File 사용자 인터페이스와 운영 체제는 시스템에 종속된 경로 이름 문자열을 사용하여 파일과 디렉터리의 이름을 지정합니다. 이 클래스는 계층적 경로 이름에 대한 추상적이고 시스템 독립적인 보기를 제공합니다. 추상 경로 이름에는 두 가지 구성 요소가 있습니다. Disk 드라이브 지정자, UNIX 루트 디렉터리의 경우 "/", 마이크로소프트 윈도우즈 UNC 경로 이름의 경우 "\\"와 같은 시스템 종속 접두사 문자열(선택 사항) 및 0개 이상의 문자열 이름 순..

코딩 개발/Java

Java - Exception handling (feat. try, catch, throw, throws)

Exception Handling 이란? 예외처리입니다. 예외 발생 시 적절한 대처 방안을 실행하고 프로그램이 정상 수행되게 하는 것을 말합니다. JVM이 프로그램 실행 중 Exception이 발생되면 즉시 프로그램 실행을 중단합니다. 프로그램 중단을 막기 위해 예외 처리를 해야합니다. 서버가 종료되면.... 안되잖아요. 실생활 예로 들면, 머리가 아프면 하던 일을 멈추고 두통약을 받아 복용합니다. 실명 인증서버에 장애 발생되면 메세지 창을 보여줘 잠시 후에 접속하도록 유도합니다. Try란? 예외 발생 예상 지점을 try를 이용해 감싸주어 예외가 발생하면 처리할 수 있게 합니다. Catch 란? 예외 처리 및 예외 발생 시 대처방안을 작성하는 곳입니다. 두개를 같이 사용해야 코드가 완성이 되기 때문에 개..

코딩 개발/Java

Java - Map

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 함수 자주 사용하는 메소드..

코딩 개발/Java

Java - Set, ArrayList

Set 이란? Set은 순서가 없는 고유한 요소의 목록입니다. Set 구현 Class Set 구현 클래스로는 HashSet, TreeSet, LinkedHashSet이 있습니다. HashSet : Set을 구현하는 대표 클래스로 데이터 중복할 수 없고 순서를 보장하지 않습니다. TreeSet : HashSet 특성에 오름차순으로 데이터를 정렬합니다. LinkedHashSet : 데이터를 중복해서 저장할 수 없고 입력한 순서대로 데이터를 저장합니다 Set의 예시 HashSet Set set = new HashSet(); set.add("apple"); set.add("banana"); set.add("orange"); System.out.println(set); //[banana, orange, apple..

호소세
호소세의 개발 블로그