Java & SpringBoot로 시작하는 웹프로그래밍_4주차

김지현·2021년 11월 28일
0

4주차 강의는 Java 코딩 테스트 및 함수형 프로그래밍에 많이 사용되는 람다식 및 스트림 방식에 대해서 학습을 하였습니다. 최대한 긴 코드를 줄 일 수 있게 해주고, 병렬 프로그래밍 동작을 도와주는 코드를 작성하기 위해 사용된다는 것은 알았으나, 자세히는 접하지 못해서 익숙하지 않았지만, 실습을 통해서 이해도를 높일 수 있었습니다. 아래는 기본적인 개념입니다.

함수형 프로그래밍이란?

매개 변수만을 사용하도록 만든 함수로 외부 자료에 부수적인 영향(side effect)가 발생하지 않도록 함.

입력 받은 자료를 기반으로 수행되고 외부에 영향을 미치지 않으므로 병렬 처리등에 안정적인 확장성 있는 프로그래밍 방식

람다식

람다식 문법
1)매개 변수 하나인 경우 괄호 생략 가능 (두 개인 경우는 괄호를 생략할 수 없음)

str->{System.out.println(str);}

2) 중괄호 안의 구현부가 한 문장인 경우 중괄호 생략

str->System.out.println(str);

3) 중괄호 안의 구현부가 한 문장이라도 return 문은 중괄호를 생략할 수 없음.

str->return str.length(); // 오류

4) 중괄호 안의 구현부가 반환문 하나라면 return과 중괄호를 모두 생략할 수있음.

(x,y) -> x+y // 두 값을 더하여 반환
str->str.length() // 문자열 길이를 반환

스트림(stream)

자료의 대상과 관계없이 동일한 연산을 수행할 수 있는 기능(자료의 추상화)
배열, 컬렉션에 동일한 연산이 수행되어 일관성 있는 처리 가능
한번 생성하고 사용한 스트림은 재사용할 수 없음
스트림 연산은 기존 자료를 변경하지 않음
중간 연산과 최종 연산으로 구분 됨
최조 연산이 수행되어야 모든 연산이 적용되는 지연 연산

중간연산 -filter(), map()
조건에 맞는 요소를 추출(filter()) 하거나 요소를 변환함(map())

최종 연산
스트림의 자료를 소모 하면서 연산을 수행

forEach() : 요소를 하나씩 꺼내 옴
count() : 요소의 개수
sum() : 요소의 합

profile
아는것을 잘 설명하고 싶은 SW엔지니어

0개의 댓글