쏘카 PE 1차 면접 직전 1장 치트시트 (D-1)
13:30-14:00 브레이크 카페에서 1회만 훑기. 새 개념 금지. 입에 붙은 키워드만 재확인.
풀 컨텍스트는 쏘카 PE 면접 준비 r4 참조.
TL;DR — 4가지 mental check
- 반문은 정정 신호 — 버티지 말고 즉시
"아, 정확히는 ~"전환. - 단언 금지 4종: 류석문 retired CTO 인용 /
Kotlin 안다/Pantheon = 회사급 자동화/AI 만능. - "구현했습니다" 금지 — JD 명시 거부.
결정 → 결과 → 지표톤으로. - 4분 안쪽 + 말 속도 느리게 (UMOS 회고 재발 약점).
A. 카드 매핑 — 1순위 3장 + 핵심 보조
| # | 카드 | 1줄 hook |
|---|---|---|
| 1A | AI 에이전트 통합 (Pantheon + Jarvis) | "디자인시스템 2.0의 AGENTS.md 패턴, 제 Pantheon이 정확히 그 구조인데 백엔드 운영 전반에 확장한 케이스" |
| 1B | 0→1 owner (yuon-ai) | "DaVinciCircle → yuon-ai org 이관. 인프라/저장소/CI/팀 동기화까지 owner" |
| 1C | 실시간 데이터 파이프라인 (TMS) | "차량 상태 sync·outbox·DLQ·peak hour — FMS 글의 STS 단말 → 캐시 패턴과 직접 매칭" |
| 4 | 클래스101 퇴사 이유 | "오너십 회피 아님. sparring 부재 구조가 안 맞음. JD가 하이노크 구조의 확대판" |
| 6 | AI 활용 (개인 프로젝트) | "개인 프로젝트는 AI 페르소나들을 팀처럼 운영하는 구조로 만들고 있어요. LLM 위키로 컨텍스트 미리 들고, 에러 로그 → 티켓 → 구현 → 배포까지 자율 파이프라인. 결정에만 집중하고 실행은 시스템이 처리하도록 다듬는 중입니다." |
자기소개 hook: "AI 통합 + 0→1 + 데이터 파이프라인 — 이 셋이 왜 한 사람에게 같이 있는가" 구조로. 단일 키워드 dump 금지.
카드 6 운용 룰: 실무(클래스101) 답변 후 → "개인 프로젝트에서는 ~" 연결. "제 개입을 줄이면서" 톤 금지(책임 회피로 들림). "결정에만 집중하고 실행은 시스템이 처리" 가 시니어 톤. 판테온 이름 노출은 회사급 자동화 둔갑 위험으로 회피.
B. 이 thread 연습에서 닫힌 카드 라인 5종
| Q | 카드 | 답변 라인 (입에 붙은 것) |
|---|---|---|
| Q1 | 워커 구조 변경 (기술 시스템) | 비용 + 운영 부담 동시 해결. 모니터링 중 애드혹 재실행 사라짐이 실질 효과 |
| Q1' | 분기 판단 — 기술 깊이/최근 vs 어려웠던/기억 | "기술적 깊이"·"최근"·"근래" → 워커 구조 변경. "가장 어려웠던"·"기억에 남는" → 클래스101 QA 미지원 마이그레이션 (단, 분량 짧게) |
| Q2 | B2C 트래픽 + 락 | 락은 짧게 잡고 외부 호출과 묶지 않기. 여러 테이블 락 시 항상 같은 순서 |
| Q3 | 결제·정산 멱등성 | 1순위 멱등 키 + DB UK. 보조로 조건부 UPDATE + affected rows 검사 |
| Q4 | AI 거버넌스 (work style) | 메인 push 위반 발견 → 정규 워크플로우 규칙 → 위반 ≈0. 스킬화 보류는 trade-off 의식 |
| Q5 | 일하는 방식 변화 (소프트룰 → 팀 침투) | 노크 컨벤션. immutable은 못 따라옴, 메소드 길이·SRP는 팀이 따라옴. 본인이 한 사례로 시작 → 팀 침투 증거로 닫음 |
C. 위험 톤 6종 (회피)
- Narrative 재현 금지 — 상황 묘사 X. 내가 한 결정과 결과만.
- 강점 평가절하 금지 —
"그냥…","운이 좋아서…"류 표현 X. - 수동 마무리 금지 —
"구현했습니다","맡게 됐습니다"X. JD 명시 거부. - Flattery 금지 —
"쏘카가 정말 멋진 회사라…"X. - 반문 = 정정 신호 — 같은 라인 반복 X. 다른 각도로 재구성.
- 도구 부풀리기 금지 — Pantheon은 1인 사이드 프로젝트로 정직하게. 회사급 자동화 둔갑 X.
D. 역질문 풀 3 + 운용 룰
| # | 카드 | 컨텍스트 1줄 |
|---|---|---|
| 1 | AGENTS.md 백엔드 확장 | "디자인시스템 2.0 글의 llms.txt + AGENTS.md 패턴이 *백엔드 도메인(차량 제어·예약·정산)*에도 같은 식으로 확장돼 있나요? ROI 컸던 영역이 궁금합니다." |
| 2 | FMS at-least-once + cold cache (강카드) | "2022 IoT 글 → 2024 FMS 글 흐름을 봤어요. 부릉 TMS에서 차량 단말 이벤트의 at-least-once 중복과 cold cache 정합성을 풀어본 경험이 있는데, 쏘카 FMS는 그 두 축을 현재 어떻게 처리하나요?" |
| 3 | 0→1 의사결정 권한 범위 | "한 영역 오너 + AI팀·PM·디자이너 협업 구조에서, 0→1 단계의 어디까지 본인이 결정하나요?" |
운용 룰:
- 역질문 3분+ 남으면 → 1 → 2 → 3
- 2분 이하 → 2 (FMS hook) 우선
- 1분 이하 → 2만
Plan B — 회사 fit 톤이 더 자연스럽게 느껴지면 (1·2 어색하면 즉시 전환):
- B1: "PE팀에서 다룰 문제·고객 후보가 어떻게 되는지 궁금해요."
- B2: "팀 구조와 협업 방식이 어떻게 자리잡혀 있나요? 제가 중요하게 생각하는 영역이고 기여하고 싶어서요."
- B3 (안전망, 3순위): "입사하면 첫 3-6개월 어떤 기여를 기대하시나요?" ← 본인 복귀 라인과 자연스럽게 연결. 진짜 2개로 닫는 게 억지 3개보다 깔끔 — "이 두 가지가 제일 궁금해서 준비해왔습니다" 닫음 가능.
E. UMOS 회고 재발 약점 3종 (절대 반복 금지)
- fetch join 본질 —
로드 줄임같은 표면 X. 정본 라인: one-to-many 2개 이상 → 카르테시안 곱 (row 폭발)페이징 깨짐 (Hibernate 메모리 페이징 경고)애그리거트 경계 결합- 설계:
기본 LAZY + 필요한 곳만 @EntityGraph / fetch join + 조회 전용 DTO projection - 동적 VRP 어휘 —
insertion heuristic/window-based re-route."당시엔 ~지만 지금이라면 ~"시그널. - 운영 회고 — 미팅실/입장 시각 한 번 더 확인. UMOS는 6분 늦게 시작 (미팅 링크 미스). 본 면접은 대면이지만 회의실 위치·층 메일로 한 번 더.
F. CS 안전망 — 단언 금지 + 키워드
① 트랜잭션 격리
- 4단계: RU → RC → RR → SER
- 디폴트: PG=RC, MySQL=RR (InnoDB gap lock으로 phantom 실질 차단)
- PG RR = Snapshot Isolation — write skew 못 막음
- 답변 라인:
"디폴트 RC + 비관락 / 멱등 키 / 조건부 UPDATE 조합으로 응용 레이어 명시적 방어. 격리 올리면 throughput·deadlock 비용 커서 trade-off."
② Idempotency
at-least-once + 멱등 처리(exactly-once는 환상)- 1순위 멱등 키 + DB UK > 2순위 조건부 UPDATE > 3순위 Redis SET NX
- HTTP: GET/PUT/DELETE 멱등, POST는
Idempotency-Key헤더 보강
③ Outbox / Saga
- Outbox: dual-write 해결. DB tx에 outbox row → publisher → Kafka
- Saga: Choreography(이벤트 체인) vs Orchestration(중앙). 보상 tx는 rollback 아님 — 효과 되돌리는 새 tx, 멱등성 필수
④ 분산 락
- SKIP LOCKED (DB) —
SELECT FOR UPDATE SKIP LOCKED, fencing 불필요, 워커 큐 최적 - Redis Redlock — Kleppmann 비판(GC pause / clock drift). 단독 안전 단언 X. fencing token + 멱등성 2중 방어
- 답변 라인:
"가능하면 락 피하고 응용 레이어 멱등성으로 푸는 게 우선."
⑤ CAP / PACELC
- Partition 발생 시 C·A 택1. 평시엔 둘 다 가능
- 함정:
"분산 = 항상 CP/AP"단답 X. Partition 동안만의 선택
⑥ Write Skew (SI 한계)
- 잔액 100, 출금 70+50 동시 → 각자 OK → 둘 다 commit → 잔액 -20
- PG SI(=RR) 못 막음. 해결: 조건부 UPDATE + affected rows / SELECT FOR UPDATE / PG SER / 분산락 + fencing
⑦ B-tree 시간복잡도 (채널톡 면접 재발 약점)
- 정본: O(log n) —
"거의 O(1)"절대 X - 극단 케이스 반문 시 정본 라인:
"정확히는 O(log n)입니다. 3000조 rows에서도 log₂(3×10¹⁵) ≈ 52번 비교면 충분합니다." - 반문 = 정정 신호 → 버티지 말고 즉시 라인 전환
⑧ TCP 3-way Handshake vs ACK (레이어 분리)
- 3-way Handshake = 연결 수립 (1회). SYN → SYN-ACK → ACK
- ACK = 각 세그먼트 수신 확인 (매번). 없으면 타임아웃 → 재전송
- 답변 라인:
"3-way는 연결 수립 1회, ACK는 매 세그먼트마다. 다른 레이어의 메커니즘이에요."
G. 거시 컨텍스트 숫자 3개
- 2025 연결 영업이익 232억원 (+330억 개선, 6분기 연속 흑자)
- 차량 1대당 LTC 매출총이익 1,420만원 (+40%), 가동률 37.8%
- Apex Mobility 분사 1,500억 (크래프톤 650억 투자)
H. 회고 누적 약점 — D-1 30분 음독 큐 (Top 6)
채널톡 + 콜로세움 + 시뮬 + UMOS 회고 4종 통합 추출. 새 개념 학습 X — 입에 굴리는 용.
| # | 약점 | 음독 라인 | 시간 |
|---|---|---|---|
| 1 | B-tree O(log n) (채널톡 실점) | "O(log n). 3000조 rows에서도 ≈52번" |
30초 |
| 2 | Fetch Join 3축 (UMOS 재발) | "카르테시안 / 페이징 깨짐 / 애그리거트 결합. 기본 LAZY + @EntityGraph + DTO projection" |
5분 |
| 3 | Redis Lock ≠ 정합성 | "Redis는 1차 직렬화. 최종 안전망은 DB 조건부 UPDATE + affected rows" |
30초 |
| 4 | 볼륨/관측성 수치 (재발) | "TMS 일 단위 배차 N건 / Sentry + Slack 알람 / 정확한 숫자 모르면 '수준은 X급' 정직 라인" |
30초 |
| 5 | 동적 VRP 어휘 (UMOS) | insertion heuristic(기존 해 살리며 끼워넣기) / window-based re-route(변경분만 재계산). 톤: "당시엔 ~지만 지금이라면 ~" |
3분 |
| 6 | TCP ACK vs 3-way (채널톡) | "3-way = 연결 수립 1회 / ACK = 매 세그먼트마다" |
20초 |
총 ~10분 정리 + ~20분 입에 굴리기. F⑦⑧ 과 묶어서 한 호흡.
I. 13:30-14:00 직전 체크리스트
- [ ] 화장실 + 물 한 잔
- [ ] 회의실 위치·층 메일 재확인 (UMOS 미팅 링크 미스 학습)
- [ ] 자기소개 hook 한 번 입에 굴리기:
"AI 통합 + 0→1 + 데이터 파이프라인 — 이 셋이 같이 있는 이유" - [ ] AGENTS.md hook:
"쏘카 디자인시스템 2.0 글 ↔ 제 Pantheon" - [ ] H 섹션 Top 6 음독 큐 한 번 더 (특히 1·3·4·6)
- [ ] 거시 숫자 3개 (232억 / +40% / 1500억) 한 번 되뇌기
- [ ] 노트 보지 않기 30분 — 산책·호흡. 톤 리셋이 카드 추가 학습보다 효과 큼
15:30 종료 후 회고 메모 5줄: 가장 약했던 답변 / 가장 강했던 답변 / 면접관 follow-up 패턴 / 슬롯 가설 / 다음 라운드 트리거.