[함수형 사고] 2장 전환

2019. 3. 5. 17:21·개념/함수형사고

함수형 문법을 익히는 것은 쉽지만, 함수형 사고라는 새로운 패러다임을 익히는 것은 어렵습니다. 새로운 패러다임을 익히는 것은 친숙한 문제에 대한 다른 해답을 떠올릴 능력을 익히는 것입니다.

명령형 처리와 함수형 처리

명령형 처리는 전통적인 프로그래밍 방식입니다. 문제를 명령형 루프내에서 처리합니다. 다음은 자바로 작성한 코드입니다. 리스트로 문자열을 받아서 한자리 문자열은 제거하고, 나머지 문자열은 첫번째 글자를 대문자화한후 스트링으로 만들어 출력합니다.




함수형 처리는 언어에서 제공하는 함수를 이용하여 서술형으로 문제를 처리합니다. 개발자는 문제를 처리하는 방식보다는 세부적인 로직에 집중할 수 있습니다. 다음은 동일한 코드를 스칼라를 이용하여 함수형으로 처리한 예제입니다. filter, map, reduce 함수를 이용하여 말하듯이 의사코드를 작성하듯이 자연스럽게 처리할 수 있습니다.




함수형 사고로의 전환은 세부적인 구현에 집중하지 않고, 고수준의 추상적인 개념을 적용할지를 배우는 것입니다. 함수형 처리로 얻게 되는 장점은 최적화는 개발언어에게 맡겨두고 처리 절차를 고민할 수 있게 해줍니다. 함수형 처리에서 주로 사용하는 map, reduce, filter 함수와 언어별로 제공되는 유용한 유틸리티성 함수를 잘 알아두면 문제를 효율적으로 처리할 수 있습니다.



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

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

[함수형 사고] 6장 전진하라  (0) 2019.03.13
[함수형 사고] 5장 진화하라  (0) 2019.03.12
[함수형 사고] 4장 열심히보다는 현명하게  (0) 2019.03.11
[함수형 사고] 3장 양도하라  (0) 2019.03.08
[함수형 사고] 1장 왜?  (1) 2019.03.04
'개념/함수형사고' 카테고리의 다른 글
  • [함수형 사고] 5장 진화하라
  • [함수형 사고] 4장 열심히보다는 현명하게
  • [함수형 사고] 3장 양도하라
  • [함수형 사고] 1장 왜?
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에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[함수형 사고] 2장 전환
상단으로

티스토리툴바