상하위 개념, 로직 익히기
사회초년생 때 코딩 교육 플랫폼에서 일한 적이 있다. 초중고 학생들과 대학생 멘토를 연결해 주는 서비스였고, 구조는 단순했다. 학생이 무료 체험 수업을 한 번 듣고 나면 학부모에게 전화를 걸어 상담을 진행하고 결제를 유도하는 방식이었다. (원래는 서비스 운영 직무인데, 스타트업이라 영업까지 했다.)
그 시절에 나는 계속해서 같은 질문을 반복하게 됐다.
“왜 코딩을 배워야 할까?”
영업의 결과는 나름 성공적이었다. 6개월 동안 유료 활성화 회원수가 13명에서 120명이 넘게 되었다(=기존 재결제 + 신규 결제). 내가 말을 엄청 잘했다기보다는, 코로나 시기와 개발자 붐이라는 순풍 덕분이었다.
성과는 나쁘지 않았지만 한 가지 의문은 계속 남아 있었다.
"그래서 코딩을 배우면 진짜로 뭐가 좋을까?"
동료들과 이야기를 나눠보고 스스로도 많이 고민해 봤지만 나왔던 답은 늘 비슷했다. '문제 해결력, 컴퓨팅 사고력 등등'.
틀린 말은 아니지만 솔직히 완전히 와닿지는 않았다. 너무 추상적이었다. 내가 영업을 하면서도 스스로 완전히 설득되지는 않는 느낌이었다. 그런데 시간이 지나 이쪽 세계를 조금 더 이해하게 되면서 그 질문에 대한 답이 조금씩 보이기 시작했다.
코딩은 결국 구조를 설계하는 일이다. 이걸 아래 사례를 통해서 체감하게 되었다.
첫 번째는 내가 '웹 크롤링'을 하면서였다. 예전에는 아무 생각 없이 보던 URL이 사실은 굉장히 체계적인 구조라는 걸 알게 됐다. 예를 들어 뉴스 검색 페이지를 보면 주소 끝에 'page=1' 또는 'start=16' 같은 값이 붙는다. 페이지 번호 혹은 게시글 번호다.
https://search.naver.com/search.naver?nso=&page=3&query=ChatGPT&sm=tab_pge&ssc=tab.ur.all&start=16
(*게시글을 쭉 리스트업 했을 때 첫 번째 항목이 1번. 위 url은 16번째 항목부터 나온다는 의미)
두 번째는 utm 값을 설정할 때였다. 유저가 어떤 경로로 들어왔는지를 체크하기 위해 URL에 두는 방식인데, 잘 살펴보면 'utm=OOO' 같은 패턴으로 되어 있다. 웹 상에서 광고를 클릭했을 때 나오는 URL을 살펴보면 발견할 수 있을 것이다.
서비스 구조도 마찬가지다. 대부분 URL은 메뉴 / 서비스 / 기능 같은 계층 구조를 가진다. 서비스가 체계적으로 운영되려면 애초에 체계적으로 설계되어 있어야 하기 때문이다.
이걸 보면서 깨달았다.
이 세계는 구조로 움직인다.
그리고 코딩은 그 구조를 읽는 언어였다.
코딩을 처음 배우면 if, while 같은 문법을 접한다. 처음에는 단순해 보인다. 하지만 실제로는 세상을 작동시키는 규칙에 가깝다.
코딩 수업에서 미로 게임을 만드는 실습을 할 때 그걸 체감했다. 플레이어가 벽에 닿으면 시작 위치로 돌아가는 기능이 있었다. 사용자 입장에만 익숙했던 나는 그냥 이렇게 생각했다. “벽에 닿으면 다시 시작하네.” 하지만 시스템 입장에서는 달랐다. "벽에 닿으면 → 시작 위치로 이동한다"라는 조건이 만들어져 있기 때문이다.
신호등도 같은 원리다. 누군가가 계속 수동으로 조작하는 것이 아니라 일정 시간이 지나면 불빛이 바뀌도록 반복문이 걸려 있을 뿐이다. 24시간 돌아가는 신호등도 사실 몇 줄의 코드로 구현된다.
생각해 보면 우리의 일상 언어도 비슷하다. “만약 ~~ 하면”, “~~ 라면” 이러한 일상의 언어들은 '조건'을 의미한다. 이게 코드로 구현되면, 현실의 시스템을 움직이게 된다.
정리해 보면 코딩을 배운다는 것은 단순히 개발자가 되기 위해서만은 아니다.
코딩은
구조를 이해하는 방법을 배우는 것이고
조건(규칙/패턴)을 설계하는 방법을 배우는 것이며
복잡한 문제를 단계적으로 나누는 사고를 배우는 것이다.
위와 같은 사고방식은 개발자가 아니더라도 다양한 영역에서 도움이 된다.
코딩을 왜 배운다고 생각하세요?라는 질문의 답변이
과거에는 “문제 해결력”, “컴퓨팅 사고력”이라고 생각했다.
그러나 그 단어들이 나에게 크게 와닿지 않았다.
그런데 시간이 지나니 그 말들이 조금씩 이해되기 시작했다.
아마 코딩을 배우는 이유는 결국
세상을 조금 더 구조적으로 이해하게 되기 때문이 아닐까.
그리고 그건, 생각보다 훨씬 많은 영역에서 필요하다.