안녕하십니까. 카카오 AI 루키 캠프에 지원하게 된 김지완입니다. 저는 지원서에도 작성했듯이 문제를 발견하면 독창적으로 해결하고, 협업 속에서 함께 성장하는 학생 개발자입니다.
지금부터 제가 진행한 프로젝트를 중심으로 제 경험을 소개하겠습니다.
1. 연령과 신체 조건에 맞게 변하는 키오스크
중학교 1학년(2023년) 때 3명의 팀원들과 진행한 프로젝트입니다. 아두이노, 웹, 파이썬을 사용하여 진행하였습니다. 이 프로젝트로 과학기술정보통신부에서 주최하는 한국코드페어 SW 공모전 본선에 진출했습니다. 저는 이 프로젝트에서 키오스크 UI 일부와 아두이노와 전동 모니터 리프트를 사용하여 사용자의 신체에 맞게 화면 높낮이를 조절하는 기능을 개발했습니다.
'''
작품 주제: 키오스크가 많이 보급되어 사용되고 있으나 키오스크를 불편하게 느끼는 사람들이 많다. 디지털 기기를 다루기 어려운 노년층 소비자, 눈이나 다리가 불편한 장애인 등이다. 편리성과 비용감축을 목적으로 여러 산업에서 키오스크를 도입하는 곳이 더욱 늘어날 만큼 디지털 기술에 소외되는 계층 또한 늘어날 수밖에 없다. 우리 팀은 이와 같은 문제를 AI 기술을 이용하여 장애인이나 노년층 소비자들 또한 디지털 혜택을 누릴 수 있도록 ‘베리어프리’를 가능하게 하는 스마트 키오스크 시스템을 구현하고자 한다.
작품의 설명(제안하는 해법, 이에 대한 근거) : AI 이미지 인식 기술을 사용하여 카메라를 통해 소비자의 연령대와 겉모습을 분석하여 고령자라고 인식을 하면 자동으로 UI(User Interface)를 바꿀 수 있도록 한다. 또한 전동 모니터 리프트를 사용하여 소비자의 신체에 맞게끔 화면 높낮이를 조절할 수 있도록 하여, 키오스크를 사용하기 위한 최초 조작 시간을 줄이고자 한다.
기존의 작품(해법)과의 차이점 : 이미 관공서나 지하철에서는 베리어프리 키오스크를 제공하고 있으나 여전히 카페, 식당 등과 같은 곳에서는 사용되고 있지 않다. 또한 사용되고 있는 키오스크 제품과 UI가 모두 달라 이용할 때마다 사용의 어려움을 겪을 수 있다. 그러나 우리 팀은 사용자 겉모습을 인식하여 사용자마다 통일된 UI와 기능을 제공하고자 한다.
결과: 키오스크에 가까이 다가가기만 하면 자동으로 가장 알맞은 사용 환경을 제공할 수 있도록 하여 디지털 취약 계층이 키오스크의 조작의 어려움을 최소화하고 접근성을 높임으로써 누구든지 디지털 기술의 혜택을 누릴 수 있는 사회를 만들어 나갈 수 있을 것이다.
'''



2. 지도학습 기술을 활용한 심혈관질환 위험도 관리 앱
중학교 2학년(2024) 때 3명의 팀원들과 진행한 프로젝트입니다. 안드로이드 앱, 파이썬, Light GBM 알고리즘을 사용하여 진행하였습니다. 이 프로젝트로과학기술정보통신부에서 주최하는 한국코드페어 해커톤 본선에 진출했습니다. 저는 이 프로젝트에서 머신러닝과 백엔드 부분을 맡았습니다. 이 프로젝트를 진행하며 저는 고령화 사회에 벌어질 문제들을 AI와 코딩을 사용해 해결할 수 있다는 것을 느꼈습니다.
'''
1. 작품 주제
아이디어명 : 인공지능기술을 활용한 노인 심혈관질환 위험도 관리 도우미
노령화에 따른 심혈관질환 문제 해결 : 사망률 2위 질환, 노령인구의 증가 문제
작품의 설명(제안하는 해법, 이에 대한 근거)
핵심 기능1. 건강/생활습관에 따른 심혈관질환 위험확률 분석+개선방법 제시
핵심 기능 2. 안드로이드 앱을 이용한 심혈관질환 관리 모니터링]
기존의 작품(해법)과의 차이점
- 인공지능 학습을 위해 공신력 있는 데이터 셋 사용 : 세계보건기구(WHO)에서 발표한 BRFSS(Behavioral Risk Factor Surveillance System)를 학습시켜 예측(35만 명의(35 데이터)
- 개선방법 제시 : 총 18가지의 정보 중에 위험확률을 현격히 줄일 수 있는 방법을 제시
(예시. 과일 섭취 정도를 18% 늘릴 경우 심혈관질환 확률 10% 감소)
- 차별성차별성 2. 의료데이터를 분석한 다양한 인공지능 모델 분석·비교
- 차별성차별성 1. 단순센서값이 아닌 생활습관을 통한 위험확률분석
결과
우리나라는 65세 이상의 총인구수가 많이 증가하면서 고령화 사회에 접어들었다. 세계보건기구 (WHO)의 통계에 따르면 심혈관계 질환은 세계적인 사망률 29.2%로 1위를 차지할 정도의 주요 질환으로 의학적으로나 사회경제학적으로 더욱더 큰 비중을 차지해가고 있다.
노화가 일어나면서 심장은 약간 확장되며 심벽은 두꺼워지며, 심방과 심실도 약간 커진다. 크기가 증가하는 것은 개별 심장의 근육 세포의 크기가 커지기 때문에 심혈관질환 문제가 발생하는 경우가 많다.
이 작품 제작을 통해 이러한 문제들을 사전에 인지해 생활습관과 건강을 관리를 할 수 있도록 하여, 평상시 관리를 통해 심혈관 질환 발병률과 사망률 모두 낮추는데 기여할 것을 기대한다.
'''



3. 딥러닝 모델을 이용한 얼굴 유사도 측정 사이트
이 웹 사이트는 중학교 2학년(2024) 때 혼자서 개발한 사이트입니다.
'''
이 사이트는 자신의 얼굴과 비교하고 싶은 그룹을 선택하고 자신의 얼굴사진을 업로드하거나 촬영하면, JavaScript라이브러리인 face-api.js와 수학을 이용하여 그 그룹의 각 멤버와 사용자의 얼굴의 유사도를 알아볼 수 있다. 물론 1 대 1 비교와 모든 멤버들과 비교하는 것도 가능하다. 현재는 K-pop을 주제로 한 그룹들만 있지만 추후 운동선수, 유튜버, 드라마, 영화 등으로 주제를 확장할 수 있다.
'''
https://facematchkorea.netlify.app/
Face Match_korea home
facematchkorea.netlify.app
4. 자연어 처리 모델과 LLM을 이용한 콘텐츠 신뢰도 분석 사이트
이 프로젝트는 중학교 3학년(2025) 때 3명의 팀원과 진행한 프로젝트입니다. KLUE RoBERTa, 웹, 파이썬, Chat GPT API를 사용하여 진행하였습니다. 이 프로젝트로 저희는 한국정보기술 진흥원에서 주최한 한국청소년 IT 학술대회에서 금상을 수상했습니다. 저는 이 프로젝트에서 총괄과 머신러닝, 웹 개발 일부를 맡았습니다. 저는 이 프로젝트를 진행하며 인문학과 과학기술의 융합의 중요성을 느꼈습니다.
'''
- 작품 주제 : 한국언론진흥재단의 우리나라 국민을 대상으로 한 2023년도 설문조사에서 응답자의 약 66%가 온라인 허위정보의 위험성에 대해 우려하고 있다 답했다. 약 52% 가 가짜 뉴스를 진짜라고 믿은 경험이 있다고 답했으며 IPSOS의 연구에서 약 85%의 사람들이 온라인 가짜 뉴스가 다른 사람들에 미치는 영향이 시민들에게 영향을 미치는 영향을 걱정한다고 하였지만 정작 가짜뉴스를 판별하는 능력이 부족한 사람들이 대부분이었다. 그렇기에 우리는 가짜뉴스를 판별하는 능력이 부족한 사람들을 위해 진실의 눈을 개발하려고 한다.
- 작품 설명 : 진실의 눈은 사용자가 입력한 링크의 텍스트를 크롤링으로 추출 후 Klue RoBERTa모델을 이용하여 유사도, 감성, 혐오표현, 낚시성 글을 분석하고 Chat GPT API가 추출한 키워드를 NAVER news API에서 검색하고 사용자가 입력한 링크의 내용을 위 내용들과 종합하여 0~100 사이의 신뢰도 점수로 계산하여 산출한다.
- 기존 작품과 차별점 : 기존의 서비스인 한국의 팩트체크넷은 전문가 또는 민간인으로 이루어진 양성교육을 받은 팩트체커들이 수작업으로 요즘 문제시되는 사회이슈들을 직접 허위정보나 조작된 정보들을 판단하여 알려주는 앱이다. 하지만 이 앱은 인간이 수작업으로 검증하므로 우리의 웹보다 최신정보 반영이 느릴 것이다. 또한 이 앱은 유지하는 예산이 줄어들어 서비스를 종료하게 됐다. 하지만 우리의 웹은 AI가 검증을 하기 때문에 서비스를 유지하는 비용이 현저히 낮을 것이다.
- 결과 및 기대 효과 : 뉴스를 확인하여 가짜 뉴스인지를 판별해 종합 신뢰도 점수를 보여주게 된다. 인터넷 이용자가 정보를 선택적으로 수용할 수 있게 하고, 악의적인 가짜 뉴스가 사회에 미치는 부정적 영향을 줄이고 인터넷 이용자들이 보다 더 뉴스와 유튜브 등의 온라인 정보를 신뢰할 수 있을 것이다.
'''



5. 나만의 영어 단어 암기 사이트
이 사이트는 나의 영어 단어 암기를 돕기 위해 내가 개발한 사이트이다. 이 프로젝트를 통해 개인의 문제를 기술로 해결하는 과정과, AI를 활용해 개발 효율을 크게 높일 수 있다는 것을 경험했습니다. 또한 기존 서비스를 그대로 사용하는 것이 아니라, 필요에 맞게 분석·개선하는 것이 진정한 문제 해결이라는 것을 배웠습니다.
'''
학교 영어 수업에서 많은 양의 영어 단어를 암기해야 했지만, 단어를 쓰거나 눈으로 반복해서 외우는 방식은 저에게 지루하고 비효율적으로 느껴졌습니다. 친구들과 대화를 나누며 저와 같은 어려움을 겪는 학생들이 많다는 것을 알게 되었고, 더 효율적인 학습 방법을 고민하게 되었습니다. 조사 과정에서 반복 학습의 중요성을 알게 되었고, 이를 바탕으로 언제 어디서든 스마트 기기로 학습할 수 있는 도구가 필요하다고 느꼈습니다.
Anki, Classcard 등의 기존 서비스를 분석했지만, 저에게는 불필요한 기능이 많고 UI와 연동 과정이 복잡하다는 한계가 있었습니다. 이에 저는 직접 저에게 최적화된 영어 단어 학습 도구를 만들기로 결정했습니다. Anki의 SM-2 알고리즘을 기반으로 ChatGPT와 Gemini의 도움을 받아 제 학습 패턴에 맞게 개선한 JW-SM2 알고리즘을 개발하였고, 이를 웹 서비스로 구현했습니다.
'''
// 단어 하나의 "기억 상태"를 평가 결과에 따라 시간으로 변환하는 함수
// - SM-2 알고리즘을 기반으로 하되, 실제 사용자 경험에 맞게 단순화함
// - 사용자는 3단계로만 평가하고, 시스템이 내부적으로 수치화함
const calculateNextReview = (word, quality) => {
// 현재 단어가 가지고 있는 학습 상태
// interval : 이전 복습 이후 간격(일 단위)
// easeFactor : 기억 안정성 계수 (SM-2 핵심 변수)
// streak : 연속 성공 횟수
// box : 학습 진행 상태 시각화를 위한 메타 정보
let { interval, easeFactor, streak, box } = word;
const now = Date.now();
// 0점(완전히 모름)인 경우
// → 기억에 실패했다고 판단하고, 모든 진행 상태를 초기화
if (quality === 0) {
return {
interval: 1,
streak: 0,
box: 0,
nextReview: now // 즉시 다시 복습 대상
};
}
// 사용자의 3단계 평가를 SM-2 점수 체계(0~5)로 변환
// 0: Fail, 1: Hesitant, 2: Good, 3: Perfect
// → 내부적으로는 알고리즘에 적합한 점수로 사용
const qMap = [0, 2, 4, 5];
const q = qMap[quality];
// Ease Factor(EF) 갱신
// - 기억이 잘 되었을수록 EF가 증가
// - SM-2 공식 수식을 기반으로 단순화하여 적용
let newEf =
easeFactor +
(0.1 - (5 - q) * (0.08 + (5 - q) * 0.02));
// EF는 너무 낮아지지 않도록 하한값을 둠 (SM-2 표준: 1.3)
if (newEf < 1.3) newEf = 1.3;
// 다음 복습 간격 계산 (일 단위)
let newInterval = 1;
if (streak === 0) {
// 첫 성공 이전 단계: 하루 뒤 다시 복습
newInterval = 1;
} else if (streak === 1) {
// 첫 성공 이후:
// - 충분히 기억했으면 6일
// - 애매하면 다시 1일
newInterval = q >= 4 ? 6 : 1;
} else {
// 그 이후부터는 EF를 기반으로 간격을 점진적으로 증가
newInterval = Math.ceil(interval * newEf);
}
// 학습 진행 상태(box) 업데이트
// - 알고리즘 계산과는 분리된 UX용 메타 정보
let newBox = box;
if (q >= 4) {
// 잘 기억함 → 마스터 단계
newBox = 3;
} else if (q >= 2) {
// 일부 기억 → 학습 중
newBox = 2;
} else {
// 기억 실패 → 새 단어 상태
newBox = 0;
}
// 사용자가 선택한 복습 속도를 반영
// (같은 알고리즘이라도 개인 성향에 따라 조정)
const speedFactor = getReviewSpeedFactor();
const adjustedInterval =
Math.max(1, Math.round(newInterval * speedFactor));
// 최종적으로 갱신된 학습 상태 반환
return {
interval: adjustedInterval,
easeFactor: newEf,
streak: streak + 1,
box: newBox,
// 다음 복습 시점을 실제 시간(timestamp)으로 저장
nextReview:
now + adjustedInterval * 24 * 60 * 60 * 1000
};
};
핵심코드




6. 파이썬 2000만 번 이상 출력하는 3가지 방법
이 글은 파이썬에서 단순하다고 여겨지는 출력을 하는 다양한 방법에 대해 알아보기 위해 작성하였습니다.
https://controln.tistory.com/11
파이썬 출력하는 3가지 방법
기말고사가 끝나고 심심해서 프로그래밍의 기초인 출력문 연구했다.'2025년7월6일'을 20250706번(2천만번 이상) 출력하는 것을 가장 빠르게 하는 것을 목표로 한다.내 컴퓨터는 AMD Ryzen 5 PRO 8540U, 32기
controln.tistory.com
7. 아두이노와 프로세싱을 활용한 조도 시각
이 글은 아두이노와 프로세싱을 공부하며 작성한 글입니다.
https://controln.tistory.com/6
아두이노와 프로세싱을 활용한 조도 시각화
소개아두이노와 프로세싱을 활용하면 센서에서 데이터를 받아 컴퓨터 화면에 시각적으로 표현할 수 있습니다. 이 글에서는 조도 센서(LM393)를 사용하여 측정한 데이터를 컴퓨터 화면의 색으로
controln.tistory.com
8. 'KBO 2군 기록 기반 1군 성적 예측 모델 개발' 프로젝트
이 연구는 중학교 3학년(2025~2026) 때 개인으로 진행한 연구이다. 이 프로젝트로 한국정보기술진흥원 한국청소년IT학술대회 데이터분석 부분 동상을 수상하였다. 난 어릴 때 부터 야구를 무척좋아하였다. 그러던 중 SBS의 [스토브리그]라는 드라마를 보게 되었고 이를 통해 야구팀의 프런트 직원(전력분석, 스카우트)의 꿈을 키우게 되었다. 물론 지금은 개발자를 꿈 꾸지만 아직 마음속에는 프런트 직원이 남아있는 거 같고, 코딩을 배우며 야구를 코딩으로 분석하고 해결하자는 꿈을 이루기 위한 도전이다.


9. 카카오AI루키캠프
2026년2월에 카카오에서 주최한 카카오AI루키캠프에 참여했다. 3박4일간 이곳에서 경상,강원지역의 다양한 학생들을 만났다. 밥과 숙소도 호텔급으로 굉장히 좋고 프로그램들도 좋았다. 다양한 교육을 받았지만 이러한 교육들보다는 평소 해보지 못하였던 협업과 소통을 해보게되어서 인상깊었다.
그 외
1. 초등학교 6학년 때, MRT 블록으로 로봇대회에 참가하여 받은 상입니다.

2. 중학교 1학년(2023) 때, 4명의 팀원들과 부산광역시교육청에서 주최한 2023 부산 SW AI 교육 중등학생 해커톤대회에서 받은 상입니다.

3. 중학교 3학년(2025) 때, 2명의 팀원과 부산광역시교육청에서 주최한 2025학년도 SW AI 해커톤 & 윤리캠프에서 받은 상입니다.
