프로그래밍
Pseudo code (의사 코드)
개발챙
2021. 6. 15. 14:39
728x90
pseudo code는 프로그램 코드 작성 시 사용하기 위해 프로그램의 진행 과정을 단계별로 기록해 놓은 것
가짜 코드 ! 알고리즘이 수행될 내용을 인간의 언어(한국어 / 영어 등)로 간략히 설명
왜 사용할까?
- 나중에 그 프로그램 코드를 읽고 디버깅을 하거나 내용을 수정해야 하는 개발자에게 도움을 줄 수도 있음.
- 컴퓨터 프로그램 알고리즘이 어떻게 실행되어야 할지, 또는 어떻게 실행될 수 있을지 보여줄 수 있음.
- 나중에 코드입력, 테스트, 디버그 수정 단계에서 작업하는 것보다 의사코드 설계 단계에서 미리 오류를 수정을 하는 것이 훨씬 경제적.
- 프로그램의 문제를 해결하기 위한 도구로, 또는 다른 사람들과 프로그램의 흐름에 대해 소통하기 위한 방법으로 활용
- 실제 코딩하기 전 사고를 좀더 명확히 정립하게 만들어 준다.
처음 코딩을 할 때 단순히 소스코드를 입력하는 것보다 함수(function) 프로그램을 만들 때 많은 시간을 낭비할 수 있다. 약 10분 정도 각 풀이법의 장점과 단점을 주도면밀하게 살펴보면서 의사코드 작성한다면, 이후 디버그를 수정하고 코드를 재분해 하는데 걸리는 시간을 단축할 수 있다. - 코드 검토(Code Review)가 더 쉬워진다. 의사코드로 소스코드 실행없이 상세 설계를 검토할 수 있다. 하위 설계 단계의 프로그램을 쉽게 검토할 수 있어 작성된 프로그램의 검토 시간을 줄일 수 있으며 지속적인 프로그램 개선에 큰 도움이 된다. 상위 설계 프로그램에서 시작하여 의사코드를 수정한 후에 수정된 의사코드를 가지고 소스코드를 개선하게 된다. 각 단계 별로 반복적인 프로그래밍 개선을 통해 하위 설계 단계의 프로그램을 체크할 수 있다. 이 결과로 상세 작업 단계에서 큰 오류를 발생시키거나 작업에 큰 악영향을 주기 이전에, 상위 단계의 프로그램의 오류는 상위 단계에서, 중간 단계의 오류는 중단 단계에서 하위 단계의 오류는 하위단계에서 검토할 수 있게 된다.
- 코드 수정을 좀더 용이하게 만들어준다.일부 의사코드 몇 줄을 수정하는 것은 한 페이지 전체의 코드를 수정하는 것보다 더 쉽다. 물론 이 방법은 소프트웨어에 큰 물리적인 변화를 주는 것은 아니지만, 수정이 거의 필요하지 않는 제품을 개선할 경우에 사용되는 일반적인 방법이다. 성공적인 프로젝트를 만들기 위해서는 최소한의 노력으로 고칠 수 있는 단계(least-value stage)에서 오류를 바로 잡는 것이 매우 중요하다.
나중에 코드입력, 테스트, 디버그 수정 단계에서 작업하는 것보다 의사코드 설계 단계에서 미리 오류를 수정을 하는 것이 훨씬 경제적이다.
- 의사코드는 코멘트(Comment) 작성에 대한 부담을 덜어준다. 의사코드를 사용할 경우 의사코드 서술 내용 자체가 코멘트가 되기 때문에 사실상 안에 코멘트를 남겨놓는 것보다 코멘트를 지우는데 더 많은 시간이 걸린다. 의사코드는 다른 프로그래밍 설계 문서보다 유지보수가 쉽다. 코드와 분리된 채로 설계문서를 작성한다면, 어떤 부분에 수정변동이 있게 되어 양쪽 모두 일관성이 없어지게 된다.
의사코드는 코드 안에 작성한다. 때문에 코멘트가 계속 추가되면서 의사코드 설계 작성이 정교해질 수 있다.
규칙이 정해진 것은 아니지만, 다른 개발자들이 쉽게 이해할 수 있는 형식을 사용해야 함.
본인이 쓰려고 작성한다면 생각을 정리하고 계획한 것ㅇ르 만드는 데 도움이 되어야 한다. 순차적반복문, 명령문, 조건문 정도면 의사코드 작성 가능
- 확실한 내용을 여러번 말하지 않는다. 예를들어 값이 정수인지 실수인지 정하는 것이 중요한 문제가 아니라면, 정확하게 값을 구분하는 것이 필요 없을 수도 있다.
- 프로그래밍에 쓰이는 문법(구문)을 이용해 작성한다. if/else 조건문, 반복문(loop)인 while은 영어 단어와 같기 때문에, 이를 사용하여 의사코드를 좀더 명확하게 작성할 수 있다.
- 적은 수의 단어를 조합하여 의사코드를 작성하는 것도 좋은 방법이다. 변수 사용은 의사코드를 간단명료하게 만들어주기 때문에 생략하지 않는 것이 좋다.
- 사용할 목적과 상황에 주의하여 작성한다.
- 수준을 고려해 작성한다. 만약 다른 사람이 본인이 작성한 의사코드가 이해하기 너무 어려워 실제 코드로 옮기기 어렵다면(또는 둘다 모두일 경우), 난이도에 문제가 있다는 뜻이다.
<자주 쓰이는 영어 단어>
- 입력(Input): READ, OBTAIN, GET
- 출력(Output): PRINT, DISPLAY, SHOW
- 계산(Compute): COMPUTE, CALCULATE, DETERMINE
- 초기화(Initialize): SET, INIT
- 요소를 추가(Add one): INCREMENT, BUMP
- 선형적으로 증가할 때(linear progression): SEQUENCE
- 반복: WHILE, FOR
- 조건문: IF-THEN-ELSE
- 마지막에 조건문이 있는 반복문: REPEAT-UNTIL
- IF-THEN-ELSE 대신 조건 분기처리: CASE
- 부울 : TRUE / FALSE
- 그외 : REPEAT - UNTIL RETURN BEGIN / EXCEPTION / END
의사코드에 쓰인 변수명 리스트를 'Variables: price of item, sales tax rate, sales tax, final price'와 같이 따로 정리할 수 있다. 이러한 작업은 의사코드를 실제 프로그래밍 작업으로 옮길 때 유용하다.
ex)
while 인구 < 한계
최신 인구 = 과거 인구 + 출생자 수 - 사망자 수
endwhile
728x90