생각을 현실로 구현하는 프로그래밍의 매력
이현우 | 균관대 소프트웨어학과(대구 영남고)
호기심이 많았던 성균관대 소프트웨어학과 이현우씨는 궁금한 점이 있거나 풀어야 할 문제가 있으면 끝까지 매달려 해결하려고 노력했다. 매일 제출해야 했던 건강상태 자가진단을 편리하게 작성하도록 만든 자가진단 매크로 앱 역시 문제 해결 과정에서 나온 산물이었다. 누적 다운로드 수가 약 1만3천 회에 이를 정도로 인기를 얻었지만 앱 운영을 중단할 수밖에 없었던 경험을 통해 많은 것을 배우고 느꼈다.
취재 김민정 리포터 mjkim@naeil.com
사진 이의종
편리함을 위해 만든 자가진단 매크로 앱
코로나19 상황에서 학생들은 매일 자신의 건강상태를 자가진단해 제출해야 했다. 작성을 종종 잊어버리곤 했던 현우씨는 손쉽게 작성해 제출할 수 있는 자가진단 매크로 앱을 만들었다.
“원래는 제가 사용할 목적으로 만들었지만 긍정적인 친구들의 반응을 보면서 ‘사람들의 삶을 편하게 만들고 싶다’는 평소의 생각을 실천에 옮길 좋은 기회라고 판단했어요.” 사람들이 편하게 사용할 수 있도록 앱의 성능, 안정성, 편리성을 세심히 살펴 개선한 후 인터넷에 공유했다. “나중에 살펴보니 누적 다운로드 수가 1만3천 회에 이르더라고요. 자가진단 사이트의 업데이트를 반영해 계속 앱을 수정해야 했기 때문에 다소 번거로웠죠. 하지만 사용자가 늘어감에 따라 책임감이 커졌어요.
1년 넘게 학업과 병행하면서 앱을 보수·유지하느라 꽤 힘들었지만 그만큼 뿌듯했던 프로젝트였습니다.” 그러던 중 교육청으로부터 인터넷상에서의 앱 배포를 중단하라는 메일을 받았다. “앱에 분명히 ‘건강상태가 좋지 않다면 매크로 예약을 취소하고 공식 사이트나 앱에서 자가진단을 하시길 바랍니다’라는 문구를 통해 발열 등 문제가 있을 경우에는 따로 입력할 것을 명시했지만, 교육청은 혹시 통계가 제대로 잡히지 않을 상황을 우려했던 거죠. 친구들은 본인의 일인 듯 관련 법률을 찾아주고, 기관에 연락하도록 도와줬습니다. 이 앱으로 도움을 받는 사람들이 생각나 내리고 싶지 않았지만, 자가진단 자동화의 편의성보다는 전염병 상황의 정확한 확인이 중요하다는 데 동의했어요. 앱 운영은 중단했지만 열정을 쏟았던 그간의 노력과 어려운 상황을 함께 헤쳐나갈 수 있도록 도와준 친구들의 따뜻한 모습은 기억에 남았습니다.”
<통합과학> 속 생태계 평형을 프로그래밍으로 구현
호기심이 많아 교과 공부를 하면서 ‘왜?’라는 질문을 수없이 던졌고 대답을 찾을 때까지 고민했다. <수학II> 시간에 배운 극한의 정의가 모호하게 느껴져서 엡실론-델타 논법을 기반으로 지수함수의 연속성과 사잇값 정리를 증명해보기도 했다.
“지수함수의 연속성을 증명해보면서 엡실론-델타 논법의 의미를 이해할 수 있었고, 왜 조건문을 이용해서 정의했는지도 알 수 있었습니다. 또 사잇값 정리의 증명을 찾아보면서 우리가 알던 극한의 개념과 어떻게 이어지는지 깨닫게 됐죠. 이 과정에서 명제 논리나 실질 조건문도 알게 되면서 수학의 엄밀함과 체계성에 매료됐어요.” 1학년 <통합과학>에서 생태계 평형을 배운 후 실제로 생태계 평형이 이루어지는지 알고 싶어서 개체의 질량과 수, 에너지 효율 등을 이용해 가상의 생태계 시뮬레이션을 구현했다.
“프로그램을 실행해본 결과 생태계 평형이 이루어지는 것을 확인할 수 있었지만, 도출한 통계치가 실제로 유의미한지 의구심이 들었어요. 이후 문제점을 개선해서 2학년 때는 물리적인 시뮬레이션으로 생태계를 구현해봤어요. 포만감, 목마름, 시야 범위, 최대속도 등 다양한 형질을 추가했고 나름 유전과 번식도 고려해 만들었죠. 또한 부족했던 시각 자료를 보완하기 위해 간단한 3D 모델링을 이용해서 실제 모습을 구현했습니다.
하지만 시뮬레이션 과정에서 오류, 오차 등의 문제로 생태계 평형과 같은 현상을 실제로 만족시키기 쉽지 않았어요. 물리적 시뮬레이션은 국지적인 규모에는 적합하더라도 거시적인 관점에서 의미 있는 결과를 내기엔 부적합하다고 판단했습니다. 생태계 평형에 대해 1학년 때는 수학적 모델링으로, 2학년 때는 물리적 시뮬레이션으로 구현했지만 결국 접근은 1학년 때 시도했던 수학적 모델링이 더 적합하다는 결론에 이르렀어요. 시행착오를 겪었지만 <통합과학> 속 생태계 평형을 가상의 상황으로 프로그래밍해 구현해보면서 프로그래밍에 한층 더 매력을 느낀 건 분명한 사실입니다.”
공동 교육과정 적극 활용
“<고급물리학> 수업을 통해 깊이 들어갈수록 더 정교해진 식으로 배운다는 사실을 알게 됐어요. 매력적이었죠. 예를 들어 속도는 변위를 시간에 대해 미분한 것이고, 힘은 운동량을 시간에 대해 미분한 것, 일은 힘과 미소 변위의 내적을 선적분한 것임을 알 수 있었습니다. <프로그래밍> <응용프로그래밍개발>은 공동 교육과정으로 이수했어요. 여러 학교 학생들을 만날 수 있고 이수한 내용은 학생부에 기재된다는 장점도 있어 학생부종합전형을 고려한다면 공동교육과정은 꼭 들어야 한다고 생각해요.”
고2 선택 과목은 수능까지 고려해 결정하기
“학교 선생님께서 의대 진학이 가능한 내신 성적이라면서 지원을 권유하셨어요. 수시 6장 중 3장은 제가 원하는 공학 쪽으로, 나머지 3장은 의대를 썼는데 수능 최저 학력 기준을 맞추지 못했어요.
원래 생각했던 진로가 아니라서 그런지 고교를 졸업하고 나니 의대 생각은 싹 사라지더라고요. 고3 때 점수가 되면 의대를 지망해보는 분위기에 휩쓸렸다는 생각이 들었습니다. 생각보다 제 귀가 팔랑귀였더라고요. 하하.” 다만 후배들은 고2 과학탐구 과목을 정할 때, 수능에서 치를 과목까지 고려해서 선택하길 바란다고 조언했다.
“학교에서 과학탐구 과목을 세 과목 선택하도록 해, 관심사에 따라 2학년 선택 과목으로 <물리학Ⅰ> <화학Ⅰ> <생명과학Ⅰ>을 선택했고 3학년 진로선택 과목은 <물리학Ⅱ>와 <화학Ⅱ>를 선택했죠. 자연스럽게 수능에서 <물리학Ⅰ>과 <화학Ⅰ>로 시험을 쳤어요. 만만치 않더라고요. 게다가 2023학년 대입에선 과학탐구가 어려웠죠. 고3은 수능 공부할 시간이 충분하지 않아 재수생에 비해 아무래도 불리해요. 수능을 치르고 나니 응시생이 많은 <지구과학Ⅰ>이 확실히 수능에서 강점이 있다는 것을 느꼈어요.
이 부분을 알았더라면 고2 선택 과목으로 <지구과학Ⅰ>을 선택했을 것 같아요.” 현우씨는 대학 입학 후 코딩 동아리에 가입, 관심 분야 활동을 이어나가고 있다. “3단계 전형으로 동아리 부원을 선발해 들어가기 쉽지 않다고 들었는데 다행이에요. 관심사가 비슷한 사람들과 함께 프로그래밍 작업도 열심히 하고, 학교생활도 신나게 해보고 싶습니다.”
나를 보여준 학생부 & 선택 과목
세부 능력 및 특기 사항
2학년
<수학Ⅱ> 엡실론-델타 논법에 근거해 사잇값 정리를 증명하고 활동 보고서를 제출. <미적분> 지수함수가 연속이라는 것을 엡실론-델타 논법을 이용해 증명함. 테일러 급수가 제곱근, 초월함수 등의 값을 구하거나 0/0꼴의 극한값을 구하는 데 유용하게 쓰일 수 있다는 내용을 보고서로 작성. <확률과 통계> 이산확률변수에서 기댓값의 정의를 이용해 기댓값의 덧셈정리와 곱셈정리를 증명하는 과정을 발표함. <영어Ⅱ> 인공지능의 긍정적, 부정적 측면을 논리적으로 서술하며 인공지능 사회가 가속화되는 것을 지지하는 내용의 글을 작성해 제출함. <물리학Ⅰ> 신시사이저의 이퀄라이저는 푸리에 변환 원리를 이용해 소리를 보정한다는 것을 기계 소리를 생성·보정하는 소프트웨어를 탐구해 발표. <생명과학Ⅰ> 게임 엔진을 이용해 가상의 생태계를 구현하는 컴퓨터 시뮬레이션을 만듦. <창의융합과제연구> 조별 과제에서 극한의 원리를 정확히 이해해 계산하는 프로그램을 만들어 발표함. <고급물리학> MBL 모션디텍터 센서를 활용해 단진동 연구를 수행한 후 중력가속도의 크기를 정확하게 측정함. <응용프로그래밍개발> 과제를 먼저 해결한 후 소스 코드를 다른 학생에게 설명함. 고급 수식 계산기 프로그램을 제작해 발표.
3학년
<심화국어> ‘관계형 데이터베이스와 릴레이션’이라는 글을 분석해 발표. ‘최소제곱법과 엥겔의 법칙’이라는 지문을 분석하면서 회귀분석의 대표적 방법인 최소제곱법에 대한 내용을 첨부해 보고서 작성. <기하> 게임을 구현할 때 쓰이는 SDF는 3차원에 직선 모양의 가상의 선을 쐈을 때, 어떤 점에서 물체와 접하는지 알아내는 기법임을 그림으로 설명함. <고급수학Ⅰ> ‘인공지능 행렬곱셈의 최적화:연쇄 행렬 곱셈 알고리즘’보고서 작성. 인공지능에서 퍼셉트론을 구현할 때 뉴런의 작동 방식과 유사한 점을 이용해 행렬 함수로 표현.
선택 과목
▒ <물리학II> <화학II> 물ㆍ화ㆍ생ㆍ지 중 2학년 선택과목으로 물ㆍ화ㆍ생을 선택했고 그중 더 공부하고 싶은 과목이었기에 선택했다.
▒ <고급물리학> 물리학을 더 알고 싶어서 선택했다. 미적분으로 나타낸 더 정확히 표현된 물리학 식들을 배울 수 있어 매력적이었다.
▒ <프로그래밍> <응용프로그래밍개발> 공동 교육과정으로 이수했다. 프로그래밍에 대한 관심이 많았기 때문에 수업은 거의 아는 내용이었지만, 다양한 경험을 할 수 있고 관심사를 학생부에 드러낼 수 있어서 의미 있었다.
'INTERVIEW > 수시 합격생_자연·공학·의학' 카테고리의 다른 글
[2023 수시 합격생 릴레이 인터뷰] 장용태 경희대 생물학과 (0) | 2023.08.08 |
---|---|
[2023 수시 합격생 릴레이 인터뷰] 이한호 인하대 생명공학과 (0) | 2023.08.08 |
[2023 수시 합격생 릴레이 인터뷰] 김예은 켄텍(KENTECH) (0) | 2023.08.08 |