검수요청.png검수요청.png

"함수 (프로그래밍)"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
잔글 (역사)
6번째 줄: 6번째 줄:
  
 
==역사==
 
==역사==
1940년 대 컴퓨터의 초창기에는 2진수로 쓰여진 기계 언어만을 해석할 수 있었다. 그리고 프로그램 언어의 첫걸음인 어셈블리어 언어가 생기고 보다 친숙한 컴퓨터 언어인 고급 언어들이 생겨났다.
+
1940년 대 컴퓨터의 초창기에는 2진수로 쓰여진 기계 언어만을 해석할 수 있었다. 그리고 프로그램 언어의 첫걸음인 [[어셈블리어]] 언어가 생기고 보다 친숙한 컴퓨터 언어인 [[고급 언어]]들이 생겨났다.
  
고급 언어는 사람이 알기쉽게 고급스러운 형식으로 표현되었던 언어이며 그 이후 소프트웨어 프로세스의 복잡성과 소프트웨어 공학이 전문분야로서 상대적으로 미성숙함으로 인해 여러 안 좋은 증상들이 나타났는데, 이것을 소프트웨어 위기라고 표현했다. 이 위기를 극복하고자 소프트웨어 공학 수단을 더 적극적으로 활용하는 방법으로 구조적 프로그래밍이라는 아이디어가 제안되었다.<ref name="역사2">이명헌의 경영과 투자, <[https://ltvw.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4%EC%9D%98-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%97%AD%EC%82%AC 프로그래밍 언어의 간단한 역사]>, 《개인블로그》, 2020-07-02</ref>
+
[[고급 언어]]는 사람이 알기쉽게 고급스러운 형식으로 표현되었던 언어이며 그 이후 소프트웨어 [[프로세스]]의 복잡성과 [[소프트웨어 공학]]이 전문분야로서 상대적으로 미성숙함으로 인해 여러 안 좋은 증상들이 나타났는데, 이것을 소프트웨어 위기라고 표현했다. 이 위기를 극복하고자 소프트웨어 공학 수단을 더 적극적으로 활용하는 방법으로 [[구조적 프로그래밍]]이라는 아이디어가 제안되었다.<ref name="역사2">이명헌의 경영과 투자, <[https://ltvw.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4%EC%9D%98-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%97%AD%EC%82%AC 프로그래밍 언어의 간단한 역사]>, 《개인블로그》, 2020-07-02</ref>
  
구조적 프로그래밍 이전에는 프로그램을 길게 늘여뜨러 놓은 코드였기 때문에 나열된 코드 여기저기를 옮겨다녀야 했으며 프로그램 내에 각 파드를 구분짓는 경계 또한 없었다. 프로그래밍 중 한 부분을 이동하려면 긴 코드 전체를 움직여야 하는 절차를 거쳤다.
+
[[구조적 프로그래밍]] 이전에는 프로그램을 길게 늘여뜨러 놓은 코드였기 때문에 나열된 코드 여기저기를 옮겨다녀야 했으며 프로그램 내에 각 파드를 구분짓는 경계 또한 없었다. 프로그래밍 중 한 부분을 이동하려면 긴 코드 전체를 움직여야 하는 절차를 거쳤다.
  
구조적 프로그래밍이 등장하면서 코드를 단위로 구분지어주어 프로그램을 잘 짜여진 챕터로 구분지어 이전보다 용이하게 찾아 갈 수 있도록 만든 것이다. 하지만 절차를 표준화하고 보다 예측가능한 형태로 쓰일 수 있게 만들어 보편화 된것은 절차적 프로그래밍 이후이다. 복잡한 데이터 세트를 하나의 그룹 혹은 구조로 묶어주는 방식으로 사용되어 이전에 했던 방식들 처럼 원시적인 테이터 형으로 이루어진 수백 개의 배열을 남발하기 보다는 여러 개의 데이터형식을 하나의 구조로 통합한 뒤 어디서든 손 쉽게 참조하도록 만들었으며 이것이 현재 프로그래밍에서의 함수이다.
+
[[구조적 프로그래밍]]이 등장하면서 코드를 단위로 구분지어주어 프로그램을 잘 짜여진 챕터로 구분지어 이전보다 용이하게 찾아 갈 수 있도록 만든 것이다. 하지만 절차를 표준화하고 보다 예측가능한 형태로 쓰일 수 있게 만들어 보편화 된것은 [[구조적 프로그래밍]] 이후이다. 복잡한 데이터 세트를 하나의 그룹 혹은 구조로 묶어주는 방식으로 사용되어 이전에 했던 방식들 처럼 원시적인 [[데이터]] 형으로 이루어진 수백 개의 [[배열]]을 남발하기 보다는 여러 개의 [[데이터형식]]을 하나의 구조로 통합한 뒤 어디서든 손 쉽게 참조하도록 만들었으며 이것이 현재 프로그래밍에서의 함수이다.
 
<ref name="역사2">이명헌의 경영과 투자, <[https://ltvw.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4%EC%9D%98-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%97%AD%EC%82%AC 프로그래밍 언어의 간단한 역사]>, 《개인블로그》, 2020-07-02</ref>
 
<ref name="역사2">이명헌의 경영과 투자, <[https://ltvw.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4%EC%9D%98-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%97%AD%EC%82%AC 프로그래밍 언어의 간단한 역사]>, 《개인블로그》, 2020-07-02</ref>
  

2020년 8월 11일 (화) 11:17 판

함수(function)는 수학에서 첫 번째 집합의 임의의 한 원소를 두 번째 집합의 오직 한 원소에 대응시키는 이항관계[1]라고 하며 프로그래밍에서는 수학과 비슷한 개념으로 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합이다.[2]

함수

개요

함수는 수학에서 사용하는 의미와 비슷하게 프로그래밍에서는 소프트웨어의 특정한 동작을 수행하는 일정 코드 부분을 의미한다. 대부분의 프로그래밍 언어에서 지원하는 기능으로, 하나의 큰 프로그램을 여러 부분으로 나누어 주기 때문에 같은 함수를 여러 상황에서 여러 차례 호출할 수 있다.[3]

역사

1940년 대 컴퓨터의 초창기에는 2진수로 쓰여진 기계 언어만을 해석할 수 있었다. 그리고 프로그램 언어의 첫걸음인 어셈블리어 언어가 생기고 보다 친숙한 컴퓨터 언어인 고급 언어들이 생겨났다.

고급 언어는 사람이 알기쉽게 고급스러운 형식으로 표현되었던 언어이며 그 이후 소프트웨어 프로세스의 복잡성과 소프트웨어 공학이 전문분야로서 상대적으로 미성숙함으로 인해 여러 안 좋은 증상들이 나타났는데, 이것을 소프트웨어 위기라고 표현했다. 이 위기를 극복하고자 소프트웨어 공학 수단을 더 적극적으로 활용하는 방법으로 구조적 프로그래밍이라는 아이디어가 제안되었다.[4]

구조적 프로그래밍 이전에는 프로그램을 길게 늘여뜨러 놓은 코드였기 때문에 나열된 코드 여기저기를 옮겨다녀야 했으며 프로그램 내에 각 파드를 구분짓는 경계 또한 없었다. 프로그래밍 중 한 부분을 이동하려면 긴 코드 전체를 움직여야 하는 절차를 거쳤다.

구조적 프로그래밍이 등장하면서 코드를 단위로 구분지어주어 프로그램을 잘 짜여진 챕터로 구분지어 이전보다 용이하게 찾아 갈 수 있도록 만든 것이다. 하지만 절차를 표준화하고 보다 예측가능한 형태로 쓰일 수 있게 만들어 보편화 된것은 구조적 프로그래밍 이후이다. 복잡한 데이터 세트를 하나의 그룹 혹은 구조로 묶어주는 방식으로 사용되어 이전에 했던 방식들 처럼 원시적인 데이터 형으로 이루어진 수백 개의 배열을 남발하기 보다는 여러 개의 데이터형식을 하나의 구조로 통합한 뒤 어디서든 손 쉽게 참조하도록 만들었으며 이것이 현재 프로그래밍에서의 함수이다. [4]

특징

각주

  1. 위키백과, <함수>, 《위키피디아》
  2. TCPSCHOOL, <함수의 정의>, 《개인블로그》
  3. 위키백과, <함수(프로그래밍)>, 《위키피디아》
  4. 4.0 4.1 이명헌의 경영과 투자, <프로그래밍 언어의 간단한 역사>, 《개인블로그》, 2020-07-02

참고 자료

같이 보기


  검수요청.png검수요청.png 이 함수 (프로그래밍) 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.