본문 바로가기
프로그래밍언어론

[프로그래밍언어론] 24. 컨트롤 추상화(Control Abstraction)

by 파스텔코랄 2023. 10. 17.

컨트롤 추상화(Control Abstraction)

  • 데이터 추상화와 함께 프로그래밍 언어의 가장 중요한 두 가지 개념 중 하나이다.
  • 복잡하고 큰 소프트웨어의 경우 주요 목표나 요구 사항을 달성하는 방법
    • 많은 작은 요구 사항을 충족함으로써 달성
    • 분할, 정복의 개념

 

  • 모바일 쇼핑 앱을 개발한다고 가정하자.
  • 필요한 기능
    • 제품 데이터를 읽기
    • 앱에 제품 표시
    • 제품 검색
    • 고객정보 관리
    • 제품 리뷰
    • 결제수단
    • 구매 관리
    • 배송 옵션을 관리

 

  • 하나의 큰 프로그램에서 이러한 모든 것을 구현하는 것은 좋은 생각이 아니다.
  • 대신 각 기능을 독립적으로 제공하는 하위 프로그램(subprograms)을 구현할 수 있다.
    • 구현 세부 사항을 숨기고 이를 디자인과 분리할 수 있다.
    • 다른 구현으로 쉽게 전환할 수 있다.
    • 우리는 서 프로그램을 사용하는 방법만 알면 된다.

 


 

서브프로그램

  • 서브프로그램(subprogram) = 프로시저(procedure) = 함수(function) 같은 의미
  • 서브프로그램이 가장 일반적인 용어이지만, 이번 강의에서는 함수(function)도 사용
    • 왜냐하면 이 강의의 뒷부분에서 설명할 내용과 더 친숙하고 유사하기 때문이다.

 


 

함수(Function)

  • 함수는 코드 조각이다.
    • 이름(name)으로 식별
    • 자체 로컬 환경이 제공된다.
    • 매개 변수반환 값로컬이 아닌 환경을 사용하여 코드의 다른 부분과 정보를 교환한다.
  • 함수를 정의(또는 선언)하고 해당 함수를 사용(또는 호출)할 수 있다.

댓글