포스트

머릿속 엉킨 로직을 푸는 열쇠: 컴퓨팅적 사고와 플로우차트

머릿속 엉킨 로직을 푸는 열쇠: 컴퓨팅적 사고와 플로우차트

🧐 왜 코딩 전 ‘생각 훈련’이 필요할까?

많은 개발자가 다음과 같은 고민을 합니다.

  • “문제는 이해했는데, 어디서부터 코드를 짜야 할지 모르겠어요.”
  • “머릿속으로는 정리된 것 같은데 막상 코드로 옮기면 로직이 꼬여요.”

개발공부를 하다 보면 누구나 한 번쯤 마주하는 거대한 벽입니다. 조건이 많아질수록 내가 짠 로직에 내가 길을 잃기도 합니다. 이는 단순히 코딩 실력의 문제가 아니라, 문제를 분해하고 설계하는 ‘컴퓨팅적 사고력’ 훈련이 부족해서 생기는 현상이라고 합니다. 오늘은 이 막막함을 해결해 줄 플로우차트(FlowChart) 작성법과 논리 설계 단계를 정리해 보았습니다.


☕ 실전 연습: 카페 포인트 적립 시스템

막연한 고민을 구체적인 논리로 바꾸기 위해 ‘카페 포인트 적립 시스템’을 예로 들어 단계별로 접근해 보았습니다.

[요구사항 요약]

  • 커피 한 잔 가격: 4,000원
  • 적립 혜택: 결제 금액의 5%
  • 종료 조건: 0 입력 시 주문 종료 및 최종 결과 출력

1단계: 입력/출력/상태 정리

가장 먼저 무엇을 받고, 무엇을 내보내며, 어떤 값을 기억해야 하는지 정의합니다.

  • 입력: 주문할 커피 잔 수, 종료 신호(0)
  • 출력: 총 결제 금액(totalAmount), 총 적립 포인트(totalPoint)
  • 상태 (기억해야 할 값): 누적된 결제 금액과 포인트

2단계: 조건 및 예외 정리

프로그램이 갈라지는 지점과 멈추는 지점을 명확히 합니다.

  • 종료 조건: 사용자가 0을 입력했을 때
  • 분기 조건: 입력값이 0인가? 아니면 주문 수량인가?
  • 예외 처리: 음수 입력 시 “잘못된 입력입니다” 출력 후 재입력 유도

3단계: 흐름 설계 (알고리즘)

이제 실제 동작 순서를 레시피처럼 나열합니다.

  1. 초기화: totalAmount = 0, totalPoint = 0으로 시작
  2. 반복: - 수량 입력받기 -> 0이면 반복 탈출 -> 아니면 결제 금액 계산
    • 포인트 계산(금액 * 0.05) 및 누적
  3. 종료: 최종 누적 값들을 출력하고 마무리

🎨 플로우차트(Flowchart)로 시각화하기

생각이 정리되었다면, 이를 약속된 기호를 사용해 그림으로 그려봅니다. 도구는 Miro 같은 툴을 사용하면 훨씬 수월합니다. 참고로 모든 예외 상황에 대해 그리는 것이 아니라 프로그램이 종료될만한 에러를 그려주면 됩니다.

기본 심볼 가이드

심볼이름용도
타원형Terminal시작과 종료
직사각형Process계산, 값 할당 등 일반적인 처리
마름모Decision조건 분기 (Yes / No)
평행사변형Input/Output데이터 입력 및 결과 출력
화살표Arrow흐름의 방향

작성 원칙

  • 흐름은 기본적으로 위에서 아래로, 왼쪽에서 오른쪽으로 향하게 합니다.
  • 시작과 종료 지점을 반드시 명시합니다.
  • 마름모(의사결정)에서 나가는 선에는 YES/NO를 꼭 써줍니다.
  • 간결하고 명확한 표현을 사용해 누구나 읽을 수 있게 합니다.

🧠 학습 회고: 막막함이 확신으로 바뀌는 과정

학부생 시절 언뜻 마주쳤던 플로우차트가 다시금 중요하게 다가온 하루였습니다. 처음에는 “그냥 머릿속으로 생각하면 되지, 굳이 그려야 하나?”라는 생각도 들었습니다. 하지만 막상 그려보니 내가 놓쳤던 예외 상황(음수 입력 등)이 눈에 보이기 시작했고, 로직에 대한 확신이 생기면서 더 이해하기 쉬워졌습니다.

이제는 코드를 짜기 전 펜을 들어 문제를 이해하고 시각화하는 습관을 들여보려 합니다. “코딩은 타이핑이 아니라 생각하는 과정”임을 잊지 않는 개발자가 되겠습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.