inflearn logo
강의

Course

Instructor

Real-World Java - Advanced Part 3, Lambda, Streams, and Functional Programming by Kim Young-han

Summary

함수형 프로그래밍 적용 범위/원칙

60

em k

3 asked

0

질문 1.

자바는 인터페이스와 클래스로 설계와 구현을 나눠 유지보수의 효율성을 높이는 언어인데, 함수형 프로그래밍은 언제 쓸까요?

 

실무에서 함수형을 적용하는 범위/원칙(불변, 부작용 분리 등)가 궁금합니다!

 

질문 2.

stream vs for-loop 선택 기준이 궁금합니다.

 

가독성을 위해서 또는 단순 변환 및 집계일 때 이외에도 스트림을 사용하는지, 성능적으로는 어떤 것이 더 좋은지 등도 궁금합니다.

 

java 함수형-프로그래밍

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. em k님.

자바의 함수형 프로그래밍 적용 범위/원칙, 스트림과 for-loop의 선택 기준에 대해 궁금해 하셨군요. 각각의 주제에 대해 요약하여 설명드리겠습니다.

  1. 함수형 프로그래밍 적용 범위/원칙

    • 불변성: 함수형 프로그래밍에서는 데이터의 불변성을 유지하여 예측 가능성을 높이고, 동시성 문제를 예방합니다. 이를 통해 함수가 동일한 입력에 대해 항상 동일한 출력을 보장합니다.

    • 부작용 제거: 사이드 이펙트를 최소화하여 함수가 외부 상태를 변경하지 않도록 합니다. 이는 디버깅을 쉽게 하고, 코드의 안전성을 높입니다.

    • 적용 범위: 실무에서 함수형 프로그래밍은 데이터 변환, 필터링, 집계 등 순수함수로 정의될 수 있는 부분에 자주 사용됩니다. 복잡한 비즈니스 로직보다는 데이터 처리를 중점적으로 적용하게 됩니다.

  2. 스트림 vs for-loop 선택 기준

    • 가독성: 스트림은 선언적 스타일로 코드의 의도를 더 명확하게 표현할 수 있으며, 데이터 파이프라인을 작성하기에 용이합니다. 이는 특히 반복적인 데이터 처리 로직에서의 가독성을 개선시킵니다.

    • 성능: 스트림 API는 병렬 처리를 통해 성능을 최적화할 수 있는 장점이 있지만, 모든 상황에서 스트림이 더 빠른 것은 아닙니다. 특히 단순한 반복 작업에서는 for-loop가 더 효율적일 수 있습니다.

    • 사용 시기: 데이터 변환, 필터링 등에서는 스트림을 사용하고, 간단한 증가 또는 반복 작업에서는 for-loop를 사용하는 것이 직관적일 수 있습니다.

유사한 주제를 다루는 기존의 게시물을 통해 더 많은 통찰을 얻으실 수 있습니다:

이 링크에서 함수형 인터페이스의 실무 활용에 대한 더 많은 인사이트를 얻으실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

db sql vs java stream 비교 궁금증 알려주세요!

1

70

1

파라미터 구분이 안되는지..?

0

69

1

자바 21 버전을 꼭 써야하나요??

0

143

2

9. 스트림 API3-컬렉터 오타?

0

78

2

(추석 챌린지) 복습 정리내용

0

94

1

람다 궁금한 점

0

73

2

스트림과 for문 질문

0

42

1

디폴트 메서드를 사용한 리펙토링

0

51

1

실무에서의 커스텀 Collector 사례 여부

0

64

1

IntelliJ 한글 깨지는 현상 문의

0

200

1

스트림에 대해서 질문(float)은 사용하는지

0

56

1

[자료 패키지 누락] 2.람다 자료에서 문제 패키지명 생략 (25page)

0

60

2

지연 평가

0

68

1

메서드 시그니처

0

100

3

고급편 우선순위

0

129

3

스프링 데이터 JPA 인터페이스에서의 default 메서드 사용

0

112

2

독립적인 스레드 할당 시 스레드 개수는 어떻게 할당해야 할까요?

0

87

1

병렬 프레임 병목 현상 해결책에 대해 궁금한 점

0

102

1

스트림 중복 에러 관련 질문

0

69

1

자바 버전이 31 까지 업데이트 된다면 새로운 자바 강의를 추가 하실 건가요?

0

132

1

임계값과 스레드수를 줄일 경우 교착상태가 발생할수 있는건가요?

0

101

2

변수 합치기에 대해서 질문드립니다!

0

82

2

flatMap 응용 방법에 대해서, 이렇게 하는게 맞는지?

0

123

1

선생님께 질문드립니다!

0

96

1