목록전체 글 (227)
컴퓨터공학 💻 도서관📚

try-catch 문try 블록에는 예외가 발생할 가능성이 있는 코드를 작성하고 try 블록 안에서 예외가 발생하는 경우 catch 블록이 수행됨(try블록에서 예외가 발생하는 경우 catch블록으로 넘어오는데, 넘어온다고 해서 시스템이 종료가 되는 건 아니다.catch블록을 쭉 수행을 하고 그 뒤로 수행은 그대로 진행이 된다.)(예외가 발생하는 경우 예외를 catch 해서 catch블록에서 어떤 일들을 하는데 대부분 catch블록에서 로그를 남긴다.)(만약에 try-catch문으로 예외처리를 안 하면 그냥 코드가 죽어버린다, 실행이 종료된다. --> 일종의 방탄복?)프로그래머가 예외를 처리해줘야 하는 예 (배열의 오류 처리)public class ArrayExceptionHandling { publi..

프로그램에서의 오류컴파일 오류(compile error)프로그램 코드 작성 중 발생하는 문법적 오류최근에는 개발 환경(eclipse)에서 대부분의 컴파일 오류는 detection 됨실행 오류(runtime error)실행 중인 프로그램이 의도 하지 않은 동작(bug)을 하거나 프로그램이 중지 되는 오류실행 오류는 비정상 종료가 되는 경우 시스템의 심각한 장애를 발생할 수 있음예외 처리의 중요성프로그램의 비정상 종료를 피하여 시스템이 원할이 실행되도록 함실행 오류가 발생한 경우 오류의 과정을 재현하는 것은 현실적으로 힘들다오류가 발생한 경우 log를 남겨서 추후 log 분석을 통해 그 원인을 파악하여 bug를 수정하는 것이 중요(이 강의에서는 자바유틸에서 기본적으로 제공하는 로거를 사용해 볼 거임)(스프링..
문제 정의// 요런 문제에 스트림을 활용하면 좋다는 예시여행사에 패키지 여행 상품이 있습니다. 여행 비용은 15세 이상은 100만원, 그 미만은 50만원 입니다. 고객 세 명이 패키지 여행을 떠난다고 했을 때 비용 계산과 고객 명단 검색등에 대한 연산을 스트림을 활용하여 구현해 봅니다.고객에 대한 클래스를 만들고 ArrayList로 고객을 관리 합니다. 고객 정보는 다음과 같습니다.CustomerLee 이름 : 이순신나이 : 40비용 : 100CustomerKim이름 : 김유신나이 : 20 비용 : 100CustomerHong이름 : 홍길동나이 :13비용 : 50고객 클래스public class TravelCustomer { private String name; //이름 private int age;..
reduce() 는 Stream의 메서드이고 최종연산이다. 스트림에 대해서 하고 싶은 특정 연산을 직접 정의할 수 있는 연산을 알아보자reduce() 연산정의된 연산이 아닌 프로그래머가 직접 구현한 연산을 적용T reduce(T identify, BinaryOperator accumulator)// 배열의 모든 요소의 합을 구하는 reduce() 연산 구현 예Arrays.stream(arr).reduce(0, (a,b)->a+b)); // 람다식을 넣은 경우 : add 함수 구현1번째 매개변수는 기본값 , 2번째는 BinaryOperator 라는 인터페이스를 구현한 부분인데 이 부분은 람다식을 직접 쓸 수도 있고 여기에 쓸 람다식이 좀 길때는 BinaryOperator를 implement한 클래스..
스트림 이란?자료의 대상과 관계없이 동일한 연산을 수행배열, 컬렉션을 대상으로 연산을 수행 함일관성 있는 연산으로 자료의 처리를 쉽고 간단하게 함자료 처리에 대한 추상화가 구현되었다고 함컬렉션을 보면 스트림이라는 메서드를 호출할 수 있다.한 번 생성하고 사용한 스트림은 재사용 할 수 없음자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모됨다른 연산을 수행하기 위해서는 스트림을 다시 생성해야 함스트림 연산은 기존 자료를 변경하지 않음자료에 대한 스트림을 생성하면 스트림이 사용하는 메모리 공간은 별도로 생성되므로 연산이 수행되도 기존 자료에 대한 변경은 발생하지 않음 , 즉, 스트림은 기존 자료와는 다른 메모리를 쓴다.스트림 연산은 중간 연산과 최종 연산으로 구분 됨스트림에 대해 중간 연산은 여러..
객체 지향 프로그래밍과 람다식 비교문자열 두 개를 연결하여 출력하는 예제를 두 가지 방식으로 구현해 보자2개의 스트링을 연결해주는 인터페이스 선언public interface StringConcat { public void makeString(String s1, String s2);} 객체 지향 프로그래밍으로 구현하기 : 인터페이스를 구현한 클래스를 만들고 클래스의 메서드를 호출해서 사용하는 방법// 인터페이스를 구현한 클래스public class StringConCatImpl implements StringConcat{ @Override public void makeString(String s1, String s2) { System.out.println( s1 + "," + s2 ); }}//..

함수형 인터페이스 선언하기람다식을 선언하기 위한 인터페이스익명 함수와 매개 변수만으로 구현되므로 인터페이스는 단 하나의 메서드만을 선언해야 한다(익명함수이므로 메서드가 2개 이상 있으면 어느 인터페이스를 구현했는지가 모호해지기 때문이다.)@FunctionalInterface 애노테이션(annotation)함수형 인터페이스라는 의미, 내부에 여러 개의 메서드를 선언하면 에러남@FunctionalTnterface // @FunctionalInterface 애노테이션public interface Add { public int add(Int x, int y);}람다식 구현과 호출 (두 수를 비교하는 코드)@FunctionalInterfacepublic interface MyNumber { int ge..