컨트롤 추상화(Control Abstraction)
- 데이터 추상화와 함께 프로그래밍 언어의 가장 중요한 두 가지 개념 중 하나이다.
- 복잡하고 큰 소프트웨어의 경우 주요 목표나 요구 사항을 달성하는 방법
- 많은 작은 요구 사항을 충족함으로써 달성
- 분할, 정복의 개념
- 모바일 쇼핑 앱을 개발한다고 가정하자.
- 필요한 기능
- 제품 데이터를 읽기
- 앱에 제품 표시
- 제품 검색
- 고객정보 관리
- 제품 리뷰
- 결제수단
- 구매 관리
- 배송 옵션을 관리
- 하나의 큰 프로그램에서 이러한 모든 것을 구현하는 것은 좋은 생각이 아니다.
- 대신 각 기능을 독립적으로 제공하는 하위 프로그램(subprograms)을 구현할 수 있다.
- 구현 세부 사항을 숨기고 이를 디자인과 분리할 수 있다.
- 다른 구현으로 쉽게 전환할 수 있다.
- 우리는 서 프로그램을 사용하는 방법만 알면 된다.
서브프로그램
- 서브프로그램(subprogram) = 프로시저(procedure) = 함수(function) 같은 의미
- 서브프로그램이 가장 일반적인 용어이지만, 이번 강의에서는 함수(function)도 사용
- 왜냐하면 이 강의의 뒷부분에서 설명할 내용과 더 친숙하고 유사하기 때문이다.
함수(Function)
- 함수는 코드 조각이다.
- 이름(name)으로 식별
- 자체 로컬 환경이 제공된다.
- 매개 변수, 반환 값, 로컬이 아닌 환경을 사용하여 코드의 다른 부분과 정보를 교환한다.
- 함수를 정의(또는 선언)하고 해당 함수를 사용(또는 호출)할 수 있다.
'프로그래밍언어론' 카테고리의 다른 글
[프로그래밍언어론] 26. 바인딩 정책(Binding Policy) (1) | 2023.10.17 |
---|---|
[프로그래밍언어론] 25. 매개변수 전달(Parameter Passing) (1) | 2023.10.17 |
[프로그래밍언어론] 23. 파이썬 피보나치 수열 재귀 (0) | 2023.10.12 |
[프로그래밍언어론] 22. 재귀(Recursion) (0) | 2023.10.12 |
[프로그래밍언어론] 21. 제어 흐름(Control Flow) (0) | 2023.10.11 |
컨트롤 추상화(Control Abstraction)
- 데이터 추상화와 함께 프로그래밍 언어의 가장 중요한 두 가지 개념 중 하나이다.
- 복잡하고 큰 소프트웨어의 경우 주요 목표나 요구 사항을 달성하는 방법
- 많은 작은 요구 사항을 충족함으로써 달성
- 분할, 정복의 개념
- 모바일 쇼핑 앱을 개발한다고 가정하자.
- 필요한 기능
- 제품 데이터를 읽기
- 앱에 제품 표시
- 제품 검색
- 고객정보 관리
- 제품 리뷰
- 결제수단
- 구매 관리
- 배송 옵션을 관리
- 하나의 큰 프로그램에서 이러한 모든 것을 구현하는 것은 좋은 생각이 아니다.
- 대신 각 기능을 독립적으로 제공하는 하위 프로그램(subprograms)을 구현할 수 있다.
- 구현 세부 사항을 숨기고 이를 디자인과 분리할 수 있다.
- 다른 구현으로 쉽게 전환할 수 있다.
- 우리는 서 프로그램을 사용하는 방법만 알면 된다.
서브프로그램
- 서브프로그램(subprogram) = 프로시저(procedure) = 함수(function) 같은 의미
- 서브프로그램이 가장 일반적인 용어이지만, 이번 강의에서는 함수(function)도 사용
- 왜냐하면 이 강의의 뒷부분에서 설명할 내용과 더 친숙하고 유사하기 때문이다.
함수(Function)
- 함수는 코드 조각이다.
- 이름(name)으로 식별
- 자체 로컬 환경이 제공된다.
- 매개 변수, 반환 값, 로컬이 아닌 환경을 사용하여 코드의 다른 부분과 정보를 교환한다.
- 함수를 정의(또는 선언)하고 해당 함수를 사용(또는 호출)할 수 있다.
'프로그래밍언어론' 카테고리의 다른 글
[프로그래밍언어론] 26. 바인딩 정책(Binding Policy) (1) | 2023.10.17 |
---|---|
[프로그래밍언어론] 25. 매개변수 전달(Parameter Passing) (1) | 2023.10.17 |
[프로그래밍언어론] 23. 파이썬 피보나치 수열 재귀 (0) | 2023.10.12 |
[프로그래밍언어론] 22. 재귀(Recursion) (0) | 2023.10.12 |
[프로그래밍언어론] 21. 제어 흐름(Control Flow) (0) | 2023.10.11 |