Showing Posts From
눈치
- 07 Dec, 2025
SQL 모른다고 했을 때 사수의 표정
그 침묵 "신기획님, 이번 주 사용자 데이터 뽑아서 분석 좀 해줄래요?" 사수가 말했다. 월요일 아침 10시 30분. "네, 알겠습니다." 대답은 했다. 그런데 뭘 어떻게 뽑는 건지 몰랐다. "데이터는 어디 있나요?" "DB에 있죠. SQL로 쿼리 날리면 돼요." 그 순간. "...SQL을 몰라서요." 내 입에서 나왔다. 작은 목소리로. 사수가 멈췄다. 키보드 치던 손을. 모니터 보던 시선을. 호흡까지. 3초 정도였을까. 아니 30초 같았다. "아... 그렇구나." 그게 전부였다. 사수는 다시 모니터를 봤다. 나는 그 침묵이 뭔지 알았다. '기획자인데 SQL을 몰라?' 그 말이었다. 소리 없이 들렸다.그날 오후 점심을 먹고 돌아왔다. 사수가 말했다. "신기획님, 일단 이번 건은 제가 할게요. 시간 나면 SQL 좀 공부해보세요." "네... 죄송합니다." "아니 괜찮아요. 근데 기획자도 기본적인 쿼리는 알아야 해서요." 기본적인. 그 단어가 찔렸다. 나는 2년 차다. 주니어 끝자락. 시니어 입구에서 발만 담근 상태. 그런데 기본을 모른다. 오후 내내 일이 손에 안 잡혔다. 화면 정의서를 켜놨는데 한 줄도 못 썼다. "이 화면에서 이탈률 높은 사용자 데이터 좀..." 개발자가 물어보면 어떡하지. "SQL로 뽑아서..." 그러면 또 어떡하지. 상상만 해도 식은땀이 났다.저녁에 검색했다 퇴근하고 원룸에 들어왔다. 7시 50분. 노트북을 켰다. 'SQL 기초 강의' 검색. 유튜브에 영상이 수백 개 떴다. 1시간짜리, 30분짜리, 10분짜리. "비전공자도 할 수 있는 SQL" "기획자를 위한 SQL 입문" "하루 만에 배우는 SQL" 제목을 보니까 화가 났다. 나한테. 2년 동안 뭐 했나. 왜 이걸 미뤘나. '나중에 배우면 되지' 했다. '개발자가 해주겠지' 했다. '기획자는 기획만 잘하면 되지' 했다. 그런데 아니었다. 사수의 침묵이 말해줬다. '기본도 모르면서 무슨 기획을 하냐'고. 첫 번째 영상을 틀었다. SELECT 문부터 시작이었다. SELECT * FROM users;이게 뭔지도 몰랐다. 별표가 뭔데. FROM이 뭔데. users가 테이블인 건가. 강의를 20분 들었다. 머리가 아팠다. 집중이 안 됐다. '이걸 다 배워야 하나.' 좌절감이 왔다. 노트북을 덮었다. 침대에 누웠다. 천장을 봤다.화요일 아침 출근했다. 사수는 평소처럼 인사했다. "어제 SQL 좀 봤어요?" "네... 조금요." 거짓말이었다. 20분 보다가 접었다. "괜찮아요. 천천히 해도 돼요. 급한 건 아니니까." 그 말이 더 부담이었다. 급하지 않다는 건, 언젠가는 할 수 있어야 한다는 뜻이다. 오전 회의가 있었다. 데이터팀장이 말했다. "지난주 사용자 코호트 분석 결과인데요..." 화면에 표가 떴다. 숫자가 가득했다. DAU, WAU, MAU, Retention Rate. 나는 받아적기만 했다. 무슨 말인지 절반도 모르면서. 회의가 끝나고 사수가 말했다. "신기획님, 저 데이터 어떻게 뽑았는지 알아요?" "...SQL이죠?" "맞아요. 코호트 분석은 쿼리가 좀 복잡한데, 기본만 알아도 이해는 할 수 있어요." 이해. 나는 이해도 못 하고 있었다. 점심시간에 혼자 먹었다. 편의점 도시락. 책상에서. 노션을 켰다. 'SQL 공부 계획' 페이지를 만들었다.1주차: SELECT 문 익히기 2주차: WHERE 조건절 3주차: JOIN 이해하기 4주차: 집계 함수타이핑하면서 한숨이 나왔다. 4주면 될까. 8주는 아닐까. 그리고 또 생각했다. '이거 배워서 뭐가 달라지지?' 수요일 밤 여자친구한테 말했다. 전화로. "나 SQL 모르는 거 오늘 들켰어." "그게 뭔데?" "데이터 뽑는 거. 기획자는 알아야 하는 건데." "그럼 배우면 되잖아." "...응." 간단하게 말했다. 여자친구는 디자이너다. SQL이 뭔지 모른다. "너 요즘 회사에서 스트레스 많이 받는 것 같아." "아니야. 괜찮아." 거짓말이었다. 매일 받는다. 전화를 끊고 유튜브를 켰다. 어제 본 강의 이어서. WHERE 절을 배웠다. 조건을 걸어서 데이터를 필터링하는 거. SELECT * FROM users WHERE age >= 20;20세 이상 사용자만 뽑는 쿼리. 이건 이해했다. 그런데 또 의문이 들었다. users 테이블은 어디 있지. age 컬럼은 어떻게 알지. DB 구조는 누가 알려주지. 질문이 꼬리를 물었다. 강의는 계속 진행됐다. 나는 멈춰 있었다. 1시간을 봤다. 손으로 따라 쳤다. 메모장에. 뭔가 배운 것 같았다. 그런데 아무것도 할 수 없었다. 자정이 넘어서 잤다. 목요일 점심 개발자가 말했다. 밥 먹으면서. "신기획님은 SQL 쓸 줄 알아요?" 갑자기 물었다. 심장이 쿵 했다. "아... 아니요. 지금 배우는 중이에요." "아 그렇구나. 저는 기획자분들이 다 쓸 줄 아는 줄 알았어요." 칼을 꽂았다. 모르고. "보통은... 다들 쓰나요?" "글쎄요. 근데 데이터 보려면 필요하지 않나요?" "맞아요. 그래서 지금 공부 중이에요." "어렵지 않아요. 기본만 알면 돼요." 또 '기본'이었다. 모두가 기본이라고 했다. 나만 모르는 기본. 식판을 들고 자리로 돌아왔다. 밥이 안 넘어갔다. 오후에 사수가 슬랙을 보냈다. "신기획님, 이번 주 신규 가입자 수 좀 확인해주실래요? 어드민 툴에서 볼 수 있어요." 어드민 툴. 다행이었다. SQL은 아니었다. 숫자를 확인했다. 243명. 보고했다. "감사합니다. 혹시 이 중에 20대 비율 알 수 있을까요?" 순간 멈췄다. 어드민 툴에는 전체 숫자만 있었다. 연령대별은 없었다. "...SQL로 봐야 할 것 같은데요." 타이핑하면서 손이 떨렸다. "아 그렇구나. 괜찮아요. 제가 볼게요." 또 사수가 했다. 내가 못 하는 걸. 금요일 오전 주간 회의가 있었다. 대표님도 참석했다. 사수가 발표했다. 이번 주 데이터 리포트. "신규 가입자는 243명입니다. 이 중 20대가 62%를 차지하고요..." 내가 물어봤던 그 숫자였다. 사수가 뽑았던. "좋네요. 20대 타겟팅이 먹히고 있네. 이 추세면 다음 달 목표 달성 가능하겠어요." 대표님이 말했다. 모두가 끄덕였다. 나도 끄덕였다. 그런데 속으로 생각했다. '저 숫자를 나는 못 뽑는다.' 회의가 끝나고 자리로 돌아왔다. 모니터를 켰다. 노션에 'SQL 공부 계획' 페이지가 열려 있었다. 일주일 전에 만든. 1주차 목표는 SELECT 문이었다. 체크박스는 비어 있었다. 강의는 20분 봤다. 실습은 안 했다. 따라 치기만 했다. 일주일 동안 뭘 했나. 회피했다. 미뤘다. 바쁘다고 핑계 댔다. 진짜 이유는 따로 있었다. 무서웠다. 못 배울까 봐. 이해 못 할까 봐. '나는 비전공자니까.' 그 말로 자신을 위로했다. 그런데 그게 핑계인 걸 알았다. 비전공자도 배우는 사람은 많다. 나만 안 배우는 거였다. 금요일 저녁 퇴근하고 집에 왔다. 8시. 씻고 나왔다. 배달 음식을 시켰다. 치킨. 노트북을 켰다. 유튜브 대신 구글을 열었다. 'SQL 실습 사이트' 검색. 여러 개가 나왔다. W3Schools, SQLZoo, LeetCode. 첫 번째 사이트를 열었다. 브라우저에서 바로 쿼리를 쳐볼 수 있었다. 샘플 데이터가 있었다. Customers 테이블. 이름, 국가, 나이. SELECT * FROM Customers;실행 버튼을 눌렀다. 결과가 나왔다. 표로. 모든 고객 정보가 떴다. 10명. 다시 쳤다. SELECT * FROM Customers WHERE Country = 'Korea';실행. 한국 고객 3명만 나왔다. 심장이 뛰었다. 조금. 내가 했다. 내가 데이터를 뽑았다. 30분 동안 여러 쿼리를 쳤다.나이가 30 이상인 사람 이름이 'Kim'으로 시작하는 사람 국가별 고객 수 세기틀렸다가 고쳤다. 에러가 났다. 검색했다. 다시 쳤다. 치킨이 식었다. 신경 안 썼다. 자정이 넘어서 노트북을 덮었다. 아직 모르는 게 산더미다. JOIN은 뭔지, 서브쿼리는 뭔지, INDEX는 뭔지. 그런데 오늘은 SELECT와 WHERE를 했다. 내일은 GROUP BY를 해볼 거다. 모레는 COUNT와 SUM을 할 거다. 한 달 뒤에는 사수한테 말할 수 있을까. '제가 뽑아볼게요.' 모르겠다. 그런데 해볼 거다.침묵은 가장 큰 피드백이다. 그 침묵을 잊지 않기로 했다.
- 05 Dec, 2025
비전공 기획자의 CS 지식 콤플렉스
회의실에서 얼어붙는 순간 "이 부분은 캐시 처리로 해결하면 될 것 같은데요." 개발팀장이 말했다. 나는 고개를 끄덕였다. 캐시. 뭔가 빠르게 하는 거다. 그 정도는 안다. 하지만 정확히 뭔지는 모른다. 노트북 화면에 '캐시 처리 검토' 라고 적었다. 손에 땀이 났다. "기획자님 생각은요?" 팀장이 나를 봤다. 심장이 빨라졌다. "네, 그게... 좋을 것 같습니다." 좋을 것 같다니. 나도 내가 한심했다. 회의가 끝났다. 화장실에 가서 '캐시란' 검색했다. 임시 저장소. 빠른 접근. 그래, 이거였구나. 2년차인데 아직도 이런다.몰래 검색하는 일상 오전 10시 30분. 데일리 스크럼. "API 응답 시간이 너무 길어서요." 개발자가 말했다. 나는 노션 창 뒤에서 구글을 켰다. 'API란 무엇인가' 검색창에 친다. 백엔드 개발자가 계속 말하고 있다. 나는 검색 결과를 빠르게 훑었다. Application Programming Interface. 프로그램 간 소통 방식. 아, 그러니까 우리 앱이 서버한테 데이터 달라고 하는 거구나. "기획 쪽에서 확인할 부분 있나요?" 나를 봤다. "아... 로딩 화면 추가하는 건 어떨까요?" "그것도 방법이긴 한데, 근본적 해결은 아니죠." 맞다. 근본적 해결이 아니다. 나는 또 땜질 기획을 했다. 회의가 끝나고 자리에 앉았다. 노션에 용어 정리 페이지를 만들었다.API: 프로그램 간 소통 창구 캐시: 임시 저장소, 빠른 접근용 세션: 사용자 접속 정보 유지이렇게 모아놓은 게 벌써 50개다. 근데 모아만 놓고 제대로 이해한 건지 모르겠다.들킬까봐 무서운 순간들 가장 무서운 건 개발자가 내 기획서를 볼 때다. "이 부분, 세션 만료되면 어떻게 처리할 거예요?" 세션 만료. 로그인 풀리는 거 아닌가. "로그인 화면으로 보내면 될 것 같은데요." "그럼 작성하던 내용은요?" "아..." 생각 못 했다. 또 구멍이 났다. "로컬 스토리지에 임시 저장하면 되겠네요. 제가 정리해서 공유할게요." 개발자가 말했다. 고맙다. 그런데 창피했다. 로컬 스토리지. 또 모르는 용어다. 사수가 말했다. "비전공이라 힘들지?" 솔직하게 말했다. "네... 용어가 너무 어렵습니다." "나도 처음엔 그랬어. 근데 기획자가 다 알 필요는 없어. 물어보면 돼." 물어보면 된다. 맞는 말이다. 그런데 매번 물어보면 무능해 보일 것 같다. 신입 때는 몰라도 됐다. 2년차인데 아직도 모르면 문제 아닌가. 검색창에 '로컬 스토리지'를 쳤다. 브라우저 저장소. 세션 스토리지보다 오래 유지. 그럼 세션 스토리지는 또 뭔데. 끝이 없다.비전공의 생존법 유튜브에 'CS 기초' 강의가 500개는 된다. 북마크만 300개다. 본 건 10개. 주말마다 공부하려고 했다. 근데 주말엔 친구를 만나고 여자친구를 만나고 밀린 빨래를 했다. 그러다 월요일이 온다. "Redis 캐싱 적용하면 어떨까요?" Redis. 또 새로운 단어다. 점심시간. 사수한테 물어봤다. "형, Redis가 정확히 뭔가요?" "캐시 저장소야. 메모리 기반이라 빠르지." "메모리 기반이요?" "RAM에 저장한다는 거. DB는 디스크에 저장하잖아." RAM, 디스크. 알 것 같기도 하고 모를 것 같기도 하다. "이런 거 언제 다 배워요?" "배우는 게 아니라 부딪치면서 익히는 거지. 나도 아직 모르는 거 많아." 사수도 모르는 게 많다고 했다. 조금 위안이 됐다. 그날 저녁. 'Redis 입문' 영상을 켰다. 20분짜리였다. 10분 보다가 졸았다. 이게 맞나 싶다. 알은 척하는 기술 회의에서 살아남는 법을 터득했다. 첫째, 모르는 용어 나오면 받아적는다. 둘째, "확인해보겠습니다" 라고 말한다. 셋째, 회의 끝나고 검색한다. 넷째, 다음 회의 전에 그 용어 들어간 문장을 한 번 말해본다. "API 응답 속도 개선안을 정리했습니다." 이렇게 말하면 안다고 생각한다. 실제로는 반만 안다. 동기한테 물어봤다. "너도 그래?" "나도 그러지. 근데 1년 전보다는 나아졌어." "언제쯤 당당해질까?" "글쎄. 5년차 선배도 가끔 모른다고 하던데." 그래도 선배는 모른다고 말할 용기가 있다. 나는 아직 그게 무섭다. "이거 무슨 뜻이에요?" 이 한 마디가 왜 이렇게 어려운지. 성장하는 중이라고 믿고 싶다 어제 기획서를 썼다. 개발자가 피드백을 줬다. "이 부분 API 설계 고려해주셨네요. 좋습니다." 칭찬이었다. 작은 거지만 기뻤다. 지난주에 배운 REST API 개념을 적용한 거였다. GET, POST, DELETE. 이 정도는 이제 안다. 완벽하게는 아니지만, 6개월 전보다는 안다. 노션 용어집을 다시 봤다. 50개가 100개가 됐다.API: 프로그램 간 소통 창구, REST 방식이 일반적 캐시: 임시 저장소, Redis 같은 인메모리 DB 사용 세션: 로그인 상태 유지, 만료 시간 있음 로컬 스토리지: 브라우저 저장소, 영구 보관 쿠키: 브라우저 저장 데이터, 용량 작음예전엔 단어만 적었다. 이젠 설명이 붙는다. 완벽하지 않다. 깊이는 부족하다. 그래도 전보다는 낫다. 사수가 말했다. "CS 지식은 기획자한테 필수는 아니야. 근데 있으면 편하지." 맞다. 필수는 아니다. 그런데 없으면 불안하다. 개발자와 대화할 때, 뭔가 막힌다. 벽이 있는 느낌이다. 그 벽을 넘고 싶다. 천천히라도. 2년차의 솔직한 고백 아직도 모르는 게 더 많다. 도커가 뭔지, 쿠버네티스가 뭔지, CI/CD가 뭔지. 개발자들이 하는 말의 절반은 못 알아듣는다. 그래도 작년보다는 낫다. 작년엔 80%를 몰랐다. 지금은 50%. 천천히 줄어들고 있다. 언젠가는 당당하게 "이거 모르겠는데 설명해주세요" 라고 말할 수 있을까. 언젠가는 개발자가 설명할 때 바로 이해할 수 있을까. 2년차는 아직 그런 날이 오지 않았다. 그래도 포기하지는 않는다. 오늘도 유튜브 강의 하나를 북마크했다. 볼지는 모르겠지만.비전공 기획자의 CS 공부는 끝이 없다. 그래도 어제보다 오늘이 조금 더 안다. 그걸로 됐다.