2025년, LG AImers 7기에 참여했다.
지금 돌아보면 이 활동은 내가 머신러닝을 바라보는 관점을 꽤 많이 바꿔준 경험이었다.
참여하기 전까지는 머신러닝 프로젝트를 생각하면 가장 먼저
어떤 모델을 사용할까?
CatBoost가 좋을까?
LightGBM이 좋을까?
XGBoost가 좋을까?
어떻게 하면 점수를 더 높일 수 있을까?
같은 질문을 떠올렸다.
하지만 실제 데이터를 가지고 팀원들과 프로젝트를 진행해보니 좋은 모델을 고르는 것보다 훨씬 많은 것들이 필요했다.
데이터를 어떻게 이해할 것인가?
Validation을 어떻게 구성할 것인가?
팀원들의 실험 결과를 어떻게 비교할 것인가?
성능이 오른 이유를 어떻게 판단할 것인가?
실패한 실험은 어떻게 기록할 것인가?
서로 다른 모델을 어떻게 하나의 결과로 합칠 것인가?
를 계속 고민해야 했다.
그리고 이러한 과정을 거쳐 운 좋게 LG AImers 7기 해커톤 본선까지 진출할 수 있었다.
이번 글에서는 단순히
"본선에 다녀왔다!"
라는 후기보다는 2025년 LG AImers 7기를 진행하면서 어떤 문제를 만났고, 내 생각이 어떻게 바뀌었는지까지 함께 기록해보려고 한다.
물론 중간중간 LG 인화원에서 먹고 놀았던 이야기도 잔뜩 들어간다.
LG AImers에 참여하기 전에도 AI와 머신러닝에 대한 공부를 조금씩 하고 있었다.
네이버 부스트코스 등을 통해 기본적인 개념을 공부하면서
머신러닝
딥러닝
회귀
분류
Gradient Boosting
등의 개념은 접해본 상태였다.
하지만 대부분은
개념 공부
↓
예제 데이터
↓
모델 학습
↓
결과 확인
정도의 경험이었다.
그래서 한 가지 궁금증이 있었다.
배운 머신러닝 지식을 실제 기업 데이터에서도 사용할 수 있을까?
학습용으로 잘 정리된 데이터가 아니라 실제 데이터를 만나면 어떤 문제가 생기는지도 궁금했다.
LG AImers는 그런 경험을 해보기 좋은 기회라고 생각했다.
LG AImers 7기에서 진행한 문제는 식음업장의 메뉴별 미래 수요를 예측하는 문제였다.
쉽게 생각하면 과거의 판매 데이터를 이용해서
앞으로 특정 메뉴가 얼마나 판매될 것인가?
를 예측하는 것이다.
처음 문제를 봤을 때 가장 먼저 든 생각은 역시 모델이었다.
CatBoost를 써볼까?
LightGBM?
XGBoost?
어떤 모델이 수요 예측에서 제일 잘 나올까?
그래서 초반에는 다양한 Gradient Boosting 계열 모델을 빠르게 시도해보는 방식으로 접근했다.
하지만 프로젝트를 진행하면서 생각이 조금씩 바뀌기 시작했다.
좋은 모델을 찾기 전에 먼저 데이터에서 수요를 결정하는 정보가 무엇인지 알아야 하지 않을까?
같은 모델을 사용하더라도
어떤 데이터를 사용했는지
어떻게 전처리했는지
어떤 Feature를 만들었는지
어떻게 Validation을 나눴는지
에 따라 결과가 완전히 달라질 수 있었기 때문이다.
팀 프로젝트였기 때문에 팀원들이 각자 여러 방법을 실험하기 시작했다.
처음에는 굉장히 좋은 방식이라고 생각했다.
팀원 A
→ CatBoost 실험
팀원 B
→ LightGBM 실험
팀원 C
→ XGBoost 실험
각자 다른 방법을 동시에 시도하면 훨씬 빠르게 좋은 모델을 찾을 수 있을 것 같았다.
그런데 실험이 쌓이면서 예상하지 못했던 문제가 생겼다.
결과를 비교하기가 어려웠다.
팀원마다
전처리 방법
Train / Validation 분할
Feature
평가지표 해석
모델 설정
이 조금씩 달랐다.
그러다 보니
A 모델 점수가 0.8
B 모델 점수가 0.75
라고 해도
"A의 모델이 정말 더 좋은 건가?"
를 판단하기 어려웠다.
모델이 좋아서 점수가 높은 것일 수도 있고,
전처리가 달라서일 수도 있고,
Validation 데이터 자체가 달라서일 수도 있었다.
처음에는
실험을 많이 한다.
↓
좋은 방법을 빨리 발견한다.
고 생각했다.
실제로는
기준이 다른 실험을 많이 한다.
↓
결과는 많아진다.
↓
그런데 서로 비교할 수가 없다.
가 되어버렸다.
이 부분은 LG AImers에서 가장 크게 배운 것 중 하나였다.
그래서 문제를 다시 생각했다.
처음에는
"더 좋은 모델을 찾아야겠다."
라고 생각했다면,
이때부터는
"모델보다 먼저 실험 결과를 비교할 수 있게 만들어야겠다."
가 되었다.
그래서 팀원들끼리 공통적인 기준을 맞추기 시작했다.
공통 데이터 전처리 기준
공통 Validation
공통 평가지표
공통 실험 기록 방식
등을 정했다.
즉 모델을 하나로 통일한 것이 아니라 모델을 비교하는 기준을 통일한 것이다.
전체적인 구조도 조금씩 이렇게 변했다.
초기
팀원 A → 자신의 모델
팀원 B → 자신의 모델
팀원 C → 자신의 모델
에서
공통 Baseline
↓
공통 Validation
↓
┌──────────┼──────────┐
가설 A 가설 B 가설 C
↓ ↓ ↓
실험 실험 실험
└──────────┼──────────┘
↓
결과 비교
↓
다음 실험
으로 바뀌었다.
돌이켜보면 이때부터 프로젝트가 단순히
모델을 만드는 프로젝트
에서
실험을 관리하는 프로젝트
로 조금씩 변하기 시작했던 것 같다.
실험 기준을 맞추고 나니 또 다른 문제가 보였다.
한 번의 실험에서
전처리 변경
Feature 추가
모델 변경
Hyperparameter 변경
을 전부 해버리면 점수가 올라도 무엇 때문에 좋아졌는지 알 수 없었다.
그래서 가능하면 실험을 작은 단위로 나누기 시작했다.
Baseline
↓
Feature A 추가
↓
Validation 확인
↓
성능 상승?
↓
YES → 유지
NO → 제거
↓
다음 가설
즉
한 번의 실험에서는 가능한 한 하나의 가설만 검증해보자.
라는 방식으로 바뀌었다.
이렇게 하니 점수가 좋아졌을 때
"뭔가 좋아졌다."
가 아니라
"이 Feature를 추가했더니 이 조건에서 성능이 좋아졌다."
라고 이야기할 수 있게 되었다.
별것 아닌 차이처럼 보이지만 실제 프로젝트에서는 꽤 컸다.
다음 실험을 무엇으로 할지도 훨씬 명확해졌기 때문이다.
실험이 많아지니 또 하나의 문제가 생겼다.
"이거 전에 해본 것 같은데...?"
비슷한 Feature를 다시 만들기도 하고,
다른 팀원이 이미 실패했던 실험을 다시 하는 경우도 생길 수 있었다.
그래서 실험 결과를 기록하기 시작했다.
단순히
CatBoost 성능 좋음
이라고 쓰는 것이 아니라,
무엇을 변경했는지
어떤 조건에서 실험했는지
Validation은 얼마였는지
기존보다 얼마나 변했는지
유지할지 폐기할지
를 함께 남기는 방식이다.
이 과정에서 재미있는 점을 하나 알게 됐다.
실패한 실험도 정보였다.
예를 들어
Feature A 추가
→ 성능 하락
이라는 결과가 나오면 해당 실험은 실패했지만,
Feature A는 현재 구조에서는 효과가 없다.
라는 정보를 얻은 것이다.
그래서 실패한 실험도 제대로 기록되어 있다면 다음 실험을 위한 하나의 자산이 될 수 있었다.
프로젝트를 진행하면서 로컬 Validation과 Leaderboard 결과를 계속 확인했다.
그런데 가끔 이런 일이 생겼다.
Local Validation
↑
Leaderboard
↓
로컬에서는 분명 성능이 좋아졌는데 실제 Leaderboard에서는 오히려 떨어지는 것이다.
처음에는
"왜 이러지?"
라는 생각밖에 들지 않았다.
하지만 이 경험을 통해 Validation 자체에 대해 다시 생각하게 됐다.
Validation은 단순히
Train 데이터를 조금 떼어놓고
점수를 계산하는 것
이 아니었다.
내가 진짜 알고 싶은 것은
실제 Test에서도 이 모델이 잘 동작할 것인가?
이기 때문이다.
따라서 Validation 데이터가 실제 Test 환경과 너무 다른 특성을 가지고 있다면 로컬 점수가 아무리 좋아도 의미가 줄어든다.
프로젝트 이전에는
Validation 점수가 높다.
↓
좋은 모델이다.
라고 단순하게 생각했다면,
프로젝트 이후에는
Validation 구조가
실제 문제를 제대로 반영하고 있는가?
↓
그 위에서 점수를 비교할 수 있는가?
를 먼저 생각하게 되었다.
프로젝트 초반에 가장 많이 했던 질문은
"어떤 모델이 제일 좋은가?"
였다.
하지만 프로젝트 후반으로 갈수록 질문이 조금 달라졌다.
"현재 모델은 어떤 데이터를 제대로 예측하지 못하고 있을까?"
단순히 점수 하나만 보고 모델을 바꾸는 것보다,
어떤 메뉴에서 오차가 큰지,
어떤 상황에서 예측을 잘못하는지,
현재 Feature가 어떤 패턴을 놓치고 있는지를 확인하는 것이 더 중요해졌다.
전체 실험 과정도 점점 다음과 같은 형태로 발전했다.
Baseline
↓
Validation
↓
오류 분석
↓
가설 설정
↓
Feature / 전처리 변경
↓
모델 실험
↓
Validation 비교
↓
Leaderboard 확인
↓
실험 기록
↓
다음 가설
결국 머신러닝 프로젝트가
모델 선택
→ 튜닝
→ 점수
의 과정이라고 생각했던 관점에서
가설
→ 실험
→ 검증
→ 분석
→ 다음 가설
의 반복이라는 관점으로 바뀌었다.
프로젝트에서는
CatBoost
LightGBM
XGBoost
등 여러 Gradient Boosting 모델을 사용하거나 비교했다.
초기에는 자연스럽게
"그래서 셋 중에 뭐가 제일 좋은데?"
가 가장 궁금했다.
그런데 실제로는 그렇게 단순하지 않았다.
같은 데이터에서도 모델마다 조금씩 다른 패턴을 학습했고, 서로 다른 오류를 만드는 경우가 있었다.
그러다 보니
하나의 가장 좋은 모델
만 찾기보다
서로 다른 모델의 예측 결과를
결합하면 어떨까?
라는 생각으로 이어졌다.
팀원들이 각자 모델을 개발한다는 방식은 프로젝트 초반에는 단점도 있었다.
실험 기준이 다르면 서로 비교하기가 어려웠기 때문이다.
하지만 공통적인 Validation과 실험 기준을 만든 이후에는 오히려 장점도 생겼다.
팀원마다
전처리
Feature Engineering
모델 구조
Hyperparameter
등이 달랐기 때문에 서로 다른 모델이 만들어졌다.
즉 각자의 접근 방식이 서로 다른 패턴을 학습하게 만들었다.
처음에는
팀원마다 따로 모델을 만든다.
→ 단순한 역할 분담
이라고 생각했지만,
후반에는
각자 다른 모델을 만든다.
↓
서로 다른 오류 패턴을 가진다.
↓
모델 간 결과를 비교한다.
↓
서로 다른 강점을 활용한다.
↓
앙상블
이라는 방향으로 이어졌다.
개인의 모델을 합치는 과정은 단순히 여러 예측 결과의 평균을 계산하는 것 이상의 의미가 있었다.
각자가 독립적으로 진행했던 실험을 하나의 최종 결과로 연결하는 협업 과정이기도 했다.
이 프로젝트에서 가장 크게 변한 것은 특정 모델이나 코드보다 문제를 바라보는 방식이었다.
처음에는 머신러닝 프로젝트를 대략 이렇게 생각했다.
데이터
↓
좋은 모델 선택
↓
학습
↓
튜닝
↓
높은 점수
하지만 실제 프로젝트는 훨씬 복잡했다.
문제 이해
↓
데이터 이해
↓
Baseline
↓
Validation 설계
↓
가설 설정
↓
전처리 / Feature Engineering
↓
모델 실험
↓
오류 분석
↓
실패
↓
원인 확인
↓
다시 실험
↓
팀원 실험 비교
↓
모델 발전
↓
앙상블
↓
최종 결과
특히 프로젝트 후반에는 새로운 모델을 계속 추가하는 것보다
지금까지 어떤 실험이 효과가 있었는가?
어떤 실험은 왜 버렸는가?
어떤 모델을 최종적으로 가져갈 것인가?
어떤 조합이 실제로 안정적인가?
를 결정하는 것이 더 중요했다.
탐색하는 단계에서 선택하는 단계로 넘어간 것이다.
이러한 과정을 거쳐 LG AImers 7기 해커톤 본선에 진출하게 되었다.
2025년에 참여했던 활동인데 지금 사진을 다시 보면 당시 기억이 꽤 생생하게 난다.
본선은 LG 인화원에서 진행되었다.

LG 인화원 도착!
처음 도착하면서 찍은 사진이다.

도착 후 걸어가는 중 1.

도착 후 걸어가는 중 2.
사진을 다시 보니 본선을 왔다는 사실 자체가 신기했던 기억이 난다.
도착하면 바로 LG AImers 티셔츠와 패스 명찰, 웰컴 키트 등을 받을 수 있었다.

이런 거 받을 때 괜히 기분이 좋다.
드디어 진짜 본선에 온 느낌.

처음 방에 들어갔을 때 진짜 놀랐다.
호텔급이었다.
해커톤 하러 왔는데 숙소가 너무 좋아서 잠깐 놀러 온 것 같은 느낌도 들었다.
물론 이후에는 계속 노트북을 보고 있었지만...

돈가스, 떡볶이 등등...
진짜 잘 나왔다.
그리고 이 글을 쓰면서 사진을 다시 봐도 배고프다.

점심...
졸맛.
다른 식사도 정말 잘 나왔다.
역시 대기업...
해커톤을 하다 보면 계속 머리를 써야 해서 은근히 배가 고픈데 과자도 준비되어 있었다.
이렇게 챙겨주시는 게 너무 감사했다.

음료수도 매번 한가득 준비되어 있었다.

카페인과 당으로 버티며 해커톤 진행...
재미있었던 점 중 하나는 해커톤 이외에도 다양한 프로그램이 준비되어 있었다는 것이다.
퍼스널 컬러 측정 같은 프로그램도 있었는데, 계속 모델만 보고 있다가 이런 프로그램에 참여하면 잠깐 머리를 식힐 수 있어서 좋았다.
실제 본선 현장에서 해커톤을 진행하면서 찍은 사진이다.

온라인으로 실험하던 것과 본선 현장에서 팀원들과 함께 작업하는 느낌은 확실히 달랐다.
온라인 단계에서는
각자 실험
↓
결과 공유
↓
다음 실험
의 반복이었다면,
본선에서는 제한된 시간 안에서
현재 상황 확인
↓
무엇을 더 해볼지 결정
↓
바로 실험
↓
결과 확인
↓
최종 제출 판단
을 계속 반복해야 했다.
시간이 정해져 있다 보니 무작정 새로운 아이디어를 추가하기보다는
지금까지 했던 실험 중 무엇을 최종적으로 가져갈 것인가
를 판단하는 것이 더 중요했다.
프로젝트 후반부에서 느꼈던
탐색
↓
선택
의 차이를 본선에서 가장 크게 체감했던 것 같다.
본선 행사장에는 포토존도 마련되어 있었다.

이런 거 있으면 또 그냥 지나칠 수 없지...
해커톤 중간중간 이런 사진도 남길 수 있어서 좋았다.
생활관을 이용하기 위한 패스 카드도 따로 지급받았다.

지금 보면 별거 아닌 물건처럼 보이지만, 이런 것들이 나중에 보면 당시 기억을 가장 잘 떠올리게 해주는 것 같다.
본선 기간 동안
생활관
↓
해커톤장
↓
식당
↓
다시 해커톤장
을 계속 왔다 갔다 했던 기억도 난다.
LG AImers 7기에서 예상하지 못했던 경험도 하나 있었다.
당시 해커톤 현장에서는 추석에 방영될 AI 다큐멘터리 메이드 인 K-AI 촬영도 함께 진행되고 있었다.
그리고...
내가 TV에 나왔다.

ㅋㅋㅋㅋㅋㅋㅋㅋ
위 사진에서 박수를 치고 있는 사람이 나다.
상황은 해커톤이 모두 끝난 뒤 최종 순위가 발표되고 있던 순간이었다.
당시 현장에서 다큐멘터리 촬영을 진행하고 있다는 것은 알고 있었는데, 정말 방송에 내가 나올 줄은 몰랐다.
나중에 방송을 보다가
"어? 저거 난데?"
ㅋㅋㅋㅋㅋㅋ
정말 짧은 순간이지만 내가 TV에 나오는 모습을 직접 보니까 꽤 신기했다.
다큐멘터리의 이름은 SBS에서 방영된 메이드 인 K-AI다.
참고로 넷플릭스에서도 볼 수 있다.
그러니까...
나 넷플릭스 나온 남자야.
물론 박수 치는 장면이지만.
아무튼 나왔다.
ㅋㅋㅋㅋㅋㅋ
LG AImers에 참가하면서 해커톤 본선에 오는 것도 전혀 예상하지 못했던 경험이었는데, 그 과정에서 다큐멘터리 촬영까지 하고 실제 방송에 등장하게 될 줄은 더더욱 몰랐다.
프로젝트와는 별개의 이야기지만, 2025년 LG AImers 7기를 떠올리면 꽤 오래 기억에 남을 에피소드 중 하나일 것 같다.
LG AImers를 시작하기 전에는 머신러닝 프로젝트를 비교적 단순하게 생각했다.
데이터
↓
모델
↓
튜닝
↓
높은 점수
하지만 실제 프로젝트를 경험하면서 이 생각은 완전히 달라졌다.
문제 이해
↓
데이터 이해
↓
Baseline
↓
Validation
↓
가설 설정
↓
실험
↓
오류 분석
↓
기록
↓
다음 가설
↓
협업
↓
앙상블
↓
최종 판단
이 모든 과정이 머신러닝 프로젝트였다.
특히 가장 기억에 남는 것은 세 가지다.
첫 번째는 모델보다 실험 기준이 먼저라는 것이다.
팀원들이 아무리 많은 모델을 만들어도 Validation과 전처리 기준이 다르면 결과를 제대로 비교할 수 없었다.
두 번째는 실패한 실험도 기록하면 정보가 된다는 것이다.
성능이 떨어진 실험 역시
"이 방법은 현재 조건에서 효과가 없다."
는 중요한 결과였다.
마지막은 머신러닝 프로젝트의 핵심은 점수 자체보다 가설과 검증의 반복이라는 것이다.
처음에는
"CatBoost가 좋을까? LightGBM이 좋을까?"
를 고민했다.
프로젝트가 끝날 때는
"왜 이 모델의 성능이 좋아졌고, 이 결과를 신뢰할 수 있는가?"
를 더 많이 고민하게 되었다.
2025년에 참여했던 LG AImers 7기는 내가 처음으로 실제 데이터를 가지고 팀원들과 머신러닝 문제를 처음부터 끝까지 고민해본 경험 중 하나였다.
온라인에서 모델을 만들고 실험하는 것에서 끝나지 않고 실제 해커톤 본선에 진출해 LG 인화원에서 프로젝트를 마무리하는 경험까지 할 수 있어서 더욱 기억에 남는다.
그리고 숙소도 좋았고,
밥도 맛있었고,
과자도 많았고,
퍼스널 컬러도 해보고,
TV도 나오고...
생각보다 정말 많은 경험을 했다.
ㅋㅋㅋㅋㅋ
하지만 지금 와서 가장 크게 남아 있는 것은 결국 머신러닝 프로젝트를 바라보는 관점의 변화다.
어떤 모델이 가장 좋은가?
에서
어떤 가설을 세웠고
어떻게 검증했고
왜 이런 결과가 나왔으며
그 결과를 다음 실험에 어떻게 연결할 것인가?
로 생각이 바뀌었다.
특정 알고리즘 하나를 배운 것보다 이 사고방식을 직접 경험해본 것이 LG AImers 7기에서 얻은 가장 큰 수확이었던 것 같다.
그리고 마지막으로...
2025년의 나는 LG AImers 해커톤 본선에 갔고, SBS에 나왔고, 지금은 넷플릭스에도 출연 중이다.
박수 치는 역할로.
ㅋㅋㅋㅋㅋㅋ
짧은 장면이지만 그래도 방송에 직접 나온 경험은 꽤 신기했다.
LG AImers에 참여하면서 머신러닝 프로젝트 자체뿐만 아니라 이런 예상하지 못한 경험까지 하게 될 줄은 몰랐다.
지금 다시 돌아보면 2025년 LG AImers 7기는 단순히 하나의 대회에 참가한 경험이 아니었다.
처음에는
좋은 모델을 고르고
튜닝해서
점수를 높이는 것
이 머신러닝 프로젝트의 핵심이라고 생각했다.
하지만 실제 프로젝트를 진행하면서는 훨씬 더 많은 것들이 중요하다는 것을 배웠다.
데이터를 어떻게 이해할 것인가?
Validation은 실제 문제를 제대로 반영하고 있는가?
하나의 실험에서 무엇을 바꿨는가?
왜 성능이 좋아졌는가?
실패한 실험은 어떤 정보를 남겼는가?
팀원들의 서로 다른 실험을 어떻게 비교할 것인가?
서로 다른 모델을 어떻게 하나의 결과로 연결할 것인가?
결국 프로젝트가 끝날 때쯤에는
"어떤 모델이 제일 좋은가?"
보다
"어떤 가설을 세웠고, 어떻게 검증했고, 그 결과를 다음 판단에 어떻게 연결했는가?"
를 더 많이 생각하게 되었다.
이 경험은 이후 다른 머신러닝 프로젝트를 진행할 때도 계속 영향을 주고 있다.
새로운 모델을 바로 적용하기 전에
Baseline은 무엇인가?
Validation 기준은 무엇인가?
이번 실험에서 무엇을 바꾸는가?
결과가 좋아졌다면 왜 좋아졌다고 볼 수 있는가?
를 먼저 생각하려고 한다.
어쩌면 LG AImers 7기에서 얻은 가장 큰 결과는 해커톤 본선 진출 자체보다 이런 실험에 대한 사고방식이었을지도 모르겠다.
물론 본선 진출도 정말 좋았다.
LG 인화원도 가보고,
맛있는 것도 정말 많이 먹고,
팀원들과 밤늦게까지 모델도 돌려보고,
퍼스널 컬러도 해보고,
TV에도 나오고...
2025년을 돌아보면 꽤 기억에 남는 경험 중 하나다.
마지막으로 당시의 경험을 한 문장으로 정리하면 이렇다.
머신러닝 프로젝트는 좋은 모델 하나를 찾는 과정이 아니라, 수많은 가설을 비교하고 실패를 기록하며 조금씩 더 나은 판단을 만들어가는 과정이었다.
2025년의 LG AImers 7기는 그걸 처음 제대로 경험하게 해준 프로젝트였다.
그리고...
넷플릭스를 보다가 우연히 박수 치고 있는 나를 발견한다면,
그게 바로 접니다.