본문 바로가기

개발

(15)
4. 라이브러리 활용 (7) 람다식 1. 람다식이란? 개념1, 개념2, 개념3, 예제1 1)람다식과 익명함수(anonymous function) - 람다식 : 메서드를 하나의 '식(Expression)'으로 표현한 것으로, 함수를 간략하면서도 명확하게 표현한다 - 익명함수 : 람다식은 함수의 이름이 없기때문에 익명 함수라고 한다 개념1 2) 특징 및 장점 - 람다식은 함수처럼 작성하지만, 실행시 익명구현 객체를 생성하는 방식으로 구동된다 - 람다식은 병렬처리, 이벤트 처리 등 함수적 프로그래밍에서 유용하게 쓰인다 - 람다식을 쓰지 않을 때보다 코드가 간결해진다 (기호 및 약속된 표현 사용) - 필터링 및 매핑시 집계결과를 쉽게 가져올 수 있다 (내장된 메서드를 사용할 수 있음) 3) 사용법 - 기본구조 : (인수리스트) -> { 명령문 R..
4. 라이브러리 활용 (6) 제네릭, 어노테이션 1. 제너릭(Generic) 개념1, 개념2, 개념3, 개념4 1) 제너릭이란? - 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 (변수 타입을 '구현할 때 결정'하는 것이 아니라 클래스 외부에서 '실행할 때' 동적으로 결정한다) - 변수 타입을 동적으로 사용하기 위해 선언 되는 , 를 타입 파라미터라고 한다 - '자바5'부터 도입되었으며, C++의 템플릿 클래스와 유사한 개념이다. (장점 : 타입 안정성, 간결해지는 코드) 2) 선언 및 사용법 예제1, 예제2 - 클래스 정의: 클래스 이름 - 변수 정의: T 변수 이름 - 제네릭이 정의된 클래스 생성: 클래스 이름 3) 조건 지정 개념1 - 특정 클래스를 상속하는 타입만 조건으로 지정: 클래스 이름 4) 와일드 카드 개념1, 개념2, 예..
4. 라이브러리 활용 (5) 스레드(thread) 1. 스레드란? 개념1, 개념2, 개념3, 예제1 - 프로세스(process, 실행중인 프로그램)내에서 실제로 작업을 수행하는 주체를 말한다 - 경량 프로세스로서 동시에 여러개의 명령문들을 실행할 수 있다. - 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 2. 스레드 생성 개념1, 예제1 1) Thread 클래스 - 스레드 형태로 실행할 객체를 구현할 때 상속받는 객체 - 스레드로서 동작할 실행문은 run( ) 메소드에 구현한다 - run( ) 메소드 실행: 객체 생성 후 start( ) 메소드를 호출 2) Runnable 인터페이스 - 스레드 형태로 실행할 객체를 구현할 때 상속받는 객체 - 스레드로서 동작할 실행문은 run( )메소드에 구현한다 - run( ) 메소드를 실행하기..
4. 라이브러리 활용 (4) 입출력 1. 입출력(I/O) 이란? 개념1, 예제1 - 컴퓨터 내부 또는 외부의 장치와 프로그램간에 데이터를 주고받는 것 - 자바는 외부 데이터와 입출력(Input & Output) 작업을 할때 스트림을 사용한다 1) 스트림(stream) 개념1, 개념2 - 입출력(I/O)을 하기 위해 필요한 데이터 운반 연결 통로 - 연속적인 데이터의 흐름을 물(stream)에 비유해 붙혀진 이름이다. - 단방향통신만을 지원하기 때문에 입력과 출력을 동시에 수행해야 하는경우 두 개의 스트림이 필요하다. : 입력 스트림(input stream), 출력 스트림(output stream) - Queue 구조로 되어있다. (FIFO) 2) 입출력 API - JAVA API는 java.io 패키지에 외부 데이터를 입출력할 수 있는 A..
4. 라이브러리 활용 (3) 예외처리 - 예외API, Throws ** Error(에러)와 Exception(예외) : 1) 에러(Error)란? - 컴퓨터 하드웨어의 오동작/고장으로 인해 응용프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을때 발생하는 것 - 이 경우 개발자는 대처할 방법이 극히 제한적이다 2) 예외(Exception)란? - 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류 - 예외가 발생하면 프로그램이 종료가 된다는것은 에러와 동일하다. - 그러나, 예외는 예외처리(Exception Handling)을 통해 프로그램을 종료 되지 않고 정상적으로 작동되게 만들어줄 수 있다. 1. 자바 예외 API 1) 예외처리 객체구조 - throwable 예외 객체의 최상위 객체 - 모든 프로그램적인 오류 객체들은 Excepti..
4. 라이브러리 활용 (2) Collection API - List, Set, Map 1. 콜렉션(Collection) 개념1, 개념2, 개념3, 예제1, 예제2 1) 배열과 콜렉션은 다르다 : - 배열은 정해진 메모리 크기에 불가변한 데이터를 넣는다. 삭제와 추가가 불가능하다. - 컬렉션은 각 메모리에 주소가 있어서 주소를 이동하면서 데이터를 처리한다. - 가변하기 때문에 데이터의 삭제와 추가 및 변경이 가능하다. - 그래서 변하지 않는 데이터를 이용할때는 배열에 넣고, 가변하는 데이터는 컬렉션에 넣는다. 2) 콜렉션 프레임워크(Collection Framework) 개념1, 개념2, 개념3, 예제1, 응용 - 컬렉션들을 표현하고 조작하기 위한 통합 구조. 객체들은 자료 구조적 특성대로 알고리즘이 구현되어 바로 사용가능 - 특징 : 필요에 따라 확장가능하며, 객체만 포함한다.(프리미티브..
4. 라이브러리 활용 (1) API 활용 API(Application Programming Interface)란? - 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 - 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공 API 문서 설명1, 설명2, 연습1, 연습2 1)라이브러리 : 다양한 기능을 가진 코드들의 집합으로, 특정한 기능을 구현하여 제공하는 파일들을 말함 2)자바 API : 자바가 클래스 파일 형태로 제공하는 라이브러리를 자바API라고 한다. API보는법, 문서사용법 - java.io 외부데이터 입력, 출력 처리 - java.lang 프로그램 개발시 기본적으로 필요한 언어 (가장 기본이 되는 API가 모여있다. import 선언 없이 사용..
3. 언어특성활용 (3) 다형성, 내부클래스 1. 다형성 개념1, 개념2, 개념3, 예제1 1) 개념 : 상위 클래스가 동일한 메시지로 하위 클래스들을 서로 다르게 동작시키는 객체 지향 원리 - 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질 - 참조변수의 타입을 자신 또는 상속받는 상위 타입으로 선언 2) 원리 - 다형성이 가능한 이유는 객체 생성시 실제 상속받는 객체가 메모리에 저장되기 때문 - Object 클래스 : 모든 JAVA의 루트클래스, 자바의 모든 참조변수는 object타입으로 선언가능 개념1, 개념2 - 인스턴스 생성 : 메모리에 만들어져 있음 개념1, 예제 3) 필요성 - 다형성을 적용하여 매개변수 타입을 선언한 메소드는 자신뿐아니라 모든 하위객체를 인자로 받..
3. 언어특성활용 (2) 상속, 추상화, 인터페이스 목표 : 상속과 추상, 인터페이스를 활용 및 차이 알아보기 1. 상속 개념1, 개념2(영상), 개념3, 예제1, 예제2 1) 개념 : 유지보수성을 높이기 위해 객체지향을 활용하는데, 클래스 중복을 피하기 위해 나온 개념 (중복내용은 별도 클래스에 정의한 후 사용함) - 기존 클래스의 변수와 메소드를 물려 받아 새로운 클래스에 사용하여 더 나은, 더 구체적인 클래스 구성 - 조건 : 공통멤버를 가지는 클래스들간의 공통점이 있는지 확인, 클래스간에 is a 개념이 성립하는 경우 상속가능 - extends : 다른 클래스에 상속할 때 사용 2) 활용 (1) 메소드 오버라이딩 : 부모로부터 상속받은 메소드의 내용을 재정의 하는 것 - 규칙 : 상속받은 메소드 바디만 변경 / 선언부는 변경 불가 / 접근 제어자는..
3. 언어특성활용 (1) 객체 지향 구현 (Instance, Constructor) 목표 : 객체지향 프로그래밍 언어의 특징인 인스턴스와 생성자를 활용하여 어플리케이션을 최적화하기 1.인스턴스(Instance) 1) 개념 - 인스턴스란 설계된 클래스를 new 명령문으로 메모리에 생성한 대상이다. - oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 '인스턴스'라고 부른다. * 메모리에 객체를 선언할때 "new 클래스이름()" 으로 선언하며, 이때 생성된 객체를 인스턴스라 함 2) JVM 메모리의 구조 - JVM은 메모리를 3가지 영역으로 구분하는데, Code영역, Heap영역, Stack 영역이 있다. 코드영역 힙영역 스택영역 실행코드들이 사용하는 영역 멤버변수들이 사용하는 영역 지역변수들이 사용하는 영역 (1) 코드(code)영역 = 메소드(method) 영역 개념1, 개념2..