머릿속 엉킨 로직을 푸는 열쇠: 컴퓨팅적 사고와 플로우차트
머릿속 엉킨 로직을 푸는 열쇠: 컴퓨팅적 사고와 플로우차트
왜 코딩 전 ‘생각 훈련’이 필요할까?
많은 개발자가 이런 고민을 합니다.
- “문제는 이해했는데, 어디서부터 코드를 짜야 할지 모르겠어요.”
- “머릿속으로는 정리된 것 같은데 막상 코드로 옮기면 로직이 꼬여요.”
개발공부를 하다 보면 누구나 한 번쯤 마주하는 거대한 벽입니다. 조건이 많아질수록 내가 짠 로직에 내가 길을 잃기도 합니다. 단순히 코딩 실력의 문제가 아니라 문제를 분해하고 설계하는 ‘컴퓨팅적 사고력’ 훈련이 부족해서 생기는 현상입니다. 오늘은 이 막막함을 해결해 줄 플로우차트(FlowChart) 작성법과 논리 설계 단계를 정리해 봤습니다.
실전 연습: 카페 포인트 적립 시스템
막연한 고민을 구체적인 논리로 바꾸려고 ‘카페 포인트 적립 시스템’을 예로 들어 단계별로 접근해 봤습니다.
[요구사항 요약]
- 커피 한 잔 가격:
4,000원 - 적립 혜택: 결제 금액의
5% - 종료 조건:
0입력 시 주문 종료 및 최종 결과 출력
1단계: 입력/출력/상태 정리
가장 먼저 무엇을 받고 무엇을 내보내며 어떤 값을 기억해야 하는지 정의합니다.
- 입력: 주문할 커피 잔 수, 종료 신호(0)
- 출력: 총 결제 금액(
totalAmount), 총 적립 포인트(totalPoint) - 상태 (기억해야 할 값): 누적된 결제 금액과 포인트
2단계: 조건 및 예외 정리
프로그램이 갈라지는 지점과 멈추는 지점을 명확히 합니다.
- 종료 조건: 사용자가
0을 입력했을 때 - 분기 조건: 입력값이
0인가? 아니면 주문 수량인가? - 예외 처리: 음수 입력 시 “잘못된 입력입니다” 출력 후 재입력 유도
3단계: 흐름 설계 (알고리즘)
이제 실제 동작 순서를 레시피처럼 나열합니다.
- 초기화:
totalAmount = 0,totalPoint = 0으로 시작 - 반복: - 수량 입력받기 ->
0이면 반복 탈출 -> 아니면 결제 금액 계산- 포인트 계산(금액 * 0.05) 및 누적
- 종료: 최종 누적 값들을 출력하고 마무리
플로우차트(Flowchart)로 시각화하기
생각이 정리됐다면 약속된 기호로 그림을 그려 봅니다. Miro 같은 도구를 쓰면 훨씬 수월합니다. 참고로 모든 예외 상황을 그리는 게 아니라 프로그램이 종료될 만한 에러만 그려주면 됩니다.
기본 심볼 가이드
| 심볼 | 이름 | 용도 |
|---|---|---|
| 타원형 | Terminal | 시작과 종료 |
| 직사각형 | Process | 계산, 값 할당 등 일반적인 처리 |
| 마름모 | Decision | 조건 분기 (Yes / No) |
| 평행사변형 | Input/Output | 데이터 입력 및 결과 출력 |
| 화살표 | Arrow | 흐름의 방향 |
작성 원칙
- 흐름은 기본적으로 위에서 아래로, 왼쪽에서 오른쪽으로 향하게 합니다.
- 시작과 종료 지점을 반드시 명시합니다.
- 마름모(의사결정)에서 나가는 선에는 YES/NO를 꼭 써줍니다.
- 간결하고 명확한 표현을 사용해 누구나 읽을 수 있게 합니다.
막막함이 확신으로 바뀌던 학습 회고
학부생 시절 언뜻 마주쳤던 플로우차트가 다시금 중요하게 다가온 하루였습니다. 처음에는 “그냥 머릿속으로 생각하면 되지, 굳이 그려야 하나?”라는 생각도 들었습니다. 하지만 막상 그려보니 내가 놓쳤던 예외 상황(음수 입력 등)이 눈에 보이기 시작했고 로직에 확신이 생기니 더 이해하기 쉬워졌습니다.
이제는 코드를 짜기 전 펜을 들어 문제를 이해하고 시각화하는 습관을 들여보려 합니다. “코딩은 타이핑이 아니라 생각하는 과정”임을 잊지 않는 개발자가 되겠습니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.