개발을 하다 보면 키보드에 손부터 올리는 경우가 많다. 하지만 복잡한 알고리즘 문제를 풀거나 새로운 기능을 개발할 때, 무작정 코드부터 치기 시작하면 중간에 논리가 꼬여 싹 다 지우는 경험을 하게 된다.
이 때 필요한 것이 바로 슈도코드(Pseudocode)다. 건축으로 치면 설계도에 해당한다.
1. 슈도코드(Psudocode)란
가짜를 뜻하는 Pseudo와 Code의 합성어로 컴퓨터가 아닌 사람이 읽기 위해 작성한 코드를 말한다. 특정 프로그래밍 언어의 문법에 얽매이지 않고, 프로그램의 논리적 흐름을 일반적인 언어와 코딩 스타일을 섞어 흉내 낸 것이다.
2. 필요성
- 언어 독립성 : Java 개발자와 C개발자가 서로 코드를 몰라도 슈도코드로 대화하면 로직을 이해할 수 있다.
- 논리 집중 : 세미콜론 빼먹었는지, 괄호가 맞는지 신경 쓸 필요 없이 어떻게 해결할까에만 집중할 수 있다.
- 수정 용이 : 코드를 다 짜고 나서 구조를 바꾸려면 대공사지만, 슈도코드는 그냥 지우개로 지우면 된다.
3. 작성 규칙
슈도코드는 문법이 정해져 있지 않다. 다른사람이 알아볼 수만 있으면 된다. 하지만 통용되는 관례는 있다.
- 키워드는 대문자로 : IF, ELSE, WHILE, FOR, RETURN, PRINT 등 명령어는 대문자로 써서 눈에 띄게 한다.
- 들여쓰기 : 계층 구조를 파악하기 위해 들여쓰기는 필수다.
- 간결함 : int a = 0; 처럼 구체적으로 쓰기 보단 set a to 0 처럼 쓴다.
4. 예시
[슈도 코드]
FUNCTION FindMax(array)
Set max_value to array[0]
FOR each number IN array
IF number > max_value THEN
Set max_value to number
END IF
END FOR
RETURN max_value
END FUNCTION
[실제 코드]
public int findMax(int[] array) {
int maxValue = array[0];
for (int number : array) {
if (number > maxValue) {
maxValue = number;
}
}
return maxValue;
}
5. 작성 팁
- 너무 자세히 쓰지 마라 : i++, System.out.println 같이 특정 언어의 문법을 너무 많이 섞으면 슈도코드의 장점이 사라진다.
- 너무 추상적으로 쓰지 마라 : 단순히 정렬한다라고 쓰면 안된다. 버블 정렬을 수행한다 처럼 구현 가능한 수준이어야 한다.
- 한글로 써도 된다
만약(IF) 점수가 60점 이상이면
"합격" 출력
아니면(ELSE)
"불합격" 출력
결론
생각할 시간이 부족해서 코딩부터 한다는 말은 틀렸다. 생각을 정리하지 않고 코딩하면 디버깅하는 데 시간이 배로 든다.
복잡한 문제를 만났다면, IDE가 아니라 메모장을 먼저 켜는 습관을 들이자
'Programming > Skill' 카테고리의 다른 글
| [Refactoring] if-else 지옥에서 탈출하기 Abstract 심화편 (0) | 2026.02.27 |
|---|---|
| [IntelliJ] 인텔리제이 단축키 모음(Windows) (0) | 2026.02.12 |
| [IntelliJ] 인텔리제이 꿀팁 모음(HTTP Client, 단축키, 디버깅 등) (0) | 2026.02.09 |
| 조합(HAS-A)과 전략 패턴(Strategy Pattern) (0) | 2026.02.06 |
| 상속(IS-A)과 조합(HAS-A) (0) | 2026.02.05 |