본문 바로가기
C++ 200제/코딩 IT 정보

스파게티 코드, 소프트웨어개발 3가지 프로그래밍 구조

by vicddory 2017. 3. 1.

◆ 비구조적인 코드

복잡한 프로그램 명령문들을 흔히 스파게티 코드(spaghetti code)라고 한다. 스파게티가 담긴 접시에서 국수 한 가닥을 따라가는 것처럼 프로그램의 코드가 혼란스럽기 때문에 이런 이름을 사용하게 된 것이다.



스파게티 코드 예[소프트웨어개발 프로그래밍] 스파게티 코드 예


☆ 프로그램의 기본 구조

구조(structure)는 프로그래밍 논리의 기본적인 단위이다. 기본적인 구조에는 순서(sequence), 선택(selection), 루프(loop)가 있다. 아래 그림은 첫 번째 구조인 순서를 보여준다.



순서 구조 sequence structure[소프트웨어개발 프로그래밍] 순서 구조 sequence structure



  • 순서 구조(sequence structure)에서는 각 동작이 차례대로 수행된다.
  • 일단 한 순서를 시작하게 되면 첫 번째 동작부터 마지막 동작까지 차례대로 따라가야 한다.


두 번째 구조는 선택 구조(selection structure) 또는 판단 구조(decision structure)라고 부른다.


  1. 이런 구조는 질문을 하고,
  2. 질문에 대한 답에 따라서
  3. 둘 중의 한 경로를 따라간다.


둘 중의 어느 경로를 실행하든 선택 구조의 끝에서 다시 만나게 된다.



선택 구조(selection structure)[소프트웨어개발 프로그래밍] 선택 구조(selection structure)



어떤 사람들은 선택 구조를 if-then-else라고 부른다.


왜냐하면 선택 구조가 아래와 같은 명령문과 잘 대응되기 때문이다. 


if 조건이 참이면 then

    어떤 것을 처리한다

else

    다른 것을 처리한다



Single-Alternative Decision Structure[스파게티 코드] Single-Alternative Decision Structure



루프 구조(loop structure)에서는 질문을 한다. 질문의 답이 동작을 요구하면 동작을 수행하고 다시 질문으로 되돌아간다.


질문의 답이 다시 동작을 요구하면 동작을 다시 수행하고 또다시 질문으로 되돌아간다. 질문의 답이 계속 동작을 요구하면 이런 과정이 반복되고, 질문의 답이 동작을 요구하지 않을 때 루프에서 빠져나온다.

프로그래머들은 루프를 반복(repetition)이나 되풀이(iteration)라고 한다.



반복 repetition 또는 되풀이 iteration[소프트웨어개발 프로그래밍] 반복 repetition 또는 되풀이 iteration



모든 논리 문제는 단지 3가지 구조(순서, 선택, 루프)만을 사용하여 해결할 수 있다. 물론 3가지 구조는 여러 가지 방식으로 결합하여 사용할 수 있다. 한 구조의 끝에 다른 구조를 붙이는 것을 구조들의 스택(stacking)이라고 부른다.



Structured Flowchart and pseudocode[스파게티 코드] Structured Flowchart and pseudocode



하나의 구조 내에 다른 구조가 포함되는 것을 구조들의 중첩(nesting)이라고 부른다. 



구조들의 중첩(nesting)[소프트웨어개발 프로그래밍] 구조들의 중첩(nesting)




관련 글


컴퓨터구조 연습문제 해답 [모리스 마노 1 챕터]


프로그래밍 마스터 방법, 개발자 고수 되는법 4가지


[MFC 기초 강좌] C++ 프로그래머 11개 코딩 프로그래밍 팁


#소프트웨어개발 #스파게티 코드 #프로그래밍 구조



ⓒ written by vicddory

댓글