벌써 커널 아카데미 취업 리부트캠프의 6주차가 끝났습니다. 지난주 강사님께서 내주셨던 "AI에게 묻지 말고 직접 영화 예매 시스템을 모델링해 오라"는 미션이 이번 주 내내 저를 따라다녔는데요. 직접 그린 ERD 리뷰부터 실제 프로젝트 구현, 소셜 로그인 연동, 그리고 후반부 쇼핑몰 모델링과 깜짝 등장한 은행업무 수업까지 — N년 차 개발자로서도 정신 바짝 차리고 따라가야 할 만큼 밀도 높은 한 주였습니다.
1. 직접 모델링한 영화 예매 시스템, 코드로 살아 움직이다
월요일은 직접 설계해 온 영화 예매 시스템 ERD를 강사님께 리뷰받는 것으로 시작되었습니다. 커널 아카데미 강의에서 배운 정규화 원칙을 그대로 적용해 영화관, 상영관, 좌석, 영화, 상영 회차, 예매 같은 핵심 엔티티를 먼저 잡고, 거기에 가격 정책·할인 정책·결제수단·환불사유까지 붙이다 보니 어느새 30개가 넘는 테이블로 확장된 결과물이 됐습니다. 처음 그릴 때만 해도 "이 정도면 충분하지 않나" 싶었는데, 강사님과 동료들의 피드백을 받으며 한 줄 한 줄 컬럼을 다시 들여다보니 미처 보지 못한 빈틈이 곳곳에 보였습니다.

리뷰가 끝난 뒤에는 그 ERD를 그대로 실제 프로젝트로 구현하는 작업이 이어졌습니다. Vue 프론트엔드와 백엔드를 직접 붙여 영화 목록, 전국 영화관 지점 안내, 회차 선택, 좌석 선택, 결제까지 이어지는 예매 플로우 전체를 만들었는데요. 이번에 가장 어려웠던 부분은 단연 가격 모델링이었습니다. 좌석을 단순히 "성인 14,000원"으로 끝낼 수 없고, 같은 좌석이라도 스위트스팟이면 +2,000원, 사이드면 -1,000원, 뒷열이면 -500원처럼 자리별 차등 가격이 적용되어야 하니까요. 거기에 할인 정책(배타그룹, 중복 가능 여부, 적용 시작·종료일, 활성 여부)까지 얽히기 시작하니, 단순 JOIN 한두 번으로는 도저히 풀리지 않는 구조가 됐습니다.

결국 가격은 "좌석타입 × 화석등급 × 가격정책"의 조합으로 분해해서 각 차원이 독립적으로 확장 가능하도록 설계했습니다. 새로운 등급(예: VIP룸)이 생겨도 기존 테이블 구조를 건드리지 않고 레코드만 추가하면 되도록요. 취업 리부트캠프의 진가가 바로 이런 지점에서 드러난다고 느꼈습니다. 강의에서 줄곧 강조하신 "확장성"이라는 단어가 단순한 슬로건이 아니라, 실제로 손으로 설계해 본 사람만 체감할 수 있는 무게라는 사실을요.
2. 욕심을 부려 본 소셜 로그인 (카카오·구글 OAuth)
여기서 한 발 더 욕심을 부려 소셜 로그인 연동까지 직접 붙여 봤습니다. 이메일 회원가입 외에 카카오와 구글 OAuth 두 가지를 모두 연결했는데요, 사실 이번 주 미션 범위를 넘어선 작업이었지만 추후 진짜 서비스 수준으로 발전시키려면 반드시 필요한 기능이라 미리 손에 익혀 두고 싶었습니다. 취업 리부트캠프 커리큘럼이 이런 자율적인 확장을 격려해 주는 분위기라는 점도 한몫했습니다.
직접 붙여 보니 OAuth는 단순히 "버튼 두 개 추가하기"가 아니었습니다. 가장 까다로웠던 건 사용자 모델 통합 문제였는데요 — 이메일로 가입한 회원과 카카오로 들어온 회원, 구글로 들어온 회원을 어떻게 한 테이블로 관리할지부터 고민이었습니다. 같은 이메일을 쓰는 사람이 다른 소셜로 또 들어왔을 때 같은 계정으로 묶을 것인지, 분리할 것인지. 토큰 만료 시 재발급 흐름은 어디에 둘 것인지. 이런 것들을 따져 보다 보니, 결국 소셜타입 테이블을 별도로 두고 사용자와 1:N으로 연결해 한 사용자가 여러 소셜 계정을 묶을 수 있도록 설계했습니다. 이번 모델링 수업에서 배운 "확장 가능한 구조"라는 원칙이 여기서도 그대로 적용된 셈입니다.


3. 후반부의 도전, 쇼핑몰 모델링과 검색·포인트의 함정
주 후반부터는 분위기를 바꿔 쇼핑몰 도메인 모델링에 들어갔습니다. 영화 예매보다 한층 더 디테일하게, 상품 카테고리부터 옵션·재고·배송·리뷰·문의·쿠폰·포인트까지 하나하나 짚어가며 설계 중인데요. 가장 어렵게 느껴지는 두 가지가 있습니다.
첫째는 검색 필터링입니다. 가격 범위, 카테고리, 옵션 조합(색상·사이즈), 평점, 배송 조건이 동시에 걸리는 다차원 필터를 어떻게 인덱스 친화적으로 풀어낼 것인가가 관건입니다. 둘째는 포인트 제도인데, 적립·차감·만료·소멸·환불 시 회수까지 시간축이 얽힌 복잡한 상태 머신이라 트랜잭션 정합성과 함께 고민해야 합니다. 단순히 "포인트 컬럼 하나"로 끝나는 게 아니라, 모든 적립·사용 내역을 트랜잭션 단위로 기록하고 만료 시점을 별도로 관리해야 한다는 점이 새삼 까다롭게 느껴졌습니다.
다음 주 수요일에 이 쇼핑몰 모델링 결과를 발표한다고 하니, 지난주 AI 프로젝트 발표 때만큼이나 긴장됩니다. 그동안 AI 프로젝트 커리큘럼에서 모델 다루는 법, RAG 시스템 만드는 법은 배웠지만, 결국 "서비스로 만들어지는 AI 프로젝트"는 단단한 데이터 모델 위에서만 살아남을 수 있다는 걸 이번 모델링 수업으로 다시 한 번 깨닫고 있습니다. 잘하고 싶은 마음이 큽니다.
4. 깜짝 등장한 은행업무 수업, 재테크 지식이 정리되다
이번 주 또 하나 흥미로웠던 건 은행업무 관련 수업이었습니다. CP(기업어음), RP(환매조건부채권), 채권 같은 금융 용어들을 다뤘는데, 사실 평소에 재테크 한답시고 혼자 유튜브와 책을 뒤져가며 띄엄띄엄 익혀둔 지식이 있었습니다. 그런데 강사님께서 정말 쉽게 풀어 설명해 주시니, 그동안 수박 겉핥기로만 알고 있던 개념들이 한 줄로 깔끔하게 정리되는 느낌이었습니다.
"개발자가 왜 금융 상품 구조를 배우지?" 싶을 수 있지만, 실제로 금융 도메인 시스템을 만들게 된다면 이런 도메인 지식이 곧 모델링 능력으로 직결됩니다. 어음의 만기·할인·배서 같은 흐름을 알아야 결제 시스템 테이블을 제대로 설계할 수 있으니까요. 이런 부분까지 챙겨주는 것이 커널 아카데미 취업 리부트캠프의 진짜 차별점이 아닐까 싶습니다. 단순한 코딩 학원이 아니라, 개발자가 마주칠 비즈니스 도메인 자체를 가르쳐 주는 곳이라는 인상을 강하게 받았습니다.
5. 마무리하며
6주차를 정리해 보면, 지난주 손으로 그렸던 ERD가 실제로 동작하는 영화 예매 서비스로 살아나는 경험, 소셜 로그인이라는 추가 도전, 더 복잡한 쇼핑몰 도메인으로의 확장, 그리고 도메인 지식을 채워주는 은행업무 수업까지 — AI 프로젝트 부트캠프라는 큰 우산 아래에서 정말 다양한 근육을 단련한 한 주였습니다.
다음 주 수요일 쇼핑몰 모델링 발표를 잘 마치고, 또 한 번의 AI 프로젝트 마일스톤을 향해 달려보려 합니다. 커널 아카데미 동기들과 함께 서로 자극받으며 성장하는 이 시간이, 돌이켜 보면 가장 값진 자산이 될 것 같습니다. 커널 아카데미 취업 리부트캠프의 다음 주는 또 어떤 새로운 시야를 열어줄지 기대가 큽니다.
그럼 7주차 후기로 다시 찾아오겠습니다. 끝까지 완주를 향해, 오늘도 한 걸음 더!
본 포스팅은 커널 아카데미 취업 리부트캠프를 수강하고 작성한 콘텐츠 입니다. https://kernel.fastcampus.co.kr/b2g_reboot
'Re:boot Camp > 후기' 카테고리의 다른 글
| [커널 아카데미 취업 리부트캠프] 8주차 후기 : 감기와 ERD에 매달린 한 주, 그리고 1인 은행 프로젝트의 출발선 (0) | 2026.05.17 |
|---|---|
| [커널 아카데미 취업 리부트캠프] 7주차 후기 : 쇼핑몰 ERD 발표, 그리고 은행 도메인의 시 (0) | 2026.05.10 |
| [커널 아카데미 취업 리부트캠프] 5주차 후기 : RAG 시험과 DB 모델링, AI에 의존하지 않는 사고력 훈련 (1) | 2026.04.26 |
| [커널 아카데미 취업 리부트캠프] 4주차 후기 : 에이전트 엔지니어링과 긴장감 넘치는 퀘스트의 나날들 (0) | 2026.04.19 |
| [커널 아카데미 취업 리부트캠프] 3주차 후기 : AI 모델 발표와 긴장의 파이썬 시험 (1) | 2026.04.12 |