본문 바로가기

Java13

Java - 입출력(I/O) 입출력의 기본 개념 I/O Package 프로그램에서 데이터를 외부에서 읽고 다시 외부로 출력하는 작업이 번번히 일어남 자바에서 데이터는 스트림 (데이터 흐름, 연결 통로)을 통해 입출력 데이터의 흐름 또는 연결 통로 스트림은 단일 방향 (출발지 → 도착지)으로 연속적으로 흘러감 입력 스트림과 출력 스트림 프로그램이 출발지냐 또는 도착지냐에 따라 스트림 종류가 결정됨 항상 프로그램을 기준으로 데이터가 들어오면 입력 스트림이고 데이터가 나가면 출력 스트림 스트림은 단방향이므로 하나의 스트림으로 입력과 출력을 모두 할 수 없음 입력 스트림 프로그램이 데이터를 입력받을 때 키보드, 파일, 네트워크상의 프로그램에서 입력될 수 있음 출력 스트림 프로그램이 데이터를 보낼 때 모니터, 파일, 네트워크상에서 출력되어 .. 2022. 11. 18.
Java - Stream 스트림 (Stream) 함수형 프로그래밍 함수형 프로그래밍의 특징 수학적 함수의 계산을 통해 자료를 처리하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임 Java 8부터 Optional과 람다식과 같은 함수형 프로그래밍과 비동기 논블로킹의 기능 도입 비동기 논블로킹 A 함수가 B 함수를 호출할 경우 A 함수는 그대로 실행이되고 B 함수 실행 완료가 되면 콜백함수를 전달하는 형태 A 함수가 B 함수가 제대로 끝났는지 유무는 신경쓰지 않음 ex) 사용자 이벤트 처리, 네트워크 응답 처리, 파일 입출력 병렬 처리, 이벤트 지향 프로그래밍에 적합 함수형 프로그래밍이 주목받기 시작한 이유 2000년대 초반까지는 CPU 클럭 증가, 실행 시간 최적화, Cache 크기 증가를 통해 소프트웨어의 싱글 프로세스, .. 2022. 11. 18.
Java - 예외 처리, 로그 예외 처리는 왜 해야 하나? 프로그램에서의 오류 컴파일 오류(compile error) 프로그램 코드 작성 중 발생하는 문법적 오류 최근에는 개발 환경(eclipse)에서 대부분의 컴파일 오류는 detection 됨 실행 오류(runtime error) 실행 중인 프로그램이 의도 하지 않은 동작(bug)을 하거나 프로그램이 중지 되는 오류 실행 오류는 비정상 종료가 되는 경우 시스템의 심각한 장애를 발생할 수 있음 예외 처리의 중요성 프로그램의 비정상 종료를 피하여 시스템이 원할이 실행되도록 함 실행 오류가 발생한 경우 오류의 과정을 재현하는 것은 현실적으로 힘들다 오류가 발생한 경우 log를 남겨서 추후 log 분석을 통해 그 원인을 파악하여 bug를 수정하는 것이 중요 오류와 예외 클래스 시스템 오류.. 2022. 11. 17.
Java - 제네릭, 컬렉션 제네릭(Generic) 프로그래밍 제네릭 자료형 정의 클래스에서 사용하는 변수의 자료형이 여러개 일수 있고, 그 기능(메서드)은 동일한 경우 클래스의 자료형을 특정하지 않고 추후 해당 클래스를 사용할 때 지정 할 수 있도록 선언 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식 컬렉션 프레임워크에서 많이 사용되고 있음 예시 public class GenericPrinter { private T material; public void setMaterial(T material) { this.material = material; } public T getMaterial() { return material; } public String toString(){ return mater.. 2022. 11. 17.