우리는 종종 “문제를 정의하는 사람이 되라”, “전체 흐름을 설계할 줄 알아야 한다”고 말한다. 그러나 그것이 실제로 무엇을 어떻게 훈련해야 하는지를 말해주는 경우는 드물다. 마치 감각처럼 이야기되고, 재능처럼 여겨지기 때문이다. 그러나 프로시저 능력과 설계자의 감각은 충분히 훈련 가능한 기술이며, 사고의 순서를 바꾸는 것으로부터 시작된다.
1. 구조화 사고 훈련: ‘기능’이 아니라 ‘흐름’을 본다
대부분의 코딩 교육은 특정 기능을 구현하는 데 초점을 맞춘다. 예를 들어, 로그인 기능을 만들고, 장바구니 기능을 구현하고, 결제 기능을 붙인다.
그러나 설계자는 이 개별 기능이 어떤 순서와 조건과 연결 구조 속에 놓여 있는지를 먼저 본다.
훈련법:
- 어떤 서비스든 접할 때 “이 기능은 어떤 흐름 속에 있는가?”를 역추적해본다.
- 앱을 사용할 때 클릭 한 번에 어떤 데이터 흐름이 일어나는지를 상상하고 그려본다.
- 실제 API 문서를 읽고, 함수 간 호출 구조를 도식화해보는 습관을 들인다.
이런 연습은 ‘생각의 단위’를 기능이 아니라 ‘단계’로 바꾸는 훈련이다.
2. 시나리오 설계 훈련: 예외와 조건을 정의할 줄 아는 힘
설계자에게 가장 필요한 능력은 ‘예외를 예측하는 힘’이다. 정상 흐름만 짜는 것은 초보자의 발상이다.
설계자는 ‘무슨 일이 잘못될 수 있는가’를 먼저 떠올리고, 그것이 발생할 경우 어떤 조건을 체크해야 하는지를 선제적으로 시나리오화한다.
훈련법:
- 어떤 작업 흐름이든 “실패 조건”을 먼저 정의하고, 그에 따른 분기 시나리오를 도식화해본다.
- 로그인 예시를 통해 실패 케이스(비밀번호 틀림, 아이디 없음, 서버 지연 등)를 나열하고, 처리 흐름을 그려본다.
- 트랜잭션 처리, 동시성 제어, 데이터 무결성 유지 등 설계의 관점에서 오류를 상상하고 해결책을 세운다.
이런 연습은 ‘예외’를 중심으로 시스템을 보는 훈련이자, 방어적 설계를 가능하게 만든다.
3. 문제 분해 훈련: 큰 문제를 쪼개고 모듈화하는 감각
복잡한 문제는 한 번에 해결할 수 없다. 설계자의 역량은 문제를 작은 단위로 나누는 방식에 따라 달라진다.
이때 중요한 것은 단순히 나누는 것이 아니라, 의미 있게 분해하고, 재조합 가능한 단위로 나누는 능력이다.
훈련법:
- 실제 기능 요구사항을 보고, 이를 최소 단위의 ‘절차 블록’으로 쪼개어 목록화한다.
- 예: 쇼핑몰 결제 → ‘주문 정보 수집’, ‘재고 확인’, ‘결제 요청’, ‘주문 내역 저장’, ‘고객 알림’ 등
- 각 블록에 대해 입력값/출력값/예외 조건을 적고, 블록 간 연결 구조를 도식화해본다.
이 과정을 통해 ‘기능 중심 사고’에서 ‘프로시저 중심 사고’로 전환이 이루어진다.
4. 도큐멘테이션 훈련: 말로 설계할 수 있어야 한다
설계자는 자신이 만든 구조를 팀원과 비개발자에게 설명할 수 있어야 한다. 즉, 기술을 언어로 설명하는 능력, 도큐멘테이션 역량이 필요하다.
이는 단지 문서를 잘 쓰는 수준이 아니라, 전체 설계를 언어화하여 다른 사람에게 전달하고, 질문을 예측하고, 오해를 방지하는 능력이다.
훈련법:
- 자기가 만든 기능이나 흐름을 글로 설명해보는 연습을 한다.
- 그림 없이 텍스트로 ‘이 시스템은 어떻게 작동한다’고 설명해본다.
- 팀에서 작성되는 설계서, API 문서 등을 분석하고, 거기서 어떤 설계 의도가 담겨 있는지를 유추하는 연습을 한다.
이 훈련은 ‘기술적 커뮤니케이션’이라는 실전 능력을 키운다.
생각의 단위를 바꾸는 일
프로그래밍을 잘하려면 문법을 알아야 하고, 코드를 써야 한다.
그러나 설계를 잘하려면 생각의 단위를 바꾸어야 한다.
명령어에서 절차로,
기능에서 흐름으로,
구현에서 구조로.
이제는 코드를 짜는 사람에서, 구조를 그리는 사람으로 성장해야 할 때다.
그 훈련은 천재성의 문제가 아니다.
질문을 다르게 던지고, 시야를 넓히며, 사고의 단위를 바꾸는 훈련을 매일 반복하는 일에서 출발한다.
그렇게 쌓인 감각은 언젠가 AI도 넘볼 수 없는 당신만의 설계가 된다.

블루에이지 회장; 콘텐츠 기획자 · 브랜드 마스터 · 오지여행가 · 국제구호개발 활동가
Job談 –브랜딩, 마케팅, 유통과 수출 그리고 일상다반사까지 잡담할까요?
E-mail: brian@hyuncheong.kim