[함수형 사고] 7장 실용적 사고

2019. 3. 13. 14:30·개념/함수형사고

함수형 프로그래밍에 필요한 사고방식을 위해 이제까지 많은 추상적인 예제들을 사용했습니다. 이제 이를 실제로 적용하기 위한 방법을 알아보겠습니다.


자바8

자바8부터 등장한 스트림은 함수형 프로그래밍을 위한 기능을 제공합니다. 스트림을 이용하여 작업을 처리하면 collect()나 forEach() 같은 출력을 발생시키는 함수를 사용하기 전까지 map, reduce, filter 같은 함수들을 조합할 수 있습니다. 그리고 함수형 인터페이스와 옵셔널 클래스를 이용하여 함수형 프로그래밍을 구성할 수 있습니다.


함수형 인프라스트럭쳐

함수형 아키텍처는 불변성이 그 중심에 있습니다. 불변 클래스는 데이터의 변화로 인한 개발자의 걱정을 없애줍니다. 불변 클래스는 생성 시에만 변화가 있기 때문에 테스트가 간다하고, 스레드에 안전하기 때문에 멀티 스레딩 환경에서 동기화에 문제가 없습니다.


자바 클래스를 불변형으로 만드는 방법은 다음과 같습니다.

  • 모든 필드를 final로 선언한다.
  • 클래스를 final 로 선언해서 오버라이드를 방지한다.
  • 인수가 없는 생성자를 제공하지 않는다.
  • 적어도 하나의 생성자를 제공한다.
  • 생성자 외에는 변이 메서드(setter)를 제공하지 않는다.


반응형
저작자표시 비영리 (새창열림)

'개념 > 함수형사고' 카테고리의 다른 글

[함수형 사고] 8장 폴리글랏과 폴리패러다임  (0) 2019.03.13
[함수형 사고] 6장 전진하라  (0) 2019.03.13
[함수형 사고] 5장 진화하라  (0) 2019.03.12
[함수형 사고] 4장 열심히보다는 현명하게  (0) 2019.03.11
[함수형 사고] 3장 양도하라  (0) 2019.03.08
'개념/함수형사고' 카테고리의 다른 글
  • [함수형 사고] 8장 폴리글랏과 폴리패러다임
  • [함수형 사고] 6장 전진하라
  • [함수형 사고] 5장 진화하라
  • [함수형 사고] 4장 열심히보다는 현명하게
hs_seo
hs_seo
Hello World!
    반응형
  • hs_seo
    개발자로 살아남기
    hs_seo
  • 전체
    오늘
    어제
    • 전체 (1140)
      • 개발자 (21)
        • 개발에 유의할 점 (0)
        • 면접 (5)
      • IT 소식 (5)
        • 업계 (1)
      • java (51)
        • 디자인패턴 (3)
        • apache-common (1)
      • 개념 (47)
        • 자료구조 (4)
        • 함수형사고 (8)
        • 디자인패턴 (1)
      • 데이터분석 (1)
      • python (67)
        • 코드조각 (12)
        • 라이브러리 (2)
      • 빅데이터 (418)
        • zookeeper (5)
        • hadoop (78)
        • hdfs (12)
        • hive (127)
        • hbase (16)
        • spark (40)
        • scala (4)
        • trino (3)
        • oozie (41)
        • Hue (9)
        • R (5)
        • sqoop (6)
        • flume (3)
        • elasticsearch (2)
        • airflow (16)
        • kafka (3)
        • kubernetes (10)
        • openstack (3)
        • flink (2)
        • redis (2)
      • 빅데이터 강좌 (2)
      • 알고리즘 (131)
        • 알고리즘 (1)
        • 백준 (61)
        • 정올 (41)
        • 더블릿 (5)
        • 프로그래머스 (1)
      • 프로그래밍 언어 (30)
        • go (4)
        • js (9)
        • .Net (6)
        • Jsp (1)
        • ansible (3)
        • terraform (6)
      • Tools (56)
        • docker (2)
        • macbook (6)
        • maven (3)
        • sublime (1)
      • 프레임워크 (25)
        • [JS] angularjs (2)
        • [JS] node.js (19)
        • [Java] spring (2)
        • Android (2)
      • 데이타베이스 (43)
        • SQLD (5)
        • Oracle (1)
        • MySQL (8)
        • ADsP (2)
      • 리눅스 (25)
        • Bash (61)
      • GCP (5)
      • AWS (34)
        • EC2 (2)
        • EMR (14)
      • 정보보안기사 (4)
        • 네트워크 (1)
      • 개인 (80)
        • 업무실수 (0)
        • 책 (9)
        • 교육 (3)
        • 여행 (17)
        • 영화 (12)
        • 음악 (2)
        • 피규어 (4)
        • 게임 (3)
        • 생각 (7)
        • 기타 (10)
        • 좋은글 (5)
        • 좋은 사이트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 빅데이터-하둡,하이브로 시작하기
    • 빅데이터-스칼라, 스파크로 시작하기
    • Kaggle에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

    파이썬
    mysql
    Hadoop
    k8s
    hbase
    SPARK
    Linux
    하이브
    emr
    S3
    HIVE
    build
    nodejs
    하둡
    오류
    java
    yarn
    error
    HDFS
    Tez
    다이나믹
    airflow
    ubuntu
    bash
    알고리즘
    정올
    Python
    oozie
    백준
    AWS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[함수형 사고] 7장 실용적 사고
상단으로

티스토리툴바