목록JAVA (11)
빙응의 공부 블로그
📝Stream API에 대한 이해 JAVA는 객체지향 언어(명령형 프로그래밍)이기 때문에 기본적으로 함수형 프로그래밍이 불가능하다. 하지만 JDK8부터 함수형 프로그래밍을 위한 Stream API, 람다식, 함수형 인터페이스 등을 지원하고 있다. Stream API 데이터를 추상화하고, 처리하는데 자주 사용되는 함수들을 정의 예를 들어보자 우리는 리스트에서 짝수 값을 찾아 제곱하여 출력하는 것을 만든다고 하자. 일반 코드 List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 짝수만 필터링하여 제곱 값 출력 List result = new ArrayList(); for (int n : numbers) { if (n % 2 == 0) { resul..
Optional에 대해 공부하는 중 Stream과 연계해서 사용하는 것을 보았다. 궁금해! 📝함수형 프로그래밍에 대한 이해 먼저 Stream API를 이해하기 위해서는 함수형 프로그래밍에 대해 이해해야 한다. 프로그래밍 패러다임 프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할 지 결정하는 역할을 한다. 패러다임은 크게 아래와 같이 구분한다. 명령형 프로그래밍: 무엇(What)을 할 것인지 나타내기 보다 어떻게(How)할 건지를 설명하는 방식 절차지향 프로그래밍: 수행되어야 할 순차적인 처리 과정을 포함하는 방식 객체지향 프로그래밍: 객체들의 집합으로 프로그램의 상호작용을 표현 선언형 프로그래밍: 어떻게(How)를 나타내기보다 무엇(What)을 할 건지를 설명하는 방..
📝 JAVA 8 Optional 자바 옵셔널은 자바 8에서 최초로 도입 되었다. 그 이유는 바로 NULL 때문이다. 프로그래밍을 하다보면 NULL 처리를 필수적으로 하게 된다. 기존에는 NULL 체크를 해서 NULL이 아닌 경우 뒤의 로직으로 넘어가게 분기처리를 하는 형태로 작업을 진행하였다. 이러한 NULL 처리를 하기 위해 Optional을 사용한다. 📝Optional 이란? 존재할 수도 있지만 안할 수도 있는 객체를 의미한다. NULL이 될 수도 있는 객체를 감싸고 있는 일종의 래퍼 클래스 기존엔 객체를 직접 NULL인지 체크 했지만 Optional에 담아서 쓰면 NULL을 다루기 좋아진다. void main() { House house = houseService.getRandomHouse(); i..

📝 JAVA Collections Framework(JCF) JAVA에서 컬렉션이란 데이터의 집합, 그룹을 의미한다. JCF는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다. Collection 인터페이스는 크게 List, Set, Queue로 크게 3가지 상위 인터페이스로 분류할 수 있다. 여기서 Map은 Collection을 상속받지 않지만 Collection으로 분류된다. 인터페이스 구현클래스 특징 Set HashSet TreeSet 순서를 유지하지 않는 데이터의 집합으로 데이터 중복을 허용하지 않는다. List LinkedList Vector ArrayList 순서가 있는 데이터의 집합으로 데이터의 중복이 허용된다. Queue LinkedList Prio..
분명 자바를 주로하고 있지만 인터넷에서 찾아보는 코드들에는 제네릭 클래스들이 들어있어 조금 당황스러울 때가 있다. 분명 자바에 대해서 배웠는데 뭐지? 라는 생각을 하였는데, 아마 시간 없어서 교수님이 안하신것 같다. 이게 맞나? 그래서 다시 공부해보려한다. 1. 기초 제네릭 클래스(자료구조형 기반) 2. 제네릭 선언 3. 컬렉션 4. 버퍼 5. 로그 평소 자바에서 부족하다고 생각한 부분을 공부할 것 이다! 📝 제네릭 왜 써야할까? 크게 2가지 이유가 있다. 타입 안정성 제네릭은 컴파일 시점에서 타입을 확정한다. 코드 실행 중에 발생하는 타입 관련 오류를 미연 방지할 수 있다. 추가로 컬렉션 클래스(List, Set, Map)와 같은 컨테이너 클래스에서 특정한 타입의 요소를 다룰 때 편리하다. // 제네릭..