대형 프로젝트를 진행하는 경우에는 크고 복잡한 작업을 작고 간단한 단위로 나누는 것이 필요하다.
그 중 방법 중 하나가 하향식 설계이다.
최상위 단계들을 정의하고 이러한 단계들을 구체적으로 나눈어가는 과정을 하향식 설계하고 한다.
이 방법은 크고 복잡한 작업을 단순하고 작은 단위의 작업으로 세분화시킬 수 있다.
1. 쉘 함수
1. 페이지 열기
2. 페이지 헤더 열기
.
.
.
7. 날짜 및 시간 출력하기
8. 페이지 본문 닫기
9. 페이지 닫기
위는 html 문서를 생성하는 과정이다.
다음 개발 단계로 진행하기 전에 7번째와 8번째 단계 사이에 몇 가지 작업을 추가할 것이다.
1) 시스템 가동시간(uptime)과 부하량
: uptime은 가장 최근에 시스템이 종료되거나 재부팅된 이후부터의 가동시간을 나타내고, 부하량은 이렁 시간마다 프로세서상에서 현재 실행 중인 작업의 평균 개수를 뜻한다.
2)디스크 사용 공간
: 현재 사용중인 저장 장치의 사용 공간
3) 홈 공간
: 사용자별 저장 장치 사용 공간
각 작업에 대한 명령어를 알고있다면, html 파일 안에 명령어 치환($(uptime))을 통해 스크립트에 그 명령어를 추가할 수도 있다.
위 명령어를 사용하기 위한 방법 중 하나는 스크립트를 나눠 작성한 다음 PATH에 정의된 디렉토리에 저장하거나 스크립트 자체를 쉘 함수로 정의하여 프로그램에 추가할 수 있다.
function name { commands return } name () { commands return }
2. 지역 변수
전역 변수는 프로그램 전반에 걸쳐 적용되는 변수이다. 때문에 가끔씩 쉘 함수 사용에 혼란을 가져오기도 한다.
그렇기 때문에 쉘 함수 내부적으로 사용할 지역 변수가 종종 필요하게 된다.
지역 변수는 해당 변수가 정의된 쉘 함수 내에서만 유효하며 함수가 종료되는 순간 그 효과 또한 사라진다.
전역 변수의 경우에는 global이라는 단어를 선언해야 하지만 지역 변수는 local 이라는 단어를 변수명 앞에 선언함으로써 정의할 수 있다.
3. 스크립트 실행 상태 유지
프로그램을 개발하는 동안, 프로그램을 실행 가능한 상태로 유지해야 하는 경우가 있다. 이 상태를 유지한 채 프로그램을 자주 테스트하면 개발 단계에서 프로그램 오류들을 보다 쉽게 찾을 수 있다. 즉 디버깅 문제가 더 수월할 것이다.
예를 들어, 프로그램을 실행하여 약간의 변화를 준 다음, 프로그램을 다시 시작하면 문제를 만나게 된다. 이는 가장 최근 변경 내역이 문제의 원인이 될 수 있다. 흔히 프로그래머들이 말하는 스텀(stub)이라는 빈 함수를 프로그램에 추가하면, 초기 단계에서 프로그램의 논리적 호름을 확인해볼 수 있다.
'스터디 > 리눅스 커맨드라인' 카테고리의 다른 글
[리눅스] 28. 키보드 입력 읽기 (0) | 2022.07.17 |
---|---|
[리눅스] 27. 흐름 제어: if 분기 (0) | 2022.07.10 |
[리눅스] 25. 프로젝트 시작하기 (0) | 2022.07.03 |
[리눅스] 24. 첫 번째 쉘 스크립트 (0) | 2022.06.19 |
[리눅스] 23. 프로그램 컴파일 (0) | 2022.06.19 |