수강생 이야기
정신의학에서 사람의 추상적인 생각을 객관적으로 분석할 수 있는 AI 연구를 하고 싶어요. 코드잇은 제가 길을 잃었을 때 좋은 지도가 되어준 친구 같은 존재입니다.
네, 안녕하세요. 저는 1년째 코드잇에서 강의를 수강 중인 고려대학교 의대 본과 2학년 김선재라고 합니다.
학생 연구 프로그램에서 머신러닝 과제를 수행하며 프로그래밍을 처음 접했어요. 공부 방법을 고민하다 코드잇을 알게 되었고, 기초부터 데이터 사이언스와 AI까지 체계적으로 학습할 수 있었습니다.
작년 대한의료인공지능학회 여름학교에서 AI의 다양한 활용 가능성을 접했어요. 이전에는 AI가 엑스레이 판독처럼 기초적인 분야에 국한될 거라 생각했지만, 일기 분석을 통한 심리 상태 파악, AI 기반 뼈 모형 재구성 등 폭넓은 적용 사례를 보며 의료에서의 AI 가능성이 훨씬 크다는 걸 깨달았습니다.
지금까지 연구자가 되기 위해 통계적 지식이 필수적이었던 것처럼, 앞으로는 AI 기술을 활용한 예측과 분석도 필수가 될 것 같아요. 시대의 변화에 맞춰 AI를 직접 이해하고 활용할 수 있어야겠다고 생각했습니다.
첫 번째 장벽은 프로그래밍 언어 자체를 배우는 것이었고, 두 번째는 AI를 배우려면 수학적 개념이 필요하다는 점이었어요. 시중 강의나 책들은 처음부터 선형대수학 편미분학처럼 너무 어려운 이론 중심이거나, 반대로 원리는 알려주지 않고 실전 사용법만 다루는 경우가 많아서 학습 방법을 찾는 것이 어려웠어요.
<기본 지도 학습 알고리즘들> 강의가 가장 기억에 남아요. 기존 강의나 책들은 이론 중심이거나 실전 위주로만 구성된 경우가 많았는데, 이 강의는 필요한 개념을 그래픽을 활용해 설명한 후, 직접 수학적 원리를 이해하고 하드코딩 해보면서 직접 마치 내가 Scikit-Learn을 구현하듯 진행되는 방식이었어요. 커리큘럼이 탄탄하게 구성되어 있더라고요.
단순히 원리를 이해하는 데서 그치는 것도 아니고, 실전 경험만 쌓는 데서 끝나는 것도 아니라, 두 가지가 탄탄하게 연결되어 있어서 수업을 듣는 내내 굉장히 재미있었습니다.
가장 중요한 이유는 커리큘럼의 다양성이었어요. AI 관련 동아리 활동을 하면서 주변 친구들에게도 물어봤는데, 코드잇의 커리큘럼만 따라가도 어느 정도 수준에 도달할 수 있다는 이야기가 참 많았어요.
그 다음으로는, 타 플랫폼에서 보기 힘든 탄탄한 모션 그래픽과 설명의 체계가 마음에 들었습니다.
AI를 목표로 했기 때문에 데이터 사이언스 관련 커리어를 고려했어요. 먼저 기초 프로그래밍(파이썬)부터 배우고, 프로그래밍 원리를 깊이 이해하기 위해 컴퓨터 구조, 자료구조, 알고리즘 강의를 들었어요. 이후에는 데이터 사이언스 강의를 수강했고, 최근에는 인공지능 지도 학습 기법과 딥러닝 네트워크와 관련된 강의를 듣고 있습니다.
탄탄한 커리큘럼에 대해서는 이미 많이 말씀드렸으니, 또 하나 강조하고 싶은 점은 커뮤니티 기능이었습니다.
수업을 듣다 보면 궁금한 점이나 의문이 자주 생기는데, 이미 다른 분들이 비슷한 질문을 해 두셨고, 관련 전문가들이 상세한 답변을 남겨주셨더라고요. 덕분에 수업뿐만 아니라 댓글에서도 많은 것을 배울 수 있었습니다. 이처럼 탄탄한 커뮤니티 시스템이 잘 갖춰져 있다는 점도 큰 매력으로 느껴졌어요.
저희가 참가한 대회의 주제는 의료 현장의 문제를 인공지능 기술로 해결하기였습니다.
어떤 문제를 해결할지 고민하던 중, 2~3년 전 수업에서 들었던 내용이 떠올랐어요. 당시 교수님께서 뇌졸중 환자들이 자신의 증상을 즉시 인지하지 못해 적절한 치료 시기를 놓치는 경우가 많다고 강조하셨던 게 기억에 남았거든요.
뇌졸중은 전조 증상이 비교적 뚜렷한 질환인데도, 많은 노인분들이 이 기준을 몰라 치료 적기를 놓치는 경우가 많다고 하셨어요.
예를 들어, 이런 증상이 있으면 본인이 스스로 감지할 수 있음에도 이를 인지하지 못하는 경우가 많다는 것이었죠. 이 문제를 인공지능을 활용해 해결할 수 있지 않을까? 하는 생각이 들었어요. 특히 인공지능 모델은 웹이나 앱 형태로 개발하면 누구나 쉽게 사용할 수 있다는 점에서 좋은 해결책이 될 수 있다고 판단했습니다. 그래서 사용자가 제공한 세 가지 데이터를 분석해 뇌졸중 위험 여부를 스크리닝하는 모델을 개발했습니다. 모든 과정의 개발과 구현에 있어 팀원들의 도움이 있었기에 이를 완성할 수 있었습니다.
가장 큰 어려움은 데이터 확보였어요. 한국인 노인의 얼굴 사진이나 운동 패턴 데이터를 수집하는 것이 쉽지 않았어요. 데이터 증강 기법을 활용하고 직접 데이터를 수집하면서 문제를 해결했습니다.
인공지능 분야에서 흔히 "Garbage In, Garbage Out"이라는 말이 있는데, 이는 질 나쁜 데이터가 입력되면 질 나쁜 결과물이 나온다는 뜻이에요. 실제로 프로젝트를 진행하면서, 우리가 원하는 한국인 노인의 얼굴 사진이나 운동 패턴 데이터를 수집하는 일이 예상보다 훨씬 어렵다는 걸 실감했어요. 그래서 추가적으로 데이터 증강 기법을 학습하고 적용해 보기도 했고, 직접 데이터를 수집하는 등의 다양한 방법을 시도하면서 데이터의 질을 개선하는 데 집중했습니다.
당시 사용했던 알고리즘은 랜덤 포레스트(Random Forest), 다층 퍼셉트론(Multilayer Perceptron, MLP), 그리고 CNN(Convolutional Neural Network) 이렇게 세 가지였어요. 이 알고리즘들은 모두 코드잇 강의에서 배운 내용을 기반으로 적용했어요. 각각의 모델을 설계할 때 어떤 알고리즘을 선택할지 결정하는 과정에서 많이 도움이 되었어요. 특히 랜덤 포레스트처럼 코드잇에서 디테일하게 설명해 준 알고리즘의 경우, 수업에서 배운 내용이 크게 도움이 되었죠.
아까 말씀드린 것처럼 데이터의 중요성을 실감한 것이 가장 큰 배움이었어요. 또 한편으로는, 직접 모델을 학습시키고 결과물을 만들어 프로젝트를 진행하면서, 이론으로만 공부했던 내용이 실제로 세상에 변화를 줄 수 있는 시스템으로 구현될 수 있구나 하는 점을 인공지능의 힘을 통해 깨닫게 되었습니다.
신경학회는 기본적으로 뇌와 척추 등 신경계 관련 연구를 다루는 학회지만, 연구를 하다 보니 주변에서 뇌 연구나 신경과 관련 연구를 진행하면서 인공지능을 도구로 활용해 보고 싶어 하는 사람들이 많다는 걸 알게 되었어요.
그래서 신경학을 중심으로 하는 학회지만, 내부에서 스터디 형태로 인공지능, 통계적 기법, 데이터 사이언스 등을 가르쳐 줄 수 있으면 좋겠다고 생각했고, 그 계기로 관련 수업을 시작하게 되었습니다.
프로그래밍을 가르칠 때 가장 어려운 점 중 하나는 개념들이 복합적으로 얽혀 있다는 점이었어요. 예를 들어, A라는 개념을 이해하려면 B를 알아야 하지만, B를 이해하려면 다시 A가 필요한 경우가 많았죠. 그래서 이런 개념들을 어떻게 하면 하나하나 쉽게 풀어낼 수 있을까, 최대한 쉬운 예시나 데이터를 활용해 설명할 수 있을까에 대해 고민을 많이 했어요.
그 과정에서 코드잇 콘텐츠를 만드는 분들도 이런 고민을 정말 많이 하셨겠구나 하는 걸 새삼 느꼈습니다. 특히 기초 프로그래밍이나 데이터 사이언스를 다룰 때, 강의 자료를 만들면서 과거 코드잇 강의를 들으며 필기했던 내용들을 다시 찾아보게 되었어요. 그때 좋은 비유나 설명 방식을 적어둔 걸 보면서 "이 표현 괜찮았는데, 나도 이렇게 설명해야겠다!" 하는 순간이 많았던 것 같습니다.
인공지능을 공부하면서 무엇보다 기술 트렌드를 놓치지 않는 것이 중요하다는 걸 실감했습니다. AI는 워낙 빠르게 발전하는 분야이기 때문에, 최신 기술을 따라가지 않으면 금방 뒤처질 수 있다는 위기감도 들었죠. 그래서 유명한 개발자나 AI 기업들의 SNS를 팔로우하며 최신 소식을 꾸준히 접하려고 노력했습니다.
처음에는 챗GPT 같은 AI 기술이 막연하고 어렵게 느껴졌지만, 하나씩 직접 공부하면서 생각보다 내가 이해할 수 있는 수준에서 접근할 수 있는 기술이라는 확신이 생겼습니다. 그러면서 점점 흥미를 느끼게 됐어요. 또한, AI를 공부하면 필연적으로 데이터를 다루는 법을 익히게 되는데, 그 영향으로 일상에서도 데이터를 수집하고 활용하는 시각이 생겼습니다. 예를 들어, 사람들의 행동을 보면서 이걸 데이터화할 수 있을까? 여기서 어떤 인사이트를 얻을 수 있을까? 같은 고민이 자연스럽게 떠오르게 되더라고요.
과거에는 의료 분야에서 인공지능의 역할이 주로 진단 보조에 한정될 것이라는 인식이 강했어요.
예를 들어, CT나 MRI 영상을 분석해 이상 부위를 표시하거나, 환자의 데이터를 바탕으로 특정 질병 가능성을 예측하는 정도의 활용이 일반적이었죠. 하지만 최근 생성형 인공지능의 발전으로 인해 의료 분야에서도 더 혁신적인 활용 사례가 등장하고 있습니다.
예를 들어, 수술 중 실시간으로 기구의 위치를 화면에 표시하는 기술이 개발되고 있고, 진단 과정에서도 환자의 예후를 보다 포괄적으로 예측하는 AI 모델이 나오고 있어요. 이처럼 생성형 AI의 발전이 의료 인공지능 시장의 빠른 성장을 이끌 것으로 기대하고 있습니다.
의료는 사람의 생명을 다루는 분야이기 때문에, 윤리적·법적 민감성이 높고, 데이터 보안 절차도 훨씬 더 복잡하다고 생각해요. 작년에 의료 인공지능 대회를 준비하면서도 의료 데이터를 다루기 위한 보안 절차가 얼마나 복잡한지 직접 경험할 수 있었어요. 또한, 최근 의료 AI 관련 연구가 활발히 진행되고 있지만, 그중 90% 이상이 실제 의료 현장에서 활용되지 못한다는 연구 결과도 있더라고요.
이러한 문제의 핵심은 데이터 수집과 활용의 어려움에 있다고 생각해요. 따라서 이 두 가지가 중요한 과제가 될 것이라고 보고 있습니다.
앞으로 의료 AI가 실전에서 효과적으로 활용되려면 이 과제가 해결돼야 한다고 생각해요.
정신의학에서 사람의 추상적인 생각을 객관적으로 분석할 수 있는 AI 연구를 하고 싶어요. 예를 들어, 일기나 SNS 글을 AI가 분석해 정신 건강 상태를 평가하는 기술을 개발하고 싶습니다.
작년에 공부하면서 정신의학과 신경학이 인간의 뇌와 사고 과정이 형성되는 원리를 매우 잘 설명하는 학문이라는 걸 느꼈어요. 이러한 개념들을 인공지능이라는 도구를 활용해 다뤄보면 어떨까 하는 생각이 들었고, 특히 최근 자연어 처리 기술이 빠르게 발전하면서 인간의 언어를 컴퓨터가 이해하는 방식도 점점 정교해지고 있다는 점이 흥미로웠습니다. 그래서 이 세 가지 요소를 접목해, 인간의 생각이 어떤 방식으로 표현되는지 분석하고, 이를 통해 의학적으로 의미 있는 인사이트를 도출할 수 있는지 연구해 보고 싶습니다.
요즘 "챗GPT나 Claude가 코드도 다 짜주는데, 굳이 프로그래밍을 배울 필요가 있을까?"라는 말을 자주 듣습니다. 하지만 저는 AI가 우리의 추상적인 목표를 100% 정확하게 이해할 수 없고, 코드에 오류가 발생했을 때 이를 해결하는 건 결국 인간의 몫이라고 생각해요. 물론, LLM(대형 언어 모델) 같은 강력한 도구들이 등장하면서 프로그래밍이 더 쉬워진 건 사실이지만, 결국 프로그래밍의 원리를 이해하고 직접 문제를 해결할 수 있어야 AI 시대를 제대로 대비할 수 있지 않을까 하는 생각을 하고 있습니다.
인공지능이라는 분야 자체가 수학적인 개념이 많이 포함되어 있기 때문에 처음에는 어렵고 망설여질 수도 있을 거라고 생각합니다. 하지만 "왜 이런 기술이 작동하는 걸까?" 라는 원리를 수학적으로 접근해 보고 이를 프로그래밍을 통해 직접 활용해 보시면, AI가 어떤 의미를 가지며 우리에게 어떤 인사이트를 제공할 수 있는지 훨씬 더 깊이 이해하게 될 거라고 생각합니다.
올해 목표는 풀스택 개발자 커리큘럼을 완주하는 것입니다. 그 이후에는 타입스크립트를 다시 한 번 깊이 있게 공부하고, 익스프레스(Express)와 넥스트.js(Next.js) 강의도 수강하며 백엔드와 프론트엔드 역량을 더욱 강화하고 싶어요.
프로그래밍을 처음 배우면서 길을 잃었을 때 좋은 지도가 되어준 친구 같은 존재입니다.
Interviewee 김선재
Editor 조영경, 신명진, 허가은
Photographer 정승호
김선재님이 들었던 강의