강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

em k님의 프로필 이미지
em k

작성한 질문수

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

정리

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

작성

·

10

0

질문 1.

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

 

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

 

질문 2.

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

 

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

 

답변 1

0

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

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

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

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

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

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

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

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

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

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

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

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

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

em k님의 프로필 이미지
em k

작성한 질문수

질문하기