Lombok이란?- 자바 프로그래밍 언어에서 반복되는 코드의 양을 줄이고 생산성을 높이기 위해 사용되는 라이브러리이다.Lombok의 기능ㆍ@Setter, @Getter : Java Bean 규약에 있는 setter, getter를 자동으로 생성해준다.ㆍ@ToString : Object에 기본 구현된 ToString 대신 객체의 데이터를 보여주는 ToString을 자동으로 생성해준다.ㆍ@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor : 객체 생성자를 자동으로 생성해준다.ㆍ@Data : Getter, Setter, ToString, Equals, hashCode 등 다양한 기능을 모두 제공해준다.ㆍ@Builder : 빌더 패턴을 자동 생성..
스트림(Stream)이란?- 배열, 컬렉션 등의 데이터를 하나씩 참조하여 코드를 실행할 수 있는 기능을 제공한다.- 람다식을 사용해서 간결하게 요소들을 다룰 수 있다.- 대량의 데이터를 병렬로 처리할 수 있다. 이를 통해 대량의 데이터에서 평균값, 최대값, 조건에 맞는 결과값, 통계 등을 쉽게 얻을 수 있다.- 데이터를 최종 처리하기 전에 여러 가지 중간 처리를 할 수 있다.- 스트림은 크게 3가지로 구성되며, 스트림 생성(원본 스트림) ▶ 중개 연산(필터링 스트림, 매핑 스트림) ▶ 최종 연산(최종 처리 스트림) 과정으로 구성되어 있다.스트림 종류- 자바에서 제공하는 스트림 클래스를 이용하면 여러 가지 데이터 소스에서 데이터 스트림으로 변환해서 일관성 있고 빠르게 처리할 수 있다.- 자주 사용되는 데..
람다식 (Lambda Expression)- 자바 8버전에서 처음 도입되었으며, 함수형 프로그래밍 스타일을 지원하는 표현식이다.- 익명 클래스를 더 간단하고 간결하게 작성할 수 있으며, 주로 추상 메소드가 하나만 있는 인터페이스와 함께 사용된다.- 메소드 대신 하나의 식으로 표현하며, 익명 함수 (Anonymous function) 이라고도 한다.- 코드가 간결해지고, 코드 가독성과 생산성이 높아진다는 장점을 지닌 반면, 재사용이 불가능하고 디버깅이 어렵고 재쉬함수로는 맞지 않다는 단점을 지니고 있다. 람다식 기본 문법- 자바에선 람다식을 익명 객체를 이용해서 구현하며, "->" 기호를 이용해서 객체 생성 없이 바로 추상 메소드를 함수처럼 구현한다.- 람다식 이전public abstract 리턴 타입 ..
컬렉션 프레임워크 (Collection Framework)- 여러 가지 자료 구조(Data Structure)를 쉽게 사용할 수 있도록 자바에서 미리 구현하여 제공하는 클래스를 말한다.- 대표적인 인터페이스로는 List 인터페이스, Set 인터페이스, Map 인터페이스 등이 있다. Map 계열 클래스- 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합이며, 이를 엔트리(entry)라고 한다. - 키는 중복을 허용하지 않으며, 하나의 키는 하나의 값과 연결된다.- key를 이용하여 저장한 값을 얻을 수 있다.- 대표적인 클래스로는 HashMap 클래스와 TreeMap 클래스 등이 있다. Map 인터페이스에 선언되어 있는 주요 메소드들- 모든 Map 인터페이스를 상속하는 Map 구현 클래스에 공..
컬렉션 프레임워크 (Collection Framework)- 여러 가지 자료 구조(Data Structure)를 쉽게 사용할 수 있도록 자바에서 미리 구현하여 제공하는 클래스를 말한다.- 대표적인 인터페이스로는 List 인터페이스, Set 인터페이스, Map 인터페이스 등이 있다. Collection 계열 클래스 Collection 인터페이스에 선언되어 있는 주요 메소드들- 모든 컬렉션 인터페이스에 공통적으로 존재하는 메소드이다.- Collection 인터페이스를 상속하는 클래스들은 추상 메소드를 활용하여 다양한 방식으로 데이터를 관리할 수 있다.추상 메소드설명 int size() 현재 컬렉션에 포함된 요소의 개수를 반환한다. boolean isEmpty() 현재 컬렉션이 비어 있는지 여부를 반환..
에러와 예외에러(Error)- 프로그램 실행 시 프로그램의 중요 기능 수행을 불가능하게 할 수 있는 문제를 의미한다.- 하드웨어나 운영체제의 치명적인 에러, 디도스 공격과 같은 상황을 말한다.- 에러를 해결한 후, 프로그램을 재실행해야 한다.예외(Exception)- 에러보다는 가벼운 문제를 말하며, 프로그램 자체적으로 문제 해결이 가능하다.- 개발자가 프로그램을 개발하고 충분히 테스트를 한 후, 배포를 하더라도 예상치 못한 버그(Bug)가 발생되는 경우도 해당된다.- 정상적이지 않는 케이스의 예 - 0 으로 숫자를 나누는 경우 - 배열의 인덱스를 초과하여 참조하고자 하는 경우 - 파일을 열 때, 없는 파일을 열려고 하는 경우예외 처리 목적- 예외가 발생하면 예외가 발생하면 예외가 발생한..