[김은우의 에듀테크 트렌드 따라잡기] 코딩 교육 사이트 LeetCode가 보여주는 코딩교육의 핵심
조선에듀
기사입력 2018.04.17 09:50
  • 요즘 IT가 정말 대세가 대세구나 싶었습니다. 스필버그 감독의 최신 영화 ‘레디 플레이어 원’을 보면서 든 생각입니다. 게임이 주인공이고, 게임을 플레이하고, 게임 개발자가 만든 ‘문제’를 푸는 게 영화에 핵심 플롯인 영화였지요. 그야말로 IT의 시대임을 영화 또한 인정한 게 아닐까 합니다.

    시대를 이끄는 IT 회사에 들어가려면 어떻게 해야 할까요? ‘코딩인터뷰’라는 걸 실행하는 IT 회사가 많습니다. 직접 인터뷰실에서 코딩 과제를 주고, 푸는 과정을 지켜보는 거지요. 서술형, 구술형 시험에 가까운 방식입니다.

  • 웹사이트 ‘LeetCode’ 로고 (출처: 릿코드 공식 홈페이지 leetcode.com)
    ▲ 웹사이트 ‘LeetCode’ 로고 (출처: 릿코드 공식 홈페이지 leetcode.com)

    인터뷰를 대비하기 위해 프로그래머들이 활용하는 사이트가 있습니다. ‘LeetCode’ 인데요. 이 사이트에는 수준별로 다양한 코딩 문제가 있습니다. 일종에 문제 은행이죠. 문제를 푼 후에는 코드가 정상적으로 작동하는지 확인까지 해줍니다.

    이 사이트는 코딩 교육 사이트라기보다는 ‘코딩’이라는 문제 해결 기술을 훈련하는 사람들을 위한 공동체, 커뮤니티 사이트라고 보는 게 더 정확합니다. 문제은행은 물론, 인터뷰를 준비하는 사람뿐 아니라 회사도 뛰어난 재능을 ‘LeetCode’를 통해 찾을 수 있습니다. 정답이 있지 않고, 문제를 해결할 수 있는 다양한 방법이 있는 코딩이기에 가능한 커뮤니티겠죠.

    ‘LeetCode’의 사례를 듣고, 직접 웹사이트를 보면서 코딩 교육의 본질이 무엇일지 다시금 생각해보게 되었습니다. 언론을 통해 전해 듣는 코딩교육에 현실은 부작용에 초점이 맞춰져 있습니다. 고액의 학원에서 기계적으로 코딩을 가르친다는 비판이지요.

    코딩 교육이 미국 실리콘 밸리를 중심으로 세계의 대세가 된 건 사실입니다. 하지만 기계적으로 빠르게 진도를 나가고 외울 때까지 체화시키는 코딩 학원은 분명 세계 대세와는 좀 다르게 느껴집니다. ‘문제를 외워서 푸는’ 한국의 고시 시스템에서 내용만 ‘코딩’으로 바뀌었기 때문은 아닐까요?

    설사 서양이 방식과 다르다고 해도, 열심히 공부한다면 뭐든 상관없지 않을까요? 그렇지는 않습니다. 코딩에서 핵심 능력을 키우기에, 현재 전형적인 입시학원식 컬리큘럼이 적합할지 의문이 들기 때문입니다.

    ‘LeetCode’의 핵심은 커뮤니티입니다. 스스로 문제 해결을 위해 프로그램을 설계합니다. 설계를 위해 필요한 언어를 스스로 배웁니다. 이를 문제를 스스로 ‘LeetCode’ 등의 문제은행에서 문제를 찾아 풀어보지요. 본인의 정답을 다른 사람과 공유하고 토론하면서 점점 이해도가 깊어집니다. 강사가 만든 ‘지옥훈련’을 견뎌내서, 강사가 미리 준비한 문제를 누구보다 빠르게, 기계적으로 풀어낼 수 있게 만드는 ‘공포의 외인구단’이 연상되는 훈련과는 사뭇 다르게 느껴집니다.

    문제는 이런 과거 지향적인 교수법이 코딩과는 전혀 맞지 않는다는 사실입니다. 사실, 코딩교육에서 코딩 그 자체는 전혀 중요하지 않습니다. 프로그래밍은 너무도 빠르게 바뀌기 때문이죠. 10년, 아니 5년 후에 어떤 방식으로 코딩할지는 아무도 모릅니다. 따라서 프로그래머는 쉼 없이 배워야 합니다. 본인의 실력을 스스로 알아야 합니다. 그리고 자신의 실력에 맞게 스스로 배우는 방법 또한 알아야겠지요. 어디서 프로그래밍을 배울 수 있는지. 어디서 문제를 풀어볼 수 있을지. 어디서 더 좋은 문제 풀이법을 살펴보고 비교할 수 있는지를 아는 게 중요합니다.

  • 영화 ‘레디 플레이어 원’ 포스터
    ▲ 영화 ‘레디 플레이어 원’ 포스터

    영화 ‘레디 플레이어 원’은 게임이 현실이 된 세상을 묘사합니다. 주인공은 스스로 게임 개발자가 만든 문제를 풀어내기 위해 팀을 만듭니다. 도서관을 뒤집니다. 다양한 장소를 찾아 문제를 풀고 서로의 해답을 비교하지요.

    프로그래밍의 세계가 바로 그렇습니다. 서로 자신만의 문제를 찾아, 이를 풀고, 서로의 해답을 비교하며 스스로 배웁니다. 이 세계에서 중요한 건 단답형 문제를 잘 푸는 능력 그 자체가 아닙니다. 문제가 무엇인지 정의하고, 그 문제를 풀기 위해 어떤 공부를 해야 하는지 알고, 그 문제를 푸는 데 도움을 줄 수 있는 사람을 찾는 ‘문제 해결력’이 핵심입니다.

    코딩을 위해서 필요한 건 기존 문제풀이식 학원은 아닙니다. 코딩 문제는 이미 한국에서도 검색을 통해 얼마든지 찾아볼 수 있습니다. 코딩 커뮤니티도 많지요. 이미 알고 있는 문제를 기계적으로 빨리 푸는 노하우를 알려주기보다는 넘치는 자료 중 무엇을 찾아서 문제를 해결할 수 있는지 알려주는 멘토링이 중요합니다.

    본질에서 벗어나면 쓸데없는 데 힘을 쓰게 됩니다. 지금 한국이 그런 건 아닐까요? 코딩 교육이 의무화된 지금, 코딩 교육의 본질을 보여주는 웹사이트 ‘LeetCode’에 관심을 가져 봄 직한 이유입니다.

  • ※에듀포스트에 실린 외부 필진 칼럼은 본지의 편집방향과 다를 수 있습니다.