AI 시대에서의 두 사고방식
지금까지 코딩과 설계에 대해서 이야기하고, 설계의 중요성에 대해서 이야기했다. 이 장에서는 설계에 대해 좀 더 깊이 있게 접근하고자 한다.
우리가 살고 있는 2025년은 인공지능과 자동화 기술이 급속도로 발전하는 시대다. 이런 변화 속에서 많은 사람들이 프로그래밍을 배우기 시작했지만, 정작 어떤 사고방식을 기를 것인가에 대한 고민은 부족하다. 단순히 코딩 문법을 외우는 것을 넘어서, 근본적으로 다른 두 사고방식인 '알고리즘적 사고'와 '시스템적 사고' 중에서 선택해야 한다.
이 두 사고방식의 차이를 이해하는 것은 단순히 프로그래밍 실력을 높이는 차원을 넘어선다. AI가 인간의 많은 업무를 대체하게 될 미래에, 어떤 사고방식을 갖추느냐에 따라 우리의 역할과 가치가 완전히 달라질 수 있기 때문이다.
알고리즘적 사고는 컴퓨팅 사고의 핵심 요소로, 문제를 단계별로 분해하고 논리적 순서에 따라 해결하는 방식이다. 이는 마치 요리 레시피를 따르는 것과 같다. "먼저 재료를 준비하고, 다음에 볶고, 마지막에 양념을 넣는다"는 식으로 명확한 순서가 있고, 각 단계를 정확히 따르면 예상된 결과를 얻을 수 있다.
2025년 현재까지도 대부분의 코딩 교육이 이런 방식에 집중되어 있다. 학생들은 "문제를 분해하고, 패턴을 인식하고, 추상화하고, 알고리즘을 설계하는" 과정을 반복 학습한다. 이는 분명히 중요한 기초 능력이다. 컴퓨터가 이해할 수 있는 명확하고 논리적인 지시를 만드는 능력은 프로그래밍의 기본이기 때문이다.
알고리즘적 사고는 입력과 출력이 명확하게 정의된 문제에서 빛을 발한다. 예를 들어, "숫자 목록에서 가장 큰 값을 찾기", "문자열을 정렬하기", "최단 경로 찾기" 같은 문제들이다. 이런 문제들은 최적해가 존재하고, 그 해를 찾는 명확한 방법론이 있다.
실제로 현재 ChatGPT나 GitHub Copilot 같은 AI 도구들이 이런 종류의 문제를 매우 잘 해결한다. 간단한 알고리즘이나 데이터 처리 코드는 AI가 사람보다 빠르고 정확하게 작성할 수 있다. 이는 알고리즘적 사고가 패턴화 되고 자동화하기 쉬운 영역이라는 것을 보여준다.
하지만 알고리즘적 사고만으로는 현실의 복잡한 문제를 해결하기 어렵다. 앞서 이야기한 2024년 7월에 발생한 크라우드스트라이크 사고가 좋은 예다. 이 사건은 단순한 코딩 오류가 아니라 시스템 설계의 문제였다. 보안 소프트웨어의 업데이트 하나가 전 세계 항공사, 은행, 병원의 시스템을 마비시켰다.
문제는 "업데이트가 실패하면 어떻게 할 것인가?"라는 시스템 차원의 고민이 부족했다는 점이다. 개별 코드는 완벽했을지 모르지만, 전체 시스템의 상호작용과 예외 상황에 대한 고려가 부족했던 것이다. 알고리즘적 사고만으로는 이런 복합적이고 예측 불가능한 상황을 다루기 어렵다.
시스템적 사고는 문제를 개별 요소들의 집합이 아닌, 상호 연결된 전체로 바라보는 방식이다. 마치 숲을 볼 때 나무 하나하나에 집중하는 것이 아니라, 나무들 간의 관계, 토양, 기후, 동물들의 상호작용까지 모두 고려하는 것과 같다.
MIT의 시스템 과학자인 피터 센게가 <학습하는 조직>에서 이야기한 이 개념은 특히 복잡한 조직과 사회 문제를 다룰 때 위력을 발휘한다. 시스템적 사고는 단순히 "A를 하면 B가 된다"는 선형적 사고를 넘어서, "A가 B에 영향을 주고, B가 C에 영향을 주며, C가 다시 A에 영향을 주는" 순환적 관계를 이해한다.
시스템적 사고의 핵심은 피드백 루프를 인식하는 것이다. 현실에서는 대부분의 문제가 서로 연결되어 있고, 한 부분의 변화가 다른 부분에 예상치 못한 영향을 미친다.
예를 들어, 회사에서 "생산성을 높이기 위해 근무시간을 늘린다"라고 결정했다고 하자. 알고리즘적 사고로는 "근무시간↑ = 생산성↑"라는 단순한 공식을 적용할 것이다. 하지만 시스템적 사고로 보면 더 복잡한 그림이 그려진다. 근무시간이 늘어나면 직원들의 피로도가 증가하고, 이는 실제 생산성 저하로 이어질 수 있다. 또한 직원 만족도가 떨어져 이직률이 높아지고, 결국 더 큰 비용이 발생할 수 있다.
시스템적 사고에서 중요한 개념 중 하나는 '창발'이다. 이는 개별 구성요소들이 결합했을 때 나타나는, 각 부분의 단순한 합으로는 설명할 수 없는 새로운 속성을 의미한다.
클라우드 컴퓨팅 시스템이 좋은 예다. 수만 개의 개별 서버가 있는 클러스터에서는 매시간 한 대 이상의 서버가 고장 날 수 있다. 하지만 잘 설계된 시스템에서는 개별 서버의 고장이 전체 서비스에 영향을 주지 않는다. 이는 개별 서버의 성능만으로는 설명할 수 없는 시스템 차원의 안정성이다.
알고리즘적 사고는 문제를 명확하게 정의된 경계 안에서 파악한다. "입력 X가 주어졌을 때 출력 Y를 만들어라"는 식으로 문제와 해답의 범위가 분명하다. 반면 시스템적 사고는 문제 자체가 더 큰 맥락 안에서 형성된다고 본다. 문제의 경계가 모호하고, 문제를 해결하는 과정에서 새로운 문제가 발견되기도 한다.
많은 기업들이 겪고 있는 디지털 전환 과제를 예로 들어보자. 알고리즘적 사고로 접근하면 "기존 시스템을 디지털 시스템으로 바꾸기"라는 기술적 문제로 인식한다. 하지만 시스템적 사고로 보면 기술 변화, 조직 문화 변화, 직원 교육, 고객 행동 변화, 경쟁 환경 변화 등이 모두 연결된 복합 문제다.
알고리즘적 사고는 단계적이고 예측 가능한 해결 과정을 따른다. 각 단계의 결과를 예측할 수 있고, 전체 과정을 계획하고 통제할 수 있다. 반면 시스템적 사고는 반복적이고 적응적인 과정을 거친다. 초기 해결책을 시도해 보고, 그 결과를 관찰하고, 시스템의 반응을 보면서 접근 방식을 조정해 나간다.
실제로 성공적인 스타트업들의 제품 개발 과정을 보면 시스템적 사고의 특징을 잘 보여준다. 최소 기능 제품(MVP)을 만들어 출시하고, 사용자 반응을 보고, 피드백을 받아 개선하는 과정을 반복한다. 이는 처음부터 완벽한 계획을 세우고 실행하는 알고리즘적 접근과는 완전히 다르다.
알고리즘적 사고에서 실패는 계획이나 실행의 오류로 인식된다. "어디서 틀렸는지 찾아서 고치면 된다"는 관점이다. 하지만 시스템적 사고에서 실패는 시스템의 복잡성을 이해하지 못했거나, 예상치 못한 상호작용 때문에 발생하는 것으로 본다.
AI 시스템의 개발 과정이 이런 차이를 잘 보여준다. 초기에는 더 많은 데이터와 더 큰 모델을 만들면 성능이 향상될 것이라는 알고리즘적 접근을 했다. 하지만 최근에는 모델의 안전성, 편향성, 사회적 영향 등을 종합적으로 고려하는 시스템적 접근이 중요해지고 있다.
2020년부터 2023년까지 이어진 코로나19 팬데믹 대응 과정에서 두 사고방식의 차이가 극명하게 드러났다. 초기에는 "바이러스를 막으면 문제가 해결된다"는 알고리즘적 접근이 주를 이뤘다. 마스크 착용, 거리두기, 백신 개발이라는 명확한 해결책에 집중했다.
하지만 시간이 지나면서 경제적 영향, 사회적 고립, 교육 격차, 정신 건강 문제 등 복합적인 이슈들이 드러났다. 단순히 바이러스만 막으면 되는 것이 아니라, 공중보건, 경제, 교육, 사회 시스템 전체를 고려해야 하는 복합 문제였다. 성공적인 대응을 한 국가들은 대부분 시스템적 접근을 택했다.
또한 많은 기업들이 직면한 지속가능경영 과제도 좋은 예다. 알고리즘적 사고로 접근하면 "탄소 배출을 줄이기 위한 기술 도입"이나 "재활용 가능한 포장재 사용" 같은 개별 해결책에 집중한다.
하지만 시스템적 사고로 접근하는 기업들은 공급망 전체, 고객 행동, 지역 사회와의 관계, 장기적 비즈니스 모델 변화까지 고려한다.
스마트 시티 개발 과정에서도 두 접근 방식의 차이가 뚜렷하다. 알고리즘적 접근으로는 "IoT 센서를 설치하고, 데이터를 수집하고, AI로 분석해서 최적화한다"는 기술 중심적 계획을 세운다.
하지만 성공적인 스마트 시티 프로젝트들은 시스템적 접근을 택한다. 기술뿐만 아니라 시민 참여, 거버넌스 구조, 경제적 지속가능성, 사회적 형평성 등을 종합적으로 고려한다.
AI 기술의 발전을 보면, 알고리즘적 사고가 필요한 많은 업무들이 자동화되고 있다. ChatGPT는 복잡한 코딩 문제를 단 몇 초 만에 해결하고, GitHub Copilot은 개발자가 생각하는 것보다 빠르게 코드를 작성한다.
더 나아가 최근 등장한 Claude Code, Cursor, Gemini CLI 같은 도구들은 전체 프로젝트를 자동으로 생성하고, 버그를 찾아 수정하며, 테스트까지 자동화한다. 알고리즘적 사고로 해결할 수 있는 대부분의 문제들이 AI의 영역으로 넘어가고 있다.
이런 변화는 단순히 프로그래밍 분야에만 국한되지 않는다. 의료 진단, 법률 문서 검토, 재무 분석, 심지어 창작 활동까지 패턴화 할 수 있는 영역들이 AI로 대체되고 있다.
반면 시스템적 사고가 필요한 영역은 여전히 인간의 고유 영역으로 남아있다. AI는 과거 데이터를 기반으로 패턴을 학습하지만, 시스템적 사고는 새로운 맥락을 이해하고 예상치 못한 상호작용을 다루는 능력이다.
가장 혁신적인 AI 시스템들도 여전히 인간의 시스템적 판단에 의존한다. OpenAI의 GPT 개발 과정에서도 기술적 성능뿐만 아니라 사회적 영향, 윤리적 고려사항, 장기적 안전성 등을 종합적으로 판단하는 것은 인간의 몫이다.
특히 새로운 기술이나 서비스를 도입할 때 "이것이 전체 시스템에 어떤 영향을 미칠 것인가?"를 판단하는 능력은 AI로 대체하기 어렵다. 이런 판단에는 기술적 이해뿐만 아니라 인간의 행동, 사회적 맥락, 문화적 차이에 대한 깊은 이해가 필요하기 때문이다.
현재 대부분의 코딩 교육은 여전히 알고리즘적 사고에 치우쳐 있다. 프로그래밍 언어 문법, 자료구조, 알고리즘 문제 해결에 집중한다. 이는 마치 악기 연주법만 가르치고 음악의 전체적 흐름이나 감정 표현은 가르치지 않는 것과 같다.
특히 한국의 교육 시스템은 정답이 있는 문제에 익숙하다. "이 문제의 최적 알고리즘은 무엇인가?", "이 코드의 시간 복잡도는 얼마인가?" 같은 질문들이다. 하지만 현실에서는 "이 시스템을 어떻게 설계해야 할까?", "이 결정이 전체에 어떤 영향을 미칠까?" 같은 정답이 없는 질문들이 더 중요하다.
앞으로의 교육은 시스템적 사고를 기르는 방향으로 변해야 한다. 단순히 주어진 문제를 해결하는 것이 아니라, 문제를 발견하고 정의하는 능력을 기르는 것이다. 또한 여러 관점에서 문제를 바라보고, 다양한 이해관계자를 고려하며, 장기적 영향을 예측하는 능력이 필요하다.
이를 위해서는 프로젝트 기반 학습이 중요하다. 실제 문제를 가지고 처음부터 끝까지 해결해 보는 경험을 통해 시스템의 복잡성을 체감할 수 있다. 또한 다양한 배경의 사람들과 협업하면서 서로 다른 관점을 이해하는 연습도 필요하다.
시스템적 사고를 기르려면 평가 방식도 바뀌어야 한다. 정답을 찾는 시험 대신, 문제를 정의하고 해결 과정을 설계하는 평가가 필요하다. "왜 이런 방식을 선택했는가?", "다른 방법도 고려해 봤는가?", "이 해결책의 한계는 무엇인가?" 같은 질문을 통해 사고 과정을 평가해야 한다.
또한 개인의 성과만이 아니라 팀 프로젝트에서의 협업 능력, 다양한 관점을 종합하는 능력, 시스템 전체를 이해하는 능력을 평가하는 것이 중요하다.
모든 사람이 시스템적 사고를 해야 하는 것은 아니다. 개인의 성향과 관심사에 따라 더 적합한 방향이 있다. 명확하고 논리적인 문제 해결을 좋아하고, 정확한 답을 찾는 과정에서 만족을 느끼는 사람이라면 알고리즘적 사고를 더 깊이 파는 것도 좋은 선택이다.
반면 복잡하고 모호한 상황을 즐기고, 여러 관점에서 문제를 바라보는 것을 좋아하며, 사람들과의 상호작용을 중시하는 사람이라면 시스템적 사고를 기르는 것이 더 적합할 것이다.
현재 개발자 시장을 보면, 두 방향 모두 여전히 수요가 있다. 알고리즘 전문가는 AI 시스템 최적화, 고성능 컴퓨팅, 금융 알고리즘 등의 분야에서 높은 가치를 인정받는다. 반면 시스템 설계자는 전체 아키텍처 설계, 기술 전략 수립, 복합 문제 해결 등의 영역에서 중요한 역할을 한다.
하지만 장기적으로 보면 시스템적 사고의 중요성이 더 커질 것으로 예상된다. AI가 알고리즘적 업무를 대체하는 속도가 빨라지면서, 인간은 더욱 복잡하고 창의적인 시스템 설계 업무에 집중하게 될 것이다.
가장 이상적인 것은 두 사고방식을 모두 갖추는 것이다. 알고리즘적 사고의 기초 위에 시스템적 사고를 더하면 훨씬 강력한 문제 해결 능력을 갖출 수 있다. 세부적인 구현 능력과 전체적인 설계 능력을 동시에 갖춘 개발자는 현재도 매우 희귀하고 높은 가치를 인정받는다.
이를 위해서는 점진적 학습이 중요하다. 먼저 알고리즘적 사고의 기초를 탄탄히 하고, 그 위에 시스템적 관점을 더해가는 방식이 효과적이다. 작은 프로젝트부터 시작해서 점차 복잡한 시스템을 다뤄보면서 두 사고방식을 통합해 나가는 것이다.
현재 우리는 기술사적으로 매우 중요한 전환점에 서 있다. AI가 인간의 많은 인지적 업무를 대체하기 시작하면서, 인간만이 할 수 있는 고유한 영역을 재정의해야 하는 시점이다.
알고리즘적 사고와 시스템적 사고는 서로 대립하는 것이 아니라 상호 보완적인 관계다. 하지만 미래의 변화를 고려할 때, 시스템적 사고의 중요성이 더욱 커질 것이라는 점은 분명하다. 복잡성이 증가하는 세상에서, 전체를 이해하고 다양한 요소들 간의 관계를 파악하며, 예상치 못한 변화에 적응하는 능력이 가장 중요한 경쟁력이 될 것이다.
코딩 교육을 받거나 기술 분야에서 경력을 쌓고자 하는 사람들은 이런 변화를 미리 준비해야 한다. 단순히 프로그래밍 언어를 배우는 것을 넘어서, 복잡한 시스템을 이해하고 설계할 수 있는 능력을 기르는 것이 미래 준비를 위해 필요하다.
결국 중요한 것은 기술 자체가 아니라 기술을 통해 무엇을 만들어낼 것인가를 설계하는 능력이다. AI가 점점 똑똑해질수록, 인간은 더욱 창의적이고 통합적인 사고를 요구받게 될 것이다. 지금부터라도 시스템적 사고를 기르기 시작한다면, 변화하는 미래에서도 자신만의 고유한 가치를 만들어낼 수 있을 것이다.