기타 개발관련

수도코드(Pseudo-code)란?

나른한코딩 2022. 4. 6. 15:59

 

 

출처: https://blog.daum.net/jungjin1980/557

 

 

알고리즘 관련 도서를 읽다보면 위와 같은 형태의 코드가 자주 보입니다.

🤔

 

위와 같이 작성한 코드를 수도코드(의사코드) 라고 부르는데,

처음에 알고리즘 책을 봤을 때는 프로그램밍의 '프'자도 모르는 상태였기 때문에...

수도코드가 실제 코드인줄 알고 IDE에 작성했다가 오류가 나서 왜 나는지 이해를 못했던 시절이 있습니다..^^..

 

 

 

회사에 지원해서 과제를 하거나, 혹은 회사에서 협업을 위해 수도코드를 사용하는 경우가 있는데요,

어렴풋이 알고있던 수도코드란 무엇이고 특별한 작성 방법이나 규칙이 정해져있는걸까?

하는 생각이 들어서 찾아보다가 간단히 정리하게 되었습니다. 

 

 

 


 

 

 

📌 알고리즘을 표현하는 방법 중 하나. 일반적으로는 자연어를 이용해 만든 문장을 프로그래밍 언어와 유사한 형식으로 배치한 코드를 말한다.

 

 

자연어란?

→ 인간이 알아들을 수 있는 언어. (우리가 일상에 사용하는 언어)

 

 

변환 과정을 거처 컴퓨터가 읽을 수 있게 바꾸는 프로세스가 반드시 있는 프로그래밍 언어와는 달리,

의사코드는 그런 것이 존재하지 않는다.

(즉, 컴파일러가 해독 불가. 애초에 컴퓨터가 읽을 수 없는 코드)

 

 

사용 이유

  • 자연어와 프로그래밍 언어 사이를 중계하는 역할을 한다.
  • 자언어로 서술 해놓은 내용을 코드로 바꾸는 과정을 단축시키고 가독성을 높여준다.
  • 많은 프로그래머들의 협업이 필요한 프로젝트에서 프로그램 제작 과정을 준비하거나 원활한 의사소통을 위해 활용되기도 한다.

 

일반적인 프로그램 제작 과정

 

 고객 요구 사항  설계도 작성  프로그램 코드 작성  테스트  디버깅 

 

 

여기서 의사코드를 사용하는 곳은 설계도 작성, 프로그램 코작성, 디버깅 정도로 볼 수 있다.

(실제로는 설계 단계의 일부로 취급하는 경우가 많음)

 

 

 

작성 방법

  • 정해진 작성 기준/문법은 없다!
    → 어디까지나 자신의 생각을 실제 코드에 가깝게 표현하기 위해 사용하는 것이므로,형식이나 틀을 정하는 순간 의미가 퇴색되기 때문

 

 

단, 너무 일관성이 없거나 자신 이외의 사람이 이해하기 힘들게 작성하면 안 된다.

 

 


예시

요구 사항 정의

📌 “a * b = 값” 의 형식으로 구구단을 2~9단까지 출력한다.

 

의사코드

📌 반복문 시작 (a를 2에서 9까지) 반복문 시작 (b를 1에서 9까지) 출력 : a * b = 값 (개행) 반복문 종료 반복문 종료

 

의사코드를 바탕으로 완성한 코드

# python
for i in range(2, 10):
	for j in range(1, 10):
		print(f'{i} x {j} = {i * j}')
반응형