ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • EDPS(컴퓨터) 와 함수
    Elixir 프로그래밍 2019. 7. 2. 16:20

    출처 : https://www.javatpoint.com/edp-full-form

     

    EDP Full Form - javatpoint

    EDP full form, EDP stands for, meaning, what is EDP, description, example, explanation, acronym for, abbreviation, definitions, full name

    www.javatpoint.com

    EDPS : Electronic Data Processing System

    전산을 전공하신 분은 들어보셨을 용어입니다.  
    컴퓨터를 다른 말로 EDPS 라고 합니다.  말 그대로 전자적인 데이터 처리 시스템입니다.

    위의 그림에서와 같이 어떤 "데이터를 입력"받아서 어떤 "처리"를 한 후, 그 결과 "데이터(정보)를 생성"하는 시스템을 뜻합니다.

    사실 우리가 사용하는 컴퓨터는 이 범주에서 벗어나지 않습니다.
    웹서버는 URL 요청에 의해 응답을 보내주며, 게임 프로그램은 사용자의 키보드나 마우스 입력을 받아 그에 해당하는 화면 출력이나 소리 출력을 만드는 것으로 볼 수 있습니다.

    이런 데이터 프로세싱을 여러 번, 여러 종류로 반복하는 것이 컴퓨터라 할 수 있을 것입니다.


    위의 그림을 다시 보면, 프로세싱은 우리가 아는 함수와 같습니다. 즉, 어떤 입력을 받아 출력을 생성하는 기능을 수행합니다.

    그러므로 , 컴퓨터는 사실 함수의 모임이라고도 볼 수 있습니다. 전자적으로 함수를 구현하여, 어떤 입력을 받아서 그에 대한 처리를 한 결과를 생성하는 함수들이 컴퓨터를 구성한다고 할 수 있습니다.

    다시 말하면, 많은 수의 함수들로 컴퓨터, 즉 프로그램을 개발할 수 있다는 얘기입니다.

    프로그래밍을 오래 하신 분들은 이 함수와 프로시듀얼 프로그래밍이 같은 것이 아닌가 하고 생각하시겠지만, 프로시듀얼 프로그래밍(Procedural Programming)  언어의 경우, 데이터 구조와 이에 대한 순차적인 처리에 관점이 맞추어져 있다면,  함수형 언어는 처리할 데이터와 이 데이터를 처리할 함수의 모임으로 관점이 다릅니다. 자세한 차이는 진행하면서 아시겠지만, 프로시듀얼 프로그래밍은 "어떻게"의 성격이 강하고 함수형 언어는 "무엇을"에 초점이 맞추어져 있다고 할 수 있습니다.

    이외에 , 함수형 언어는 "동시성"을 강조합니다.   동시성은 여러 개의 함수가 동시에 수행되는 것을 의미합니다. Elixir에서는 이 동시에 실행되는 함수의 단위를 "Process"로 규정합니다. 이에 대한 내용은 후반에 기술하겠습니다.


    다시 정의해 보면, 함수형 언어 특히 Elixir는 들어오는 "데이터"들을 "처리"하는 "함수"들의 모임만으로 프로그램을 구성합니다. 그러므로, 객체의 개념 자체가 없습니다. 그러다 보니, 상속에 대한 개념, 프로퍼티, 메쏘드, 폴리모피즘 등이 없습니다.  알아야 할 개념이 적으로므로 배워야 할 것도 적습니다. 그러므로 코드의 구성도 간단해집니다.  관점을 오직 "데이터"와 "함수"로만 보면 됩니다.

    위에 언급했던 것처럼, 데이터들을 함수로 처리하고, 경우에 따라 서는 그 처리 결과를 다른 함수의 입력으로도 넣고 이들을 반복하는 것으로 프로그램을 구성합니다. 그러므로, 하나의 프로그램에는 많은 수의 함수와 많은 종류의 데이터가 존재하게 되며, 데이터에 종류에 따라서 그 데이터를 처리할 함수가 달라지게 됩니다.  이는 데이터에 따라서 그 데이터를 처리할 함수가 달라진다는 것을 의미합니다.

    Elixir는 이에 대한 처리를 패터 매칭(Pattern Matching)으로 처리합니다. 말 그대로 데이터의 패턴(종류)에 따라서 호출될 함수가 자동으로 결정된다고 생각하시면 됩니다.

    그리고, 이 패턴 매팅은 어떤 데이터의 일부분만을 취할 때에도 사용됩니다.

    결국, Elixir에서는 데이터와 이 데이터를 처리할 함수로 프로그램이 구성되고, 어떤 데이터를 처리할 함수를 결정할 때는 패턴 매칭을 이용한다.라고 생각하시면 됩니다.

    즉, 아주 단순화해보면 Elixir는

    • 함수
    • 데이터
    • 패턴 매칭

    만으로 프로그램을 개발한다고 할 수 있습니다. 

     

    다음장에서는 데이터와 패턴 매칭에 대한 내용으로 이어가겠습니다. 

     

     

Designed by Tistory.