알고리즘 관련 도서를 읽다보면 위와 같은 형태의 코드가 자주 보입니다.
🤔
위와 같이 작성한 코드를 수도코드(의사코드) 라고 부르는데,
처음에 알고리즘 책을 봤을 때는 프로그램밍의 '프'자도 모르는 상태였기 때문에...
수도코드가 실제 코드인줄 알고 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}')
반응형
'기타 개발관련' 카테고리의 다른 글
[Xcode] firebase analytics 등 debug창 로그 출력을 끄고 싶을 때 (0) | 2022.07.21 |
---|---|
깃헙 계정 2개를 한 컴퓨터에서 분리하여 사용하는 방법 (0) | 2022.07.18 |
[Clean Code 를 읽으며] 1장. 깨끗한 코드란 (0) | 2022.06.29 |
[Clean Code 를 읽으며] 0장. 들어가며 (0) | 2022.06.07 |
Git 이 뭐에요, github은 또 뭔데요..먹는거에요..? (전체적인 틀 정리) (0) | 2022.02.09 |