본문 바로가기
728x90

전체 글240

[JAVA] 13 - 1 제네릭 13.1. 제네릭이란? 클래스의 인터페이스, 메소드를 정의할 때, 타입(type)을 파라미터로 사용할 수 있도록 해준다. JAVA 5 부터 생겼다. public T genericMethod(T genericTypeObject) 13.2. 제네릭을 사용하는 이유 13.2.1. 컴파일 시 강한 타입 체크가 가능하다. 컴파일 시에 미리 타입을 강하게 체크하여 에러를 사전에 방지할 수 있다. 13.2.2. 타입 변환(casting)을 제거한다. 제네릭 이전 List list = new ArrayList(); list.add("hello"); String str = (String) list.get(0); // 타입 변환이 필요하다. 제네릭 이후 List list = new ArrayList(); list.add(.. 2022. 3. 22.
[JAVA] 12 - 3 스레드(작업 완료 통보 방법) 12.24. 스레드풀 스레드의 블로킹 방식 작업 완료 통보 ExecutorService의 .submit() 메소드는 스레드 작업으로 준 Runnable 혹은 Callable 작업을 스레드 풀의 작업 큐에 저장하고 즉시 Future 객체를 반환한다. Future submit(Runnable task) Future submit(Runnable task, V result) Future submit(Callable task) 12.24.1. Future 객체 Future 객체는 단순히 작업 결과를 받는 것이 아니라 작업이 완료될 때까지 기다렸다가 최종 결과를 얻는데 사용된다. Future를 지연 완료(pending completion) 객체라고도 한다. 12.24.2. Future.get() Future의 .g.. 2022. 3. 22.
[JAVA] 12 - 2 스레드(스레드 상태 제어, 스레드 종료, 스레드 그룹, 스레드풀 생성, 스레드풀 작업 생성 및 처리) 12.13. 스레드 상태 제어 이전엔 스레드 상태에 대해 알아봤는데, 해당 스레드 상태를 제어하는 메소드에 대해 알아보자. 12.13.1. 메소드와 상태 다이어그램 취소선으로 표기된 메소드는 Deprecated 메소드들이다. 12.14. Thread 내부 상태제어 메소드 12.14.1. interrupt() 일시 정지 상태의 스레드에서 InterruptedException 예외를 발생시켜 예외처리 코드에서 실행 대기 상태로 가거나 종료 상태로 갈 수 있도록 한다. 12.14.2. sleep(long millis[, int nanos]) 주어진 시간 동안 스레드를 일시 정지 상태로 만든다. (TIMED_WAITING) 주어진 시간이 지나면 자동적으로 실행 대기 상태가 된다. 일시 정지 상태에서 주어진 시간.. 2022. 3. 22.
[JAVA] 12 - 1 스레드(프로세스와 스레드, 멀티 스레드, 동시성과 병렬성, 스케줄링, 스레드 이름, 동기화 메소드, 임계 영역, 스레드의 상태) 12.1. 프로세스와 스레드의 개념 실행중인 하나의 프로그램(애플리케이션)을 프로세스라고 한다. 하나의 애플리케이션이 다중 프로세스를 만들 수도 있다. 운영체제는 CPU및 메모리 자원을 프로세스마다 할당해주고 병렬로 실행시킨다. 이를 멀티 프로세싱이라고 한다. 스레드는 프로세스 내부의 코드 실행 흐름이다. 하나의 프로세스가 2개 이상의 작업을 처리하는 데에 필요한 것이 멀티 스레드이다. 2개 이상의 코드 실행 흐름을 이용해 프로세스가 병렬적으로 다양한 작업을 처리하게 만들 수 있다. 스레드(Thread)는 사전적 의미로 한 가닥의 실이란 뜻이다. 12.2. 멀티 프로세스와 멀티 스레드의 오류 처리 12.2.1. 멀티 프로세스 멀티 프로세스는 각 프로세스가 독립적이기 때문에 하나의 프로세스에 오류가 발생해.. 2022. 3. 21.
[ORACLE] 1. 오라클 데이터베이스 개념과 구조 데이터베이스란? 유용한 데이터의 집합 지속적으로 유지 관리해야 하는 데이터의 집합 데이터베이스에 저장된 정보는 검색,수정,삭제에 용이 일관성 : 동일성을 유지하기 위해 데이터 중복을 피함 보안성 : 동일한 수준에서 보안이 유지 경제성 : 저장되는 공간에 대한 비용 절감 무결성 : 데이터가 정확성을 유지 데이터베이스의 특징 실시간 접근성 : 다수의 사용자의 요구에 대해서 처리 시간이 몇초를 넘기지 말아야 한다. 지속적인 변화 : 데이터베이스에 저장된 데이터는 최신의 정보가 정확하게 저장되어 처리되어야 한다. 동시 공유 : 동일 데이터를 동시에 서로 다른 목적으로 사용할 수 있어야 한다. 내용에 대한 참조 : 데이터베이스 내에 있는 데이터 레코드들은 주소나 위치에 의해 참조되는것이 아니라 가지고 있는 값에 .. 2022. 3. 21.
[JAVA] 11 - 1 기본 API 클래스(Object, Objects) API란? Application Programming Interface의 약자이다. 컴포넌트들을 결합하기 위한 매개체 인터페이스이다. 호출을 위한 수단이다. 내부 구현을 볼 수 없는 경우도 많지만, 자바 내부의 표준 API들은 내부 구현을 볼 수 있다. API들은 경로 \jre\lib\rt.jar라는 압축 파일에 저장되어 있다. 자바 API 도큐먼트에서 API의 내용을 확인할 수 있다. API 클래스의 필드, 생성자, 메소드 등을 확인할 수 있다. java.lang 패키지 자바 프로그램의 기본적인 클래스를 담고 있는 패키지로 import 없이 사용할 수 있다. java.lang 대표 내장 클래스 Object 자바 클래스의 최상위 클래스로 사용 System 표준 입력 장치(키보드)로부터 데이터를 입력받을 .. 2022. 3. 21.
[JAVA] 10 - 2 예외 처리 컴파일시 일반 예외 vs 실행 예외 차이점 - 일반 예외가 발생할 가능성이 있는 코드는 빨간줄로 컴파일 에러를 발생시켜 예외처리 코드의 필요성을 알려줌 - 이 때 빨간 줄에 커서를 대면 Unhandled exception (처리되지 않은 예외)라고 뜬다. - 실행 예외는 컴파일러가 그냥 넘겨버려서 컴파일에러는 뜨지않으므로 개발자가 경험을 토대로 예외 처리 코드를 작성해야한다. 예외 처리 코드 구조 try { 예외 발생 가능성이 있는 코드 작성 } catch(예외클래스 e) { - 예외가 발생하지 않은 경우 : catch 블록은 실행되지 않음 - 예외가 발생한 경우 : 즉시 실행을 멈추고 catch 블록의 예외 처리 코드 실행한 후 finally 블록 실행 } finally { - 생략 가능한 구역 - 예.. 2022. 3. 21.
[JAVA] 10 - 1 예외 클래스 에러(error)와 예외(exception)의 차이 - 에러(error) : 응용프로그램 실행 오류가 발생하는것 - 예외(exception) : 개발자의 잘못된 코딩으로 인해 발생되는 프로그램 자체 오류 ( 컴파일 오류가 아니라 빨간 줄도 안나오는데 실제로 실행해보면 Exception~라고 뜨면서 프로그램이 종료되는 현상) - 공통점 : 에러든 예외든 한 번 발생이 되면 프로그램이 곧바로 종료됨 - 차이점 : 예외는 예외처리라는 것을 통해 프로그램이 종료되지 않고 정상 작동할 수 있도록 유지해준다. - 예외처리 : 코드를 보면 아무 이상이 없어 보이지만 실제로 실행해보면 논리적인 오류가 있음을 사용자가 인지하도록 오류를 명시해주는 행위 대표적인 예외 발생 예시 - 분모가 0일때 나눗셈 발생되는 오류의 종.. 2022. 3. 21.
[JAVA] 09 - 2 익명 객체 익명 객체란 ? - 말 그대로 이름이 없는 객체이다. - 보통 우리는 클래스를 생성하고 여러 곳에서 그 클래스를 가지고 객체를 만든다. - new 연산자를 통해 클래스이름으로 생성자를 호출하는 방법을 사용한다. - 여기서 우리는 여러 곳에서 사용하지 않고 오로지 특정 위치에서만 사용하고 싶을 때가 있다. - 그 한 번의 사용을 위해 굳이 클래스를 만들어 사용하는 것은 귀찮은 일이다. - 이럴 때 우리는 익명 객체를 사용하여 클래스를 명시적으로 선언하지 않고 바로 객체를 생성할 수 있다. - 인터페이스를 구현할 때도 익명 객체 생성 가능 일반적인(명시적으로 선언) 객체 생성 방법과 익명 자식 객체 생성 방법의 차이점 - 명시적인으로 객체 생성 방법 class Parent {} // 부모 클래스 생성 cla.. 2022. 3. 21.
728x90