노트 #29 | 고차 함수의 중요성 (추상화)

HyeonWooGa·2022년 7월 21일
0

노트

목록 보기
30/74

개요

컴퓨터 공학의 근간을 이루는 개념 중 하나인 추상화(abstraction)을 설명하면서 고차 함수가 추상화에 어떻게 사용되는지 살펴보겠습니다.


학습 목표

  • 추상화에 대해서 이해합니다.
  • 높은 수준의 추상화에대해서 학습합니다.
  • 고차 함수가 추상화에 어떻게 사용하는지 이해합니다.
  • 개발시 고차 함수 및 다른 이론들을 활용하여 높은 수준의 추상화로 개발합니다.

추상화

복잡한 어떤 것을 압축해서 핵심만 추출한 상태로 만드는 것입니다.

  • 인간은 추상화를 당연하고 쉽게 생각하고 표현합니다.
    • '-1'을 보면 -1은 0보다 1만큼 작은 수라고 쉽게 생각하고 표현할수 있습니다.

  • 일상생활에서 추상화가 아닌 것을 찾아보기 힘들 정도입니다.
    • 메신저를 통해 '안녕'이란 메세지를 보내면 우리의 스마트폰은 기지국과 약 20개의 메세지를 주고받습니다.
    • 우리는 위의 과정을 모르지만 수신인이 메세지를 받는 다는 것은 알고 있습니다. (추상화)
    • 자동차의 시동버튼, 교통카드 등 주변의 대부분이 추상화의 결과입니다.

  • 자바스크립트를 비롯한 많은 프로그래밍 언어 또한 추상화의 결과입니다.
    • CPU는 0과 1만 이해하지만 문법을 올바르게 사용하는 것 만으로 영어와 숫자로 코드를 보다 쉽게 작성할 수 있습니다.
    • 따라서 컴퓨터 내부 구조에 대한 고민이 추상화로 해결되었습니다.
    • 이처럼 고민거리가 줄어들고 문제의 해결이 더 쉬워지는 것이 추상화의 이점입니다.

  • 추상화 = 생산성(productivity)의 향상
    • 코딩시에 자주 반복해서 사용하는 로직은 별도의 함수로 작성하는 것도 추상화의 좋은 사례입니다.

  • 추상화의 종류와 고차함수
    • 값 수준의 추상화 : 단순히 값(value)을 전달받아 처리하는 수준
    • 사고의 추상화 : 함수(사고의 묶음)를 전달받아 처리하는 수준
    • 고차 함수 = 사고 수준에서의 추상화

사고 수준의 추상화 예시를 보니, 추상화에 대해서 파고들어 보니 백엔드 개발자는 추상화가 정말 중요하다고 하던데 프론트엔드 개발자 하기로 정하길 잘했다 생각이 먼저 들었습니다....하하하

하지만 프론트엔드 개발자도 추상화를 잘 사용하면 생산성과 어플리케이션 능력 향상에 도움이 되기때문에 추상화도 잘 찾아 공부하며 성장하겠습니다!


profile
Aim for the TOP, Developer

0개의 댓글