Experiences 

UGRP (2022. 12 ~ 2023. 12) 

4명의 조원이 한 팀을 이루고, 1년 동안 주제를 잡아 연구하는 교내 프로젝트입니다. ‘음악의 성분 분석 및 분류 AI 개발’이라는 주제로 진행했습니다.

긴 호흡으로 진행하는 프로젝트를 통해 장기 팀 프로젝트에서 좋은 성과를 내기 위해서는, 팀원들과의 역할분담과 소통 및 협업이 중요하다는 것을 경험했습니다. 또한 완성된 해결책을 모르는 상태로 지속적으로 가설을 세우고 실험하며 비교하는 과정을 통해, 정답이 존재하지 않는 문제를 다루는 방식을 배웠습니다.


FRIENDING Internship (2023. 12 ~ 2024. 02) 

소셜 네트워킹 모바일 애플리케이션을 개발하는 교내 창업기업 FRIENDING에서 8주의 기간 동안 프론트엔드 개발 인턴으로 근무했습니다. Flutter 기반 프론트엔드 개발에 참여했으며, 실제 서비스를 개발하는 환경에서 협업하는 경험을 쌓았습니다.

주요 업무는 크게 2가지였습니다. 인턴십 전반부는 이용약관 페이지, 소개 페이지 등 특정 페이지를 제작하는 작업을 진행했고, 후반부에는 error snackbar, popup 등이 발생하는 예외 상황을 정의하고 UI를 개선하는 작업을 주로 진행했습니다. 특히 snackbar, modal, popup 등 기존 UI 위에서 새로운 요소를 띄울 때 발생하는 오버플로우와 층위 문제를 해결하는 업무를 맡아서 진행했습니다.

이 과정에서 모바일 환경의 UI/UX를 개선하는 방법을 배울 수 있었고, 사용자의 사용 흐름을 따라가며 고려할 수 있는 개발 습관을 체득했습니다.


Algorithmic Problem Solving (2024. 01 ~ ) 

C++를 이용하여 꾸준히 알고리즘 문제 해결과 대회에 참여하고 있습니다. 각종 자료구조와 그래프 알고리즘, 다이나믹 프로그래밍, 문자열 탐색 등 다양한 주제를 학습하며 문제 상황과 제약 조건에 맞는 해결 방법을 찾는 훈련을 하고 있습니다. 이 과정에서 풀이한 문제를 GitHub↗에 저장하고, 새롭게 학습한 자료구조나 알고리즘을 개인 페이지↗에 정리하며 복습하고 있습니다.

알고리즘 문제 해결에서는 상황에 맞는 알고리즘 선택도 중요하지만, 시간과 메모리 제한을 고려하면서도 예외 상황을 가정하고 처리하는 역량 또한 중요하다고 생각합니다. 이러한 경험은 실제 개발 과정에서도 적절한 처리 흐름을 선택하고 예외 사항을 미리 고려하는 개발 습관에 도움이 되었습니다.


RL-based Spaced Repetition Scheduler (2026. 04 ~ 2026. 06) 

학부 강화학습 강의의 일환으로 진행한 DQN 기반의 학습 일정 최적화 프로젝트입니다. 망각곡선 그래프를 환경 모델로 정의하고, 시험 날짜의 기억 유지율을 최대화하기 위해서 어떤 학습 스케줄을 따라야 하는지를 구하는 것이 목적이었습니다. 각 챕터의 난이도와 가중치를 설정하고, Random, Round Robin, Greedy 등의 baseline과 DQN 에이전트를 비교하며 결과를 분석했습니다. 구현 내용과 분석 결과는 GitHub↗에서 확인할 수 있습니다.

RL_1

분석 결과는 DQN이 0.7844의 기억 유지율로 가장 높은 결과를 달성했으며, Greedy, Round Robin과 비교하여 평균 기억 유지율은 8% 이상 향상시키면서 분산은 더 작은 안정적인 성능을 보였습니다.

특히 무작위로 생성되는 환경의 난이도 편차가 학습 과정의 분산을 증가시키는 문제가 있었는데, 난이도를 bimodal distribution으로 설계하고 평균 난이도를 고정함으로써 안정적으로 학습하고 분석할 수 있었습니다. 이 과정에서 현실의 문제를 강화학습 환경으로 모델링하는 방법과, 강화학습에서 일관된 환경의 중요성을 배웠습니다.