본문 바로가기
728x90
반응형

분류 전체보기336

Java(31) - 멀티스레드2 1. multi-threading 1) 여러 thread가 동시에 수행되는 프로그래밍. 여러 작업이 동시에 실행되는 효과. 2) thread는 각각 자신만의 작업 공간을 가짐 : context 3) 각 thread 사이에는 공유하는 자원이 있을 수 있음 (자바에서는 static instance) 4) 여러 thread가 자원을 공유하여 작업이 수행되는 경우 서로 자원을 차지하려는 race condition이 발생할수 있음. 5) 이렇게 여러 thread가 공유하는 자원 중 경쟁이 발생하는 부분을 critical section 이라함. 6) critical section에 대한 동기화(일종의 순차적 수행)를 구현하지 않으면 오류가 발생할수 있음. 2. Thread Status (스레드 상태) 3. join.. 2022. 1. 28.
Java(30) - review4 1. 중첩 클래스(nested class) 1) 클래스안에 또다른 클래스가 정의되는 것. 2) 특정 클래스를 자신의 클래스 내부적인 용도로만 사용. 3) 멤버로 존재하는 Innner 클래스 : 객체를 생성해야만 사용할 수 있는 형태. 4) static Innner 클래스 : Outer 클래스 객체 생성하지 않아도 Innner 클래스 접근 가능 5) 메서드 지역(local)안에 존재하는 Innner 클래스 - 로컬 변수처럼 인식 - 메서드 호출될때 생성되며 메소드가 종료될때 삭제 됨. 6) 익명 클래스 - 이름이 없는 클래스로 단 한번 임시적으로 사용하는 클래스로 유용 - 인터페이스, 클래스 모두 익명 클래스로 객체를 생성할수 있음. - 인터페이스 구현 없이 생성과 동시에 오버라이드 가능 - 익명 클래스 .. 2022. 1. 28.
Java(29) - 멀티스레드 1. 프로세스(process) 1) 프로그램 ------> 프로세스 실행 2) 프로그램이 실행되면 OS(Operating System)로 부터 메모리를 할당받아 프로세스 상태가 됨. 3) 하나의 프로그램이 여러 개의 프로세스를 만들기도 함. 2. 멀티 태스킹 (multi tasking) 1) 통상 두가지 이상의 작업을 동시에 처리하는 것을 칭함. 2) 구현 방법 - 멀티 프로세스 - 독립적 프로그램을 여러 번 실행하고 작업을 처리하는 것. - 멀티 스레드 - 하나의 프로그램을 실행하여, 내부적으로 여러가지 작업을 처리하는 것 ex) 카카오톡 - 채팅 스레드, 파일 전송 스레드 등... - 소프트웨어 병행 작업 처리를 위해 multi thread를 사용함. 3. 스레드 (thread) 1) 하나의 프로세스.. 2022. 1. 28.
Java(28) - IO입출력 1. 자바의 입출력을 위한 I/O 스트림 1) 입출력 스트림 - 네트워크에서 자료의 흐름이 물의 흐름과 같다는 비유에서 유래됨. - 자바는 다양한 입출력 장치에 독립적으로 일관성있는 입출력을 입출력 스트림을 통해 제공. - 입출력이 구현되는 곳 : 파일 디스크, 키보드, 마우스, 네트워크, 메모리 등 모든 자료가 입력되고 출력되는 곳. 2) 입출력 스트림 구분 - 대상 기준 : 입력 스트림 / 출력 스트림 - 자료의 종류 : 바이트 스트림 / 문자 스트림 - 기능 : 기반 스트림 / 보조 스트림 2. 입력 스트림과 출력 스트림 1) 입력스트림 : 대상으로부터 자료를 읽어들이는 스트림 2) 출력스트림 : 대상으로 자료를 출력하는 스트림 3) 스트림 종류 - 입스 : FileInputStream, FileR.. 2022. 1. 28.
Java(27) - 예외처리 1. 오류의 종류 1) 에러(Error) - 의도치 않게 프로그램이 종료되는 것을 에러라 함. - 하드웨어의 잘못된 동작 또는 고장으로 인한 오류(ex-정전, 배드섹터 등) - 에러가 발생하면 프로그램이 비정상 종료가 됨. - 정상 실행 상태로 돌아갈수가 없음. 2) 예외(Exception) - 사용자가 잘못된 조작 또는 개발자의 잘못된 프로그래밍으로 인한 오류를 말함. - 예외가 발생하면 프로그램이 종료됨. - 단, 예외 처리를 추가하면 정상 실행 상태로 되돌릴수가 있음. 2. 프로그램에서의 예외(오류) 1) 컴파일 오류 (compile error, checked exception) - 프로그램 코드 작성 중 발생하는 문법적 오류. - 예외 처리 코드가 없다면 컴파일 예외 발생함. - eclipse, .. 2022. 1. 28.
Java(26) - Stream 1. 스트림 의미 1) 데이터 집합체를 반복적으로 처리 2) 스트림을 이용하면 다수의 스레드 코드를 구현하지 않아도 데이터를 병렬로 처리 3) 스트림은 스트림 데이터와 스트림 연산의 개념을 모두 포함. 2. 컬렉션과 스트림 비교 컬렉션 스트림 1) 처리방식 다운로드 스트리밍 2) 저장공간 필요 불필요 3) 반복방식 외부반복 내부반복 4) 코드구현 명령형 선언형 5) 원본데이터 변경 변경하지 않고 소비 6) 연산병렬화 어려움 쉬움 3. 스트림 특징 1) 자료의 대상과 관계없이 동일한 연산을 수행 배열, 컬렉션을 대상으로 연산을 수행함 2) 한번 생성하고 사용한 스트림은 재사용 할 수 없음. 자료에 대한 스트림을 생성하여 연산을 수행하여 스트림은 소모됨. 다른 연산을 수행하기 위해서는 스트림을 다시 생성해야.. 2022. 1. 28.
Java(25) - 람다식 1. 프로그래밍 방법론 1) 절차식 프로그래밍 - 순차적인 명령을 수행하고 간단한 분기만 가능 2) 구조적 프로그래밍 - 특정 변수를 묶어 구조화하고 이를 통해 프로그래밍 효율 높임. 3) 객체지향 프로그래밍 - 객체를 기반으로 프로그래밍 되며 클래스, 속성, 기능등의 현실세계 모델을 반영함. 4) 함수형 프로그래밍 - 객체의 형태를 벗어나 함수형을 확장해 함수를 변수처럼 사용 가능. 2. 함수형 프로그래밍과 람다식(Lambda expression) 1) 자바는 OOP : 기능을 수행하기 위해서는 객체를 만들고 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드를 구현. 2) 자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라 함. - 자바에서 람다식을 수용한 이유 - 코드가 매우 간.. 2022. 1. 28.
Java(24) - 내부클래스 1. 내부 클래스란? (inner class) 1) 클래스 내부에 선언한 클래스로 이 클래스를 감싸고 있는 외부 클래스와 밀접한 연관이 있는 경우가 많고, 다른 외부 클래스에서 사용할 일이 거의 없는 경우에 내부 클래스로 선언해서 사용함. 2) = 중첩 클래스라고도 함. 3) 종류 - 인스턴트 내부 클래스 - 정적(static) 내부 클래스 - 지역(local) 내부 클래스 - 익명(anonymous) 내부 클래스 2. 인스턴트 내부 클래스 1) 내부적으로 사용할 클래스를 선언 (private 선언하는 것을 권장) 2) 외부 클래스가 생성된 후 생성됨 (정적 내부 클래스와 다름) 3) private이 아닌 내부 클래스는 다른 외부 클래스에서 생성할수 있음. 4) 내부 클래스의 객체 생성 외부클래스.내부클.. 2022. 1. 28.
Java(23) - UML 1. 객체지향 분석 1) 무엇을 만들 것인가를 추상화하는 과정 2) 요구사항으로부터 문제를 만들어가는 과정 2. 분석 vs 설계 1) 분석은 발견하는 것이고 설계는 발명하는 것임. 2) 분석은 문제를 만들어가는 것이고 설계는 해답을 만들어 가는 것임. 3. 모델링 (코드를 만들어내기 위함) 1) 주어진 서술에서 추상적인 모델을 정의하고 최종적으로 코드를 만들어 내기 위한 장치 2) 우리가 만들 소프트웨어는 어떠한 모습을 지니게 될까? 3) 완성된 소프트웨어가 어떻게 작동하게 될것인가? 4) 어떠한 과정을 통해서 소프트웨어를 개발할 것인가? ==> 일종의 청사진이 필요함 (UML : Unified Modelling Language) 4. 모델링을 하는 이유 1) 프로그램 개발을 좀 더 쉽게 이해하기 위해... 2022. 1. 28.
Java(22) - review3 1. 객체지향 프로그래밍 1) 추상화 (Abstraction)와 일반화 - 어떤 영역에서 필요로 하는 속성이나 기능을 추출하는 작업 - 데이터 구조, 표현방법에 대한 추상화 - 처리 과정에 대한 추상화 - 추상화의 의도는 단순화이며, 일반화의 의도는 공통점을 뽑아내는 것 2) 캡슐화 (Encapsulation) - 데이터를 감싸서 외부에서 사용 가능한 부분만 제공(information hiding) - 사용하는 코드(클라이언트 코드)가 세부적인 사항을 알 필요가 없음. - 단순한 접근을 제공하여 오류가 생길 부분을 감소화 - (private) 나만 볼수 있는 것, 같은 클래스 내부에서만 접근 가능 # (protected) 같은 패키지나 부모와 자식에게만 접근 가능 즉 상속관계의 클래스만 접근 가능 + (.. 2022. 1. 28.
728x90
반응형