1. 부트캠프를 다니게 된 이유
2025년 6월, 여러 가지로 미뤄두었던 취업을 다시 진지하게 고민하게 되었다. 수술 부위도 어느 정도 회복되었고, 청도지와 집안 행사들도 정리되면서 “이제는 정말 다음 스텝을 정해야 할 때”라는 생각이 들었다. 두 번째 회사를 퇴사한 이후, 개발과 관련해서는 Node.js와 앱 개발을 조금 경험해본 정도였고, 어떤 방향으로 진로를 탐색해야 할지 감이 잘 오지 않았다. 처음에는 iOS 개발자로 방향을 잡아볼까 고민했지만, 웹과 앱을 모두 경험하면서 결국 스스로에게 다시 질문하게 되었다.
“내가 정말 하고 싶은 개발은 뭘까?”
그 과정에서 빠질 수 없었던 키워드가 AI였다. 그래서 ChatGPT와 대화를 시작했고, 내가 되고 싶은 개발자의 모습, 국취제 일정, 학습 방식, 지역적 제약 등을 하나씩 정리해가며 상담하듯 이야기를 나눴다. 그 결과 ChatGPT가 추천한 부트캠프가 코드잇(Codeit)이었다.

AI 분야에 대한 지식이 전무했기 때문에 여러 부트캠프의 커리큘럼을 비교해보았고, 당시에는 컴퓨터 비전(CV)과 자연어 처리(NLP)의 차이조차 명확히 알지 못하는 상태였기에 특정 분야에 치우치기보다는 전반을 경험할 수 있는 커리큘럼이 필요했다. 또한 주 언어가 Java였던 만큼 Python 기초부터 다질 수 있는 점, 프로젝트를 파트별로 총 3회 진행할 수 있다는 점, 그리고 지방 거주자인 나에게 적합한 비대면 수업 방식도 중요한 선택 기준이었다. 여기에 더해 커리큘럼에 Docker가 포함되어 있다는 점도 결정적인 이유였다. Docker는 2021년부터 언젠가는 반드시 제대로 익히고 싶다고 생각해온 기술이었지만, 혼자서는 늘 설정 단계에서 멈추곤 했기 때문에 체계적으로 다룰 수 있는 환경이 필요하다고 느끼고 있었다.
이런 조건들이 맞아떨어져, 2025년 6월 코드잇 AI 엔지니어링 4기에 지원했고, 면접을 거쳐 최종 합격하게 되었다.
2. PART별 회고
코드잇 AI 엔지니어링 과정은 총 4개의 Part로 구성되어 있다.
Part1은 이론 중심, Part2~4는 초급 → 중급 → 심화 프로젝트로 단계적으로 진행된다.
AI 엔지니어 부트캠프 | 코드잇 스프린트
압도적인 결과로 증명하는 IT 취업 부트캠프! 코드잇 스프린트가 취업까지 무조건 책임집니다.
sprint.codeit.kr
위 링크를 타고가면 자세한 커리큘럼을 확인할 수 있다.
- 파이썬 사용 데이터분석 + 머신러닝
- 딥러닝 기초(pytorch) + 컴퓨터 비전
- 자연어처리 + llm
- 추론 최적화와 모델 배포
가장 큰 혼란을 겪었던 Part1부터 회고를 시작해보려고 한다.
2-1. PART1
그래서 EDA가 뭐고, 어떤 순서로 접근해야하는건데?
첫 수업에서 진행된 Python 기초와 객체지향 실습까지는 비교적 수월했다. 문제는 그 다음이었다. 나는 생성형 AI, 즉 ChatGPT·Gemini·Claude 같은 도구들을 거의 사용해본 적이 없었다. 첫 회사 인턴 기간이 끝난 시점이 공교롭게도 ChatGPT가 처음 등장하던 때였고, 두 번째 회사는 공기업 유지보수 업무 특성상 보안 문제로 인터넷 연결이 불가능해 AI 도구를 써볼 기회 자체가 없었다. 집에서 개인적으로 프로젝트를 해보려 했을 때도, 지금처럼 에이전트가 있는 환경이 아니라 웹 ChatGPT에 코드를 복붙하며 “이렇게 하고 싶은데, 이 부분 어떻게 수정해야 할까?” 정도의 대화만 했던 기억이 있다. 그래서 솔직히 “AI로 코딩하는 건 아직 먼 이야기”라고 생각하고 있었다.
본격적으로 머신러닝 기반 데이터 분석이 시작되면서 멘붕이 왔다. 머신러닝 자체보다도, 데이터를 분석한다는 행위 자체가 너무 어렵게 느껴졌다. 머릿속에 떠오른 생각을 파이썬 코드로 바로 옮기지 못하는 답답함, DataFrame을 자꾸 데이터베이스처럼 바라보며 생긴 잘못된 관점, Java와 JavaScript에 익숙한 상태에서 파이썬의 인덱싱과 함수들이 전혀 손에 익지 않던 경험이 한꺼번에 몰려왔다. 코드잇 커리큘럼은 주차별로 이론 → 미션 → 위클리 페이퍼 구조로 진행되는데, 나는 두 번째 미션부터 밤샘과 작업 전체를 뒤엎는 일을 반복했고, 일주일에 3~4번씩 지각할 정도로 생활 리듬도 무너졌다.
가장 처음으로, 그리고 가장 오래 막혔던 질문은 이것이었다.
“EDA가 도대체 뭐고, 어느 순서로 해야 하는 건가요?”
정답이 없는 문제라는 점이 오히려 더 힘들었다. 결국 강사님과의 1:1 질문을 통해 ‘정답’이 아니라 ‘하나의 기준이 될 수 있는 흐름’을 제안받았고, 그 순서를 따라가며 처음으로 데이터 분석을 끝까지 진행해볼 수 있었다. Part1은 분명히 너무 어렵고 벅찼다. 하지만 이후 딥러닝 파트로 넘어가면서, 머신러닝 단계에서 했던 모든 작업들이 오히려 더 또렷하게 이해되기 시작했다. 배울 당시에는 “이게 대체 왜 필요한 거지?” 싶었던 개념들이 미션 반복과 멘토링을 통해 점점 연결되었고, 결국 이해할 수 없는 상태에서 ‘경험해본 상태’로 넘어갈 수 있었다는 점에서 Part1은 가장 힘들었지만 가장 중요한 구간이었다.
📌 프로젝트 한눈에 보기
| 항목 | 🟢 초급 프로젝트 | 🟡 중급 프로젝트 | 🔴 심화 프로젝트 |
| 프로젝트명 | Pill-Snap | RAG 기반 문서 질의응답 시스템 | AI 광고 생성 & 상담 챗봇 |
| 개발 기간 | 2025-09-09 ~ 2025-09-25 | 2025-11-10 ~ 2025-11.28 | 2025-12-29 ~ 2026-01-28 |
| 팀 구성 | 6명 | 3명 | 5명 |
| 프로젝트 소개 | 의약품 정보를 스캔·조회하는 서비스 | 문서 기반 질의응답을 위한 RAG 시스템 | 소상공인을 위한 AI 광고 생성 및 상담 챗봇 |
| 주요 기능 | 이미지 기반 약품 인식 | Retriever, 문서 검색, 응답 생성 | 광고 문구 생성, 상담 챗봇, 시나리오 분기 |
| 기술 스택 | Python, YOLOv12 | Python, LangGraph, Vector DB, FastAPI, GPT, Llama-3 + KoE5 | Python, FastAPI, LangChain, Zit, GPT |
| Github | https://github.com/Geundol222/pill-snap | https://github.com/Lee-keonhee/codeit_RAG | https://github.com/shin5290/codeit_ad_smallbiz |
2-2. PART2 (초급 프로젝트 회고)
모델만큼 중요한 건, 데이터를 이해하는 일이었다
Part2 초급 프로젝트를 통해 가장 강하게 느낀 점은, 모델보다 데이터 전처리가 훨씬 중요하다는 사실이었다. 프로젝트 초반에는 솔직히 불안함이 컸다. 팀 내에서 역할이 나뉘다 보니, 내가 직접 모델을 다루지 않는다는 점에서 “이 프로젝트에서 나는 과연 제대로 기여하고 있는 걸까?”라는 생각이 계속 들었다. 이전까지는 코드를 직접 치고 결과를 만들어내는 것이 곧 기여라고 생각했기 때문에, 모델링을 맡지 않는다는 사실이 나를 더 위축되게 만들었다. 하지만 프로젝트를 진행하면서 그 생각은 점점 바뀌었다. 데이터 전처리 과정에서 결측치 처리, 라벨 정리, 데이터 기준 통일 같은 작업들이 모델 성능에 직접적인 영향을 준다는 걸 체감하게 되었기 때문이다. 특히 데이터의 의미를 정확히 이해하지 못하면 아무리 좋은 모델을 써도 결과가 왜 그렇게 나왔는지 설명할 수 없다는 점이 인상 깊었다.
또 하나 중요한 변화는 협업 방식에 대한 인식이었다. 비록 내가 직접 모델을 구현하지는 않았지만, 데일리 브리핑을 통해 각자 진행한 작업을 공유하면서 내가 하지 않은 작업이라도 충분히 이해하고, 함께 배울 수 있다는 걸 경험했다. 그중에서도 가장 인상 깊었던 작업은 수도 라벨링 과정이었다. 단순히 값을 분류하는 작업처럼 보였지만, 기준을 어떻게 잡느냐에 따라 데이터의 해석 자체가 달라질 수 있었고, 팀원과의 논의를 통해 라벨 기준을 정제해나가는 과정에서 데이터 전처리가 단순한 준비 단계가 아니라 문제 정의의 일부라는 걸 깨달았다.
이 프로젝트를 통해 ‘내가 모든 걸 직접 하지 않아도, 공유하고 이해하려는 태도만 있다면 팀 전체의 성장을 함께 만들어갈 수 있다’는 경험을 할 수 있었다. Part2는 나에게 협업 속에서 배우는 법을 처음으로 체감하게 해준 단계였다.

2-3. PART3 (중급 프로젝트 회고)
이끌지 못했던 아쉬움, 대신 전체를 이해하게 된 프로젝트
중급 프로젝트 초반, 나는 비교적 핵심적인 역할인 Retriever 파트를 맡아 프로토타입 구현에 참여했다. 하지만 프로젝트가 진행될수록, 내 부족함으로 인해 팀을 이끄는 역할이 아니라 따라가는 사람이 되어버렸다는 점이 가장 아쉬움으로 남았다. 초반에는 “내가 맡은 기능만 잘 구현하면 된다”는 생각이 있었지만, 프로젝트가 커질수록 그 방식으로는 한계가 있다는 걸 체감했다. 설계 의도를 충분히 이해하지 못한 상태에서는 문제가 생겼을 때 방향을 제시하기도, 주도적으로 개선안을 내기도 어려웠다.
다행히 이 과정에서 큰 배움의 기회가 있었다. 팀원분이 코드 리뷰를 해주시면서 “이 기능을 위해 왜 이런 구조를 선택했고, 왜 이런 방식으로 구현했는지”를 데일리 브리핑을 통해 하나하나 설명해주셨다. 그 덕분에 Retriever가 RAG 구조 안에서 어떤 역할을 하는지, LangChain과 LangGraph가 각각 어떤 책임을 갖고 연결되는지, 단순 기능 구현이 아니라 전체 파이프라인 관점에서 보는 시각을 얻을 수 있었다. 비록 내가 모든 기능을 직접 구현하지는 않았지만, ‘내 기능만 알고 끝나는 프로젝트’가 아니라 RAG 기반 챗봇 구조 전반을 이해하는 프로젝트가 되었다는 점에서 중급 프로젝트는 분명 의미 있는 전환점이었다.
또 하나 기억에 남는 점은 팀 구성이다. 인원이 단 3명뿐이라 체력적으로나 시간적으로 굉장히 빡빡했지만, 모두가 맡은 역할을 끝까지 책임감 있게 수행했고 발표 직전까지도 각자 최선을 다해 정리해준 덕분에 발표 시간에 실제 시연까지 무사히 마칠 수 있었다. 그 순간만큼은 “우리가 정말 하나의 팀으로 프로젝트를 완성했구나”라는 뿌듯함이 강하게 남았다.

2-4. PART4 (심화 프로젝트 회고)
욕심이 문제를 키웠고, 돌아보면서 방향을 다시 잡았다
마지막 프로젝트였기 때문인지, 나는 처음부터 욕심을 많이 냈던 것 같다. 중급 프로젝트 경험 덕분에 챗봇 구현을 비교적 쉽게 생각했고, 챗봇형 AI 광고 생성 서비스라는 방향을 잡았다. 여기에 더해 중간에는 상담 챗봇 기능까지 결합하면서 프로젝트 범위가 점점 커졌다. 문제는, 그 욕심을 받쳐줄 만큼의 설계 역량이 아직 부족했다는 점이었다. 백엔드 로직에서 분기 처리가 명확하지 않아 상황에 따라 의도한 대로 흐름이 타지 않는 문제가 계속 발생했다. 이때 가장 큰 실수는 내가 부족한 부분을 파악하려 하기보다, 이미 알고 있는 방식으로만 문제를 해결하려 했다는 점이었다. 그 결과, 코드가 점점 복잡해지고 문제를 해결하는 것처럼 보이지만 근본적인 개선은 이루어지지 않았다.
전환점은 강사님의 피드백이었다. 피드백을 통해 지금 당장 기능을 늘리는 것보다 사용자 시나리오 기준으로 흐름을 다시 정리해야 한다는 방향성을 잡을 수 있었다. 마침 심화 프로젝트를 시작하기 전후로 AI Agent와 MCP 붐이 일어나면서 처음으로 Claude Code, Codex 같은 도구들을 적극적으로 사용하게 되었고, 이를 통해 생산성은 눈에 띄게 향상되었다. 다만 그만큼 새로운 문제도 생겼다. 내가 완전히 이해하지 못한 코드, 사실상 필요하지 않은 코드들까지 함께 늘어나기 시작한 것이다. 그래서 중간중간 시간을 따로 내어 사용자 시나리오를 기준으로 프로세스를 따라가며 코드를 하나씩 이해하고 정리하는 작업이 꼭 필요했다.
개인적으로 가장 성가셨던 부분은 wrapper method 문제였다. 기존 함수 이름을 유지하기 위해 _function1을 호출하기만 하는 function2 같은 함수들이 계속 생기면서 코드만 길어지고 구조는 오히려 더 복잡해지는 상황이 반복되었다. 아직도 이 심화 프로젝트에는 더 정리하고, 더 개선해야 할 부분이 많이 남아 있다. 그럼에도 불구하고 부트캠프 기간 안에 마지막 프로젝트를 끝까지 마무리했다는 점은 스스로에게 꽤 의미 있는 성과로 남아 있다.
완벽하지는 않지만, 지금의 내 한계와 다음에 무엇을 보완해야 할지까지 분명히 알게 된 그 자체로 값진 프로젝트였다.



3. 마치며
이 부트캠프를 통해 단순히 기술 스택을 나열할 수 있게 된 것이 아니라, 문제를 어떻게 정의하고, 어디에서 막히며, 어떤 기준으로 선택을 해야 하는지에 대해 스스로 설명할 수 있게 되었다. 프로젝트를 진행하며 겪은 시행착오와 협업 경험들은 모두 개발자로서의 사고방식과 일하는 방식을 점검하게 만든 계기였다. 아직 부족한 점은 많지만, 이제는 새로운 기술이나 문제 앞에서도 막연함보다는 방향부터 잡으려는 태도를 갖게 되었다. 이 변화 자체가 이번 스프린트에서 내가 얻은 가장 큰 성과라고 생각한다.
'ฅʕ •Ⱉ• ⠕ʔฅ' 카테고리의 다른 글
| 노드제이에스 공부,,해야지 (0) | 2023.12.04 |
|---|---|
| 학은제 최종 성적 (0) | 2022.04.15 |
| 학은제 기말고사 성적 및 개별성적현황 (0) | 2022.04.05 |
| 학은제 과제 점수 및 피드백 (0) | 2022.03.22 |
| 한국스마트정보교육원 1차 평가 점수 및 피드백 (0) | 2022.03.22 |