개발자 수업/Java
-
28. IO입출력개발자 수업/Java 2021. 10. 20. 17:56
1. 자바의 입출력을 위한 I/O 스트림 1) 입출력 스트림 - 네트워크에서 자료의 흐름이 물의 흐름과 같다는 비유에서 유래됨 - 자바는 다양한 입출력 장치에 독립적으로 일관성있는 입출력을 입출력 스트림을 통해 제공 - 입출력이 구현되는 곳 : 파일 디스크, 키보드, 마우스, 네트워크, 메모리 등 모든 자료가 입력되고 출력되는 곳 2) 입출력 스트림 구분 - 대상 기준 : 입력 스트림 / 출력 스트림 - 자료의 종류 : 바이트 스트림 / 문자 스트림 - 기능 : 기반 스트림 / 보조 스트림 2. 입력 스트림과 출력 스트림 1) 입력스트림 : 대상으로부터 자료를 읽어들이는 스트림 2) 출력스트림 : 대상으로 자료를 출력하는 스트림 3) 스트림 종류 - 입력스트림 : FileInputStream, FileR..
-
27. 예외처리개발자 수업/Java 2021. 10. 20. 14:36
1. 오류의 종류 1) 에러(Error) - 의도치 않게 프로그램이 종료되는 것을 에러라고 함 - 하드웨어의 잘못된 동작 또는 고장으로 인한 오류(ex 정전, 배드섹터 등) - 에러가 발생하면 프로그램이 비정상 종료가 됨 - 정상 실행 상태로 돌아갈 수가 없음 2) 예외(Exception) - 사용자의 잘못된 조작 또는 개발자의 잘못된 프로그래밍으로 인한 오류를 말함 - 예외가 발생하면 프로그램이 종료됨 - 단, 예외 처리를 추가하면 정상 실행 상태로 되돌릴 수가 있음 2. 프로그램에서의 예외(오류) 1) 컴파일 오류(compile error, checked exception) - 프로그램 코드 작성 중 발생하는 문법적 오류 - 예외 처리 코드가 없다면 컴파일 예외 발생 - eclipse, Intelli..
-
26. 스트림개발자 수업/Java 2021. 10. 19. 17:51
1. 스트림의 의미 1) 데이터 집합체를 반복적으로 처리 2) 스트림을 이용하면 다수의 스레드 코드를 구현하지 않아도 데이터를 병렬로 처리 3) 스트림은 스트림 데이터와 스트림 연산의 개념을 모두 포함 2. 컬렉션과 스트림 컬렉션 스트림 1) 처리방식 다운로드 스트리밍 2) 저장공간 필요 불필요 3) 반복방식 외부반복 내부반복 4) 코드구현 명령형 선언형 5) 원본데이터 변경 변경하지 않고 소비 6) 연산병렬화 어려움 쉬움 3. 스트림 특징 1) 자료의 대상과 관계없이 동일한 연산을 수행 배열, 컬렉션을 대상으로 연산을 수행함 2) 한번 생성하고 사용한 스트림은 재사용 할 수 없음 자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모됨 다른 연산을 수행하기 위해서는 스트림을 다시 생성해야 함 3)..
-
25. 람다식개발자 수업/Java 2021. 10. 19. 16:23
1. 프로그래밍 방법론 1) 절차식 프로그래밍 - 순차적인 명령을 수행하고 간단한 분기만 가능 2) 구조적 프로그래밍 - 특정 변수를 묶어 구조화하고 이를 통해 프로그래밍 효율 높임 3) 객체지향 프로그래밍 - 객체를 기반으로 프로그래밍 되며 클래스, 속성, 기능 등의 현실세계 모델을 반영함 4) 함수형 프로그래밍 - 객체의 형태를 벗어나 함수형을 확장해 함수를 변수처럼 사용 가능 2. 함수형 프로그래밍과 람다식(Lambda expression) 1) 자바는 OOP : 기능을 수행하기 위해 객체를 만들고 그 객체 내부에 멤버 변수를 선언해서 기능을 수행하는 메서드를 구현 2) 자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라 함 - 자바에서 람다식을 수용한 이유 - 코드가 매우 간결해짐 - ..
-
24. 내부클래스개발자 수업/Java 2021. 10. 19. 15:29
1. 내부 클래스란(inner class) 1) 클래스 내부에 선언한 클래스로 이 클래스를 감싸고 있는 외부 클래스와 밀접한 연관이 있는 경우가 많고 다른 외부 클래스에서 사용할 일이 거의 없는 경우에 내부 클래스로 선언해서 사용함 2) = 중첩 클래스라고도 함 3) 종류 - 인스턴스 내부 클래스 - 정적(static) 내부 클래스 - 지역(local) 내부 클래스 - 익명(anonymous) 내부 클래스 2. 인스턴스 내부 클래스 1) 내부적으로 사용할 클래스를 선언(private 선언하는 것을 권장) 2) 외부 클래스가 생성된 후 생성됨(정적 내부 클래스와는 다름) 3) private이 아닌 내부 클래스는 다른 외부 클래스에서 생성할 수 있음 4) 내부 클래스의 객체 생성 외부클래스.내부클래스 참조변..
-
23. UML개발자 수업/Java 2021. 10. 18. 18:56
1. 객체지향 분석 1) 무엇을 만들 것인가를 추상화하는 과정 2) 요구사항으로부터 문제를 만들어가는 과정 2. 분석 vs 설계 1) 분석은 발견하는 것이고 설계는 발명하는 것임 2) 분석은 문제를 만들어가는 것이고 설계는 해답을 만들어가는 것임 3. 모델링(코드를 만들어내기 위한) 1) 주어진 서술에서 추상적인 모델을 정의하고 최종적으로 코드를 만들어 내기 위한 장치 2) 우리가 만들 소프트웨어는 어떠한 모습을 지니게 되는가 3) 완성된 소프트웨어가 어떻게 작동하게 될 것인가 4) 어떠한 과정을 통해서 소프트웨어를 개발할 것인가 --> 일종의 청사진이 필요함(UML : Unified Modeling Language) 4. 모델링을 하는 이유 1) 프로그램 개발을 좀 더 쉽게 이해하기 위해 2) 개발하거..
-
22. Review개발자 수업/Java 2021. 10. 18. 18:26
1. 객체지향 프로그래밍 1) 추상화(abstraction)와 일반화 - 어떤 영역에서 필요로 하는 속성이나 기능을 추출하는 작업 - 데이터를 구조화하고 표현하는 방법에 대한 추상화 - 처리 과정에 대한 추상화 - 추상화의 의도는 단순화이며 일반화의 의도는 공통점을 뽑아내는 것 2) 캡슐화(encapsulation) - 데이터를 감싸서 외부에서 사용 가능한 부분만 제공(information hiding) - 사용하는 코드(클라이언트 코드)가 세부적인 사항을 알 필요가 없음 - 단순한 접근을 제공하여 오류가 생길 부분을 감소화 - UML - (private) 나만 볼 수 있는 것(같은 클래스 내부에서만 접근 가능) # (protected) 같은 패키지나 부모와 자식에게만 접근 가능(상속관계의 클래스만 접근..
-
21. 컬렉션 프레임워크개발자 수업/Java 2021. 10. 14. 20:38
1. 자료(Data)와 자료구조(Data Structure) 1) 자료(데이터)를 어디에 어떻게 관리할지 - 검색, 순회(iterate), 저장, 삭제, 변경 ... 2) 데이터의 형태와 쓰임에 가장 적합한 자료구조를 사용하는 것이 매우 중요 3) 자료의 효율적인 관리는 프로그램의 수행속도와 밀접한 관련이 있음 2. 자료구조 종류 1) 한 줄로 자료를 관리하기 (선형 자료구조) - 배열(Array) - 연결리스트(LinkedList) - 스택(Stack) - 큐(Queue) 2) 트리(tree) 3) 그래프(graph) 4) 해싱(hashing) 3. 배열(Array) 구현 1) 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 2) 정해진 크기가 있음 3) 배열의 i번째 요소를 찾는 인덱스 연산이 ..