인마이백: 국내 CS팀 예비신부들 가방 공개!
출근 가방 속에는 그 사람의 하루가 담겨 있다. 컴투스온이 2026년 새롭게 선보이는 코너 ‘인마이백’은 컴투스인들의 출근 가방을 통해 일상과 직무, 그리고 관계를 함께 들여다보는 콘텐츠다.
첫 번째 가방의 주인은 고객서비스실에서 일하고 있는 두 명의 구성원이다. 하나는 바리바리 풀소유, 다른 하나는 깔끔한 미니멀. 가방 스타일은 정반대지만, 비슷한 나이대에 2026년 결혼을 준비 중인 예비신부라는 달콤한 공통점을 가지고 있다. 업무적 접점은 많지 않지만, 회사 안에서 찐 우정을 키워가고 있는 CS팀 듀오다. 달라서 더 잘 맞는 두 사람의 출근 가방과 그 안에 담긴 진솔한 직무 이야기를 지금 공개한다.
PART 1. 인마이백 (In My Bag)

Q. 자기소개 부탁드립니다.

시루: 안녕하세요! 국내 CS팀에서 홀딩스 문의 대응을 담당하고 있는 시루라고 합니다. 시루는 저희 집 귀여운 회색 고양이의 이름이에요. 🐈⬛
미쯔: 안녕하세요~ 저는 국내CS팀 미쯔입니다 😽 컴투스 CS 대응 및 이슈 관리와 신규 게임의 론칭 전후로 원활한 CS 대응이 이루어질 수 있도록 준비하는 업무를 담당하고 있어요! 미쯔는 저의 가족인, 아주 작고 귀여운 회색 고양이 이름이랍니다.
Q. 두 분이 친해지게 된 계기는 무엇인가요?
시루: 코로나 시기에 재택근무를 잠깐 했었는데, 친해지고 싶어도 마주치지를 못했다가 정상 근무로 전환되고 나서 제가 먼저 저녁 같이 하자고 꼬셨어요! 저랑 나이도 비슷해 보이고 되게 호감상이셨거든요. 제가 간택했어요 히히~
미쯔: 입사 이후부터 오랜 시간동안 재택 근무를 하다보니, 사회성이 약간 결여(ㅠㅠ)된 상태였는데요 ㅎㅎ; 그러다보니 처음엔 시루님의 적극 플러팅에 ‘회사 사람이랑 이렇게 친해져도 되나..?’하고 약간 벽을 두기도 했었어요. 하지만 이제는 둘도 없는 친구이자 의지할 수 있는 팀 동료랍니다! 함께 울산 여행도 다녀왔어요 ^0^
Q. 조직 내에서 서로를 한마디로 소개한다면?
미쯔 → 시루: 미모와 지성을 겸비한, 배울 점이 너무나 많은 멋진 1등 사원
시루 → 미쯔: 일도 고민도 믿고 맡기는 대리님
👜 미쯔의 가방: “살려줘…” 외치는 보부상 백

가방 소개: 트렌드에 따라 잠시 아주 작은 미니백을 들고 다닌 적이 있지만, 터질 듯한 수납으로 인해 살려달라는 외침을 듣고 다시 이 보부상백으로 돌아왔답니다. 지그재그라는 플랫폼을 통해 저렴하게 구입했던 가방인데, 한쪽 면은 스웨이드 재질이고 다른 면은 가죽 재질이라서 옷 스타일에 따라 어울리는 면이 보이도록 들 수 있어서 좋아요! 수납은 말해뭐해, 아주 넉넉합니다.
🔍 가방 속 대표 아이템

- 🎧 애착 헤드폰: 자칭타칭 저의 재산 1호이자 곧 전재산인 소중한 애착 헤드셋이에요. 저는 인천에서도 포구가 가까운 서해 근처에 살고 있다보니, 편도 약 2시간의 출퇴근 시간동안 들려오는 수많은 소음들에 노출된답니다.. 소음에서 자유롭게 해주는 건 이 헤드셋 뿐이에요. 저에게는 정말정말 소중한, 핸드폰 없이는 출근해도 헤드셋 없이는 출근하지 못할 정도의 필수 아이템! 출근할 땐 잊지 않도록 꼭 가방에 키링마냥 걸고 다녀요. 😀
- 👝 파우치가 2개인 이유: 정리정돈에는 영 젬병인지라, 파우치가 없으면 가방에 모든 걸 다 때려넣어서 물건 찾는 데에 한 세월이 걸리거든요. 안되겠다 싶어, 필수템을 담는 큰 파우치와 자주 꺼내는 영양제와 미니거울 등을 담는 작은 파우치를 각각 들고다닙니다 ㅎㅎㅎ
- 👛 지갑이 2개? (사실 3개):
- 물건을 잘 잃어버리는 저에게는.. 지갑 또한 예외가 없답니다. 사실 휴대폰에 붙어있는 맥세이프 지갑까지 하면 총 3개의 지갑을 가지고 다니는데요~ 맥세이프 지갑에는 교통카드 1, 주민등록증 1 / 카드지갑에는 여분의 카드와 운전면허증 / 반지갑에는 언제든 붕어빵과 로또를 살 수 있는 소액의 현금이 있어요 👍
- 반지갑에는 아주 깊은 사연이 있는데요. 무려 5번을 잃어버렸지만 기적같이 저에게 되돌아온 지갑이에요. 한 번은 코인노래방에서 흥에 취해 지갑을 두고 나왔었는데요. 알아채자마자 돌아갔지만 지갑은 사라졌고, 추운 겨울날 엉엉 울며 대학로 길거리를 뛰어다니다 찾는 걸 포기했어요.
- 그리고 일주일 뒤.. 습득했다는 연락을 받고 경찰서에 가서 되찾았는데 현금 20만원이 홀랑 사라졌더라고요ㅠㅠ 명탐정 코난에 빙의해서 습득 신고 접수 시간이 이상한 점을 캐치해서 형사님께 말씀드렸고, 그 결과 범인까지도 잡을 수 있었답니다. 범인은 작은 돈에 욕심이 난 고등학생 커플이었어요. ㅎㅎ 돈은 훔쳤지만 지갑은 돌려줬으니 고맙다고 해야할지, 혼쭐을 내줘야할지 몰라서 약간의 훈계와 함께 선처해줬답니다.
- 😷 가습 마스크: 기내 필수템으로 많이들 알고 계실 가습 마스크예요! 얼마 전에 아주 독한 감기에 걸렸는데, 건조할 수록 감기에 더 잘 걸린다고 하더라고요. 건조한 날 기관지를 지키기 위해 항상 챙겨다니며 필요할 때 요긴하게 잘 쓰고 있답니다. 추천!
- 📚 재테크 책: NFP 분들이라면 공감하실 텐데요. 저는 재테크에는 영 소질이 없어요. 모으는 것보다 쓰는 것에 자신있다보니, 2026년 새해를 맞아 새롭게 태어나 보고자 컴투북스에서 재테크책을 대여해서 열심히 읽고 있는데요. 20대 사회 초년생을 위한 책이라 기본이지만 필수적인 경제, 재테크 지식들을 배울 수 있어 추천드려요! 기본적인 자산 관리부터 부동산 관련 내용까지도 알차게 들어있답니다.
🔍 미쯔’s 파우치1

- 영양제 세트
- ① 가꾸기 피부케어 비피더스유산균(초록색): 피부 케어 성분이 추가된 유산균인데요! 유산균을 꼭 챙겨야 한다는 얘기는 많이 들었는데, 이상하게 알약은 챙겨먹기 싫어서 찾게 된 잇템입니다 ㅎ_ㅎ 플라시보일 수도 있지만 먹고나서 트러블이 나는 주기도 줄고, 나름 효과를 보고 있는 것 같아요!
- ② 레모나: 저희 엄마의 안부 인사는 “레모나 챙겨먹어”일 정도로 비타민C의 중요성을 늘 강조하시는데요 ㅎㅎ 다른 영양제만큼 자주 챙겨먹지는 못하지만 엄마가 생각날 때마다 하나씩 챙겨 먹습니다. 효과는.. 잘 모르겠어요.
- ③ 애사비: 과식한 날 팀장님께서 챙겨주셨던 ‘애사비’예요 ㅋㅋ 상큼한 맛을 좋아해서 음료가 당길 때 마시려고 파우치에 챙겨다닌답니다.
- ④ 에스더 리포좀 글루타치온 울트라 9X 필름: 이것도 저희 엄마 필수템이라 잔뜩 챙겨주셔서 먹고 있어요! 효과는 잘 모르겠지만 피부에 좋다고 하더라고요~ 입천장에 붙여 살살 녹여먹으면 되는 간편 영양제랍니다.
- ⑤ 스토마큐정: 무려 중학교 시절부터 스트레스 받을 때마다 신경성 위염이 도졌던 저의 필수품, 위경련으로 응급실에 한 번 실려간 후로는 꼭 챙겨다닙니다ㅠ_ㅠ
- 인공눈물: 라식인이라면 공감하실 안구 건조증… 특히 겨울에는 건조함이 더 심해져서 챙겨다녀요!
- 증명사진: 저는 주변에 물건을 잘 잃어버리는 사람을 고르라면, 지인 모두가 저를 떠올릴 정도로 ‘손에 구멍이 난’ 사람이에요.. 그러다보니 신분증을 재발급 받을 일도 참 많답니다. (민증 재발급 6회 경험자) 그래서 혹시나.. 하는 마음으로 재발급을 대비해 사진을 가지고 다녀요!
- 붓기 관리템: 언제였는지 기억은 잘 안나지만, 연예인들은 설탕이나 꿀을 탄 녹차를 마시며 붓기를 뺀다고 하더라고요? 저는 아침이 되면 다른 사람처럼 얼굴이 많이 붓는 타입인데, 4월 식을 앞둔 예신으로서 붓기를 급하게 빼야하는 비상 시(?)를 대비해 녹차를 챙겨다닙니다 ㅎ_ㅎ
🔍 미쯔’s 파우치2

- 민트 4종 세트: 냄새에도 정말 민감한 편이다 보니, 저 스스로의 냄새에도 좀 엄격한 편이에요. 하나 둘 모은 민트템이 벌써 4개나 쌓였네요.
- ⓛ 이클립스 포도맛: 작년에 갔던 호주에서, 한국에서는 팔지 않는 맛이라기에 잔뜩 쟁여온 이클립스 포도맛이에요 ㅎㅎ 아껴먹고 있었는데 이제 한국에서도 판매한다고 하네요.. 드셔보세요^^ ㅠ
- ② 민티드울트라마우스스프레이: 캔디로는 만족스럽지 않을 때 뿌리는 상쾌한 스프레이예요!
- ③ 마더네스트 프로폴리스 스프레이: 여름에는 에어컨 바람으로 인한 편도염을 달고 산 저의 구원템.. 프로폴리스 스프레이예요. 원래 약국에서 파는 스프레이를 썼었는데, 정말 맛이 없었거든요? 이 스프레이는 무려 마누카꿀이 들어있는데 시원한 민트맛이라 정착했어요.
- ④ 틴케이스+민트 사탕: 귀여운 민트 사탕이 들어있는 저 틴케이스는, 데빌몬 키캡을 구매하면서 받은 케이스인데요! 작은 사탕들을 담아 다니기에 찰떡이라 아주 유용하게 쓰고 있답니다. 저 귀여운 사탕은 ‘샤오커오라’ 사탕인데 민트 + 달달과일맛이라 기분 좋게 상쾌해지고 싶을 때 먹어요!
- 알폰지: 이 약은 숙취를 줄여주는 약이에요. 사실 저는 매우매우 알쓰(마음만은 주당..)이기 때문에 숙취랄 것이 없지만, 제 아이템들을 나눠주는 걸 정말 좋아해서 함께 술자리를 하는 분들께 열심히 나눠주고 있답니다. 약 10명의 임상 실험 결과.. 효과가 아주 좋은 것으로 판명!
- 컴투스손난로: 저에게는 없어서는 안될 초초초초필수템이에요! 5% 미만일 때가 되어서야 충전을 하는 타입이다 보니, 휴대폰이 꺼지는 일도 종종 발생하는데요. 긴 출퇴근길에 휴대폰이 꺼지면 정말 아무것도 못하기 때문에 만일을 위해 꼭 챙겨 다닙니다. 또, 추운 겨울 손을 녹여줄 수 있는 손난로 기능도 정말 애용하고 있어요.
- 립밤 2종: 바세린보다 100배 좋은 저의 평생템 ‘시드물 호호바 립 에센스’, 저렴한 가격인데 다른 무엇도 해결하지 못한 건조함을 해결해 준답니다. 너무 건조한 날은 종종 입술이 찢어지기도 하는데, 이 립밤을 바르면 통증도 좀 적어지고 건조함도 바로 해결돼요. 원래 쓰던 아이템을 최근 우연하게! 선물받아서 감사한 마음으로 잘 쓰고 있답니다.
- 핏기 없는 입술에 누군가 제 건강을 걱정할 때는 UIQ 컬러 립밤으로 생기를 좀 더해줘요 ^^;
- 두피괄사&빗: 머리 속이 답답한 기분이 들 때 괄사로 머리를 박박 빗어주면 얼마나 시원한지 아시나요? 원래 가격이 좀 있는 세라믹 괄사를 썼었는데, 손에서 미끄러져 박살이 난 이후로는 단단하고 저렴한 나무 괄사를 쓰고 있답니다. 빗은 네덜란드의 어느 호텔에서 받았던 빗인데 너무 튼튼해서 2년째 잘 쓰고 있어요!
- 콧물전용 물티슈: 겨울 지하철에서는 비염인의 코 먹는 소리가 울려퍼지는 걸 알고 계시나요? 지하철에서 한번 물꼬(?)가 트이면 정말 감당할 수 없는데, 일반 휴지로는 연약한 피부가 감당하지 못해서 항상 챙겨다니는 콧물전용 물티슈입니다! 훨씬 촉촉하고 많이 사용해도 피부가 헐지 않아서 너무 좋아요.
🎒 시루의 가방: “최소한의 생존” 미니멀 백

가방 소개: 제가 사실 가방을 잘 들고 다니지 않는데… 촬영날은 발레 가는 날이라서 챙겨왔어요! 다이소에서 산 퀄팅백이구요 가볍고 수납력도 좋아서 운동 갈 때 손이 많이 가요. 오천원이지만 내구성은 떨어지지 않아서 오래 쓸 것 같은 느낌? 1년 중 가방을 들고 나가는 날이 많지 않아서 비교적 저렴하고 막 쓸 수 있는 가방을 선호하는 것 같아요. 다이소 가방아 나랑 백년해로 하자~
- 🧸 텔레토비 키링: 요즘 가방에 귀여운 키링 안 달아주면 또 아쉽거든요. 상하이 여행을 다녀온 친구가 귀여운 텔레토비 인형 랜덤 가챠를 선물로 줘서 바로 달아줬습니다~ 제가 좋아하는 보라색인 데다가 한국에서는 구매하기 힘들다고 해서 더 애착이 가요.
🔍 가방 속 대표 아이템

- 🐧 핑구 파우치: 파우치에는 보통 수정 화장용 쿠션이랑 립 제품, 빗, 핸드크림을 넣어놓고 다녀요! 매일 쓰진 않지만 없는 날에는 또 필요한 일이 생기더라구요. 다들 공감하시겠죠 하하… 귀여운 핑구 파우치도 회사 동료이자 대학 동기인 친구가 준 건데, 이렇게 제가 좋아하는 걸 발견하면 마음 써서 선물해주는 친구들이 있어 행복하네요.

- ⚡ 전기 충격기: 저 같은 경우 바리바리바리스타이신 미쯔님의 소품을 가끔 손민수 하는데요. 호신용으로 챙겨다니는 건데 감사하게도 서울 살이를 걱정하시는 아빠가 선물해주셨습니다. 일단 스파크 소리로도 충분히 위협이 되고 유사시에는 무기로도 사용할 수 있어요. 제가 선정한 2026년 잇템입니다~!

- 🩰 발레슈즈: 결혼 준비를 위해 자세 교정도 할겸 발레를 시작했는데요!! 짐이 되는 게 싫어서 운동복 상의는 안 챙기고, 딱 ‘신발’이랑 레깅스만 달랑달랑 들고 다닙니다. (가끔 레깅스도 안 가져갈 때도 있답니다.) 저는 장비가 준비되지 않아도 일단 하고 보는 사람이라 가능한 것 같아요. 바리바리바리스타분들이 존경스럽습니다…! 어깨가 무거운 걸 기피할 뿐인 제가 테토녀 타이틀을 가져가도 괜찮을까요?
서로의 가방을 보고 “이 사람답다” 싶었던 아이템은?
미쯔 → 시루의 가방: 빗

정말 그녀의 아이템이 아닐 수가 없는 이 빗.. 형태보다는 기능을 중시하는 테토녀 시루님을 보여주는 아이템 같아요. 조금 흠이 나면 그 핑계로 새롭고 예쁜 것을 찾는 저를 돌아보며 반성하게 되었습니다. 이 빗의 촘촘한 부분이 모두 사라지는 날, 꼭 새로운 빗을 선물해야겠어요.
시루 → 미쯔의 가방: 헤드폰

우리 미쯔님은 귀가 예민하신 편인데요…! 출퇴근 때는 항상 헤드폰과 함께하시는 것 같아요. 이 헤드폰이 전재산이라고 하며 소중하게 지니고 다니시는 게 귀엽답니다. 아무튼 주 5일 중 3일 정도는 퇴근 때 헤드폰을 안 챙겨 나가시곤 하는데 그 때마다 헐레벌떡 다시 사무실로 돌아오시는 걸 보는 게 제 회사 생활의 작은 낙이에요. 미쯔님을 재소환 할 수 있는 가챠… 확률형 아이템 같은 느낌?
PART 2. 직무 인터뷰: 진심을 담는 CS

Q. 고객서비스실에서는 주로 유저 CS를 담당하고 있을 것 같은데요. 그 외에 하고 계신 역할이 있을까요?
미쯔: 담당 게임 CS 대응 외에도, 신작 론칭 전 CS 대응을 위한 준비 전반을 담당하며 많은 유관 부서와의 협업을 진행하고 있습니다.
시루: 가장 큰 부분은 CS 처리가 맞습니다! 그 외에도 외부 기관을 통해 접수되는 1차 민원 대응, 결제, 계정 관련 업무도 맡아 하고 있습니다.
Q. CS를 담당할 때 가장 중요한 것은 무엇인가요? 무엇을 중점으로 업무를 해결하고 계신가요?
미쯔: 저희 고객센터는 1:1 문의를 통해서만 상담을 진행하고 있는데요~ 다양한 방법으로 감정 전달이 가능한 대면/음성 소통과 달리 한정된 수단인 텍스트로 이야기를 전달하는 만큼 더욱 많은 노력이 필요하다고 생각합니다. 단순한 조사, 단어 하나로도 의미가 달라질 수 있으니 전하고자 하는 이야기에 집중하면서도 유저분들을 생각하는 마음이 함께 잘 전달될 수 있도록 한 문장 한 문장 고심해서 써내려 가려고 노력해요. 비록 텍스트지만 유저분들께서도 이야기를 듣거나, 편지를 읽는 것처럼 느끼시도록요! 유저분들 뿐만 아니라 유관 부서분들과 소통할 때에도 이 점을 항상 유의하며 업무를 진행한답니다.
시루: 신속, 정확이라고 생각해요. 답변이 늦을수록 답답하실 걸 알기에 다른 업무보다는 문의 처리를 우선 순위에 두고 있는데요! 게임 이용 중 스스로 해결하기 어려운 부분에 대해 해답을 얻고자 찾아주시기 때문에, 주어진 정보가 다소 적더라도 핀트를 정확하게 잡고 최대한 꼼꼼하게 필요한 안내를 드리고자 노력하고 있습니다. 특히 요즘에는 사람 냄새가 나는 답변을 작성하기 위해 노력하고 있어요. 저를 AI라고 오해하시지 않도록요. ( •̀ ω •́ )✧
Q. 이 직무를 하며 가장 많이 배우게 되는 역량은 무엇인가요?
미쯔: 소통을 기반으로 한 문제 해결 역량이요! 혼자서는 생각할 수 없었던 부분들을 동료 분들이나 유관부서 분들과의 소통을 통해 알게되어 헉! 하게 되는 순간들이 참 많았어요. 절대 혼자만의 생각으로 단정짓지 않고 소통하며, 많은 분들의 눈과 머리를 통해 다양한 점들을 고려해서 더 좋은 결과를 만들기 위해 노력합니다.
시루: 소통 역량이 가장 핵심적이라고 느끼고 있어요. 많고 복잡한 양의 정보를 상대방이 한 번 읽고 알아보기 쉽게 재가공 하는 게 중요한 직무여서요~! 그 다음으로는 문제 해결 역량이랑 리스크 관리 역량에 대해 많이 배우고 있는 것 같아요. 매일 매일 다른 케이스의 일들이 있으니 매너리즘에 빠질 위험이 없네요…
Q. 컴투스 게임을 플레이하는 수많은 유저들과 마주하시면서 여러 상황을 경험해 보셨을 것 같아요. 그중 가장 기억에 남는 에피소드가 있다면 공유해 주세요.
미쯔: 반려 카멜레온이 화면을 잘못 클릭했다며 아이템 복구를 요청하신 유저분이 계셨는데요~ 정말 귀여운 카멜레온이 휴대폰 액정 위에 올라가있는 사진을 같이 첨부해 주셨어요 ㅋㅋ
시루: 가족분들이 단란하게 모여서 같이 게임하는 영상을 보내주신 유저분이 생각나요. 3대가 모두 저희 게임을 즐겨 주시다니 정말 감사하고 뿌듯한 마음이 들었습니다. (❁´◡`❁)
Q. 업무를 하면서 가장 보람을 느끼실 때는 언제인가요?
미쯔: 감사 인사를 보내주시거나, 저희 게임에 대한 칭찬을 보내주실 때 등등 많은 순간 순간들에 보람을 느끼는 것 같아요~
시루: 접수해주신 문의를 모두 해결해서 미처리 건수가 0건일 때 보람을 느끼고 있어요!
Q. 유저들과 가장 최전선에서 소통하면서 고충도 있을 것 같은데, 가장 답변하기 어려운 문의는 무엇인가요?
미쯔: 비밀로 할 테니 좋은 몬스터, 장비 하나 슥 넣어달라고 하시는 문의요! 비밀로 해주시는 건 정말 감사하지만 아쉽게도 도움을 드릴 수 없답니다. ^_T
시루: 저는 건의 사항 접수가 가장 힘든 것 같아요. 보통 게임에 정말 애정이 많으신 유저분들이 찾아주시는 카테고리이기 때문에 저도 최대한 정성스럽게 답변하게 되거든요. 게임에 대해 이해하고 있지 않으면 답변하기 곤란할 수도 있기 때문에, 이 부분이 CS의 퀄리티를 좌우한다고 생각해요.
Q. 유저 문의가 실제 서비스나 운영 개선으로 이어졌던 경험이 있다면 소개해 주세요.
미쯔: 저도 하나를 골라 말하기엔 어려울 만큼 그간 많은 경험이 있었는데요! 애정 가득한 마음으로 게임을 이용해 주시는 유저분들의 이야기인 만큼, 고려하실 수 있도록 가급적 세심하게 전달하는 편입니다. 신작 게임의 경우는 더더욱 시작을 함께해 주시는 유저분들의 생생한 이야기가 중요하거든요~ 더 좋은 게임 서비스를 만들어 나가는 데에 보탬이 된다고 생각하면 정말 뿌듯하답니다.
시루: 헉 정말 많아서 하나를 꼽을 수가 없는데요…! 게임에 애정이 많으신 담당자 분들이 주기적으로 접수된 건의사항을 공유 요청해주셔서 항상 기꺼이 취합하여 전달드리고 있어요. 저 또한 게임에 진심인 한 명의 유저이기 때문에 전달드린 내용이 반영되면 마음이 좋아진답니다~!
Q. 이 직무를 하기 전과 후, 가장 달라진 점이 있다면?
미쯔: 전과 달리, 상대의 입장과 마음을 헤아리려고 더 노력하는 점? 나만 생각했을 때 보이지 않던 것들을 더 많이 볼 수 있는 시야가 생긴 것 같아요.
시루: 말솜씨가 상냥해졌어요.( •̀ ω •́ )✧
Q. 직업병을 느끼실 때가 있을까요?
미쯔: 어디서든 틀린 맞춤법의 문장을 보면 고치고 싶다거나, 고객으로서 서비스를 받을 때 더욱 민감하게 느끼게 되는 부분이 가장 큰 것 같아요. ㅎㅎ
시루: 어딘가에 문의할 일이 생기면 핑퐁을 최소한으로 하기 위해 필요한 정보를 한번에 보내도록 노력하고 있어요. 이런 습관이 몸에 밸 때 느끼게 되는 것 같습니다.
Q. 챗봇 등 CS의 일부분을 AI가 대체하고 있지만, 그럼에도 불구하고 AI가 대신할 수 없는 CS의 역할은 무엇이라고 생각하나요!?
미쯔: 한국어가 특히 그렇다고 생각하지만, 모든 언어는 정말 티끌 차이로 의미가 크게 달라지기 때문에 그 미세한 차이를 감지하고 정확한 답을 내는 것이 CS의 아주 중요한 역할이라고 생각합니다. AI의 발전은 아주 빠르고 눈부시지만, 저는 이 역할만큼은 AI가 인간보다 뛰어나기 어려운 부분이라고 생각해요.
시루: 아무래도 맥락 파악이나 유연한 상황 판단 같은 게 아닐까 싶습니다. 물론 CS의 효율성을 높이는 데에는 분명한 도움이 되겠으나 상황 판단이나 책임감 있는 소통은 자신 있는 분야여서요. 서비스를 받는 주체가 이야기를 들어주는 “사람”을 선호한다면 그 역할은 지속될 거라고 생각해요~!
Q. 이 직무를 준비하는 사람들에게 한마디
미쯔: 누군가의 이야기에 귀를 기울일 줄 아는 인간미를 갖춘 분, 단어와 문장에 마음을 담아 전달할 수 있는 분이라면 환영이에요!
시루: 사람이 사람에게서 받는 에너지가 정말 큽니다! 지루하지 않고 뿌듯함을 많이 느끼는 CS로 어서 오세요~👾
Q. 마지막으로 유저분들에게 하고 싶은 말이 있을까요?
미쯔: 저희 게임 사랑해 주셔서 감사드려요! 언제나 유저분들을 위해 열려있는 컴투스 고객센터에도 사랑을 나누어 주세요 ❣️
시루: 소중한 시간을 내어 찾아주셔서 감사합니다~ 앞으로도 유저분들의 의견을 대변하는 고객센터가 되겠습니다! 🍀
이혜성과 함께한 2026년 첫 오픈클래스 현장 스케치
AI가 글을 쓰고 그림을 그리며, 심지어 게임의 코드까지 짜주는 시대다. 기술이 인간의 영역을 넘나드는 지금, 우리는 자연스럽게 이런 질문 앞에 서게 된다.
인간만의 고유성은 어디에서 오는가? ”
지난 2026년 1월 14일, 책과 창의성이 공존하는 컴투스 사내 공간 ‘컴투북스’에서 2026년의 문을 여는 첫 번째 오픈클래스가 열렸다. 올해의 첫 메신저는 ‘이혜성의 1% 북클럽’을 통해 독서의 즐거움을 전해온 방송인 이혜성이었다. 그녀는 AI 시대를 살아가는 우리에게 ‘주체적인 삶의 기술’로서의 독서를 이야기했다.

컴투북스, 일상에 영감이 머무는 공간
컴투스 사내에는 ‘컴투북스’라는 특별한 공간이 있다. 이곳은 단순히 책을 대여하는 도서관을 넘어, 구성원들의 일상 가장 가까운 곳에 영감이 머물도록 기획된 공간이다.
어떤 생각을 곁에 두고, 어떤 질문을 일상의 가장 가까운 곳에서 품으며 일할 것인가. 컴투북스는 바로 그 선택에서 출발했다. 책이 자연스럽게 머무는 자리를 만들었고, 그 공간을 중심으로 인문학 오픈클래스를 이어오고 있다.
“변화의 속도가 현기증 날 만큼 빠른 AI 시대일수록, 쉽게 대체되지 않는 사고력과 창의성, 공감의 감각을 꾸준히 길러야 한다. 당장의 숫자나 성과로는 측정하기 어려운 인문학적 소양이야말로 기술이 대신할 수 없는 우리만의 고유함이자 장기적인 경쟁력이다. 이번 오픈클래스는 이러한 믿음을 실현하는 것을 목적으로 기획되었다.”
오픈클래스란?
오픈클래스는 창조적 글로벌 인재 육성을 목표로, 게임업계뿐만 아니라 경제·문화·예술·디지털·개발 등 다양한 분야의 외부 연사를 초청해 트렌디한 감각과 인사이트를 나누는 프로그램이다.
이전 오픈클래스 살펴보기 >트렌드를 쫓던 0%에서, 나만의 진정성을 담은 1%로
강연의 시작에서 이혜성은 방송인으로서의 화려한 모습 뒤에 있었던 솔직한 시행착오를 털어놓았다.
“처음엔 남들이 좋아할 만한 것, 유행하는 것만 골라 콘텐츠를 만들었어요.
하지만 ‘나’가 빠진 콘텐츠는 오래가지 못하더라고요.”
유튜브 채널을 처음 시작했을 당시, 핵심 기준은 ‘조회수’와 ‘트렌드’였다. 맛집 소개, 빵 먹방, 공부법까지 다양한 주제를 시도했지만 방향성은 중구난방이었다. 2년 가까이 채널을 운영하다 결국 접었다. 유튜브는 자신과 맞지 않는다고 생각했다.
그러나 중구난방이던 방향성을 정리하게 만든 계기는 의외로 가장 가까이에 있던 ‘책’이었다. 독서 인구가 줄어드는 시대에 ‘책’이라는 주제는 모험이었지만, 동시에 그녀가 가장 진심을 다할 수 있는 분야였다. 그 선택은 분명한 결과로 이어졌다.
5개월 만에 10만 구독자를 만든 원동력은 남들이 좋아할 만한 것들을 찾는 트렌드나 정교한 알고리즘이 아니라, 한 사람의 진심이 담긴 이야기였다.
책을 읽기 전과 후의 나는 다르다
이혜성은 독서를 단순한 취미가 아닌, 사고방식과 관점을 훈련하는 과정으로 정의했다.
“책을 읽기 전의 나와, 책을 읽고 난 후의 나는
다른 사람이 된다.”
책을 읽는 동안 우리는 단어를 해석하고 장면을 떠올리며, 인물의 감정을 따라가고, 의미를 재구성한다. 이 과정은 ‘정보를 받는 것’이 아니라 스스로 생각의 근육을 쓰는 능동적 활동이다. 그녀는 이러한 독서 경험이 결국 세상을 바라보는 나만의 시각을 세우는 과정이라고 강조했다.

창작의 원형, AI가 흉내낼 수 없는 ‘사고력’
“모든 힙(Hip)한 세계관의 모태는 결국 고전과 문학에 있습니다.
AI는 방대한 데이터를 학습하지만,
맥락을 읽고 재해석하는 건 결국 ‘읽는 인간’의 영역입니다.”
게임이라는 창작의 세계에서 일하는 컴투스 구성원들에게, 그녀는 독서를 ‘강력한 비즈니스 자산’으로 소개했다. 우리가 열광하는 게임 세계관과 드라마 서사의 원형은 대부분 고전과 문학에 있다. 고전은 창작자에게 비옥한 토양이자, 새로운 세계를 설계하는 레퍼런스가 된다.
또한, 영상 시청이 수동적인 수용이라면 독서는 능동적인 사고 훈련이다. 텍스트를 읽으며 머릿속으로 이미지를 그려보는 ‘시각화’ 과정은 기획자만의 독창적인 창의성 근육이 된다.
현장에 참석한 한 사우는 “AI가 기획안을 써주는 시대에 기획자의 역할이 고민이었는데, 결국 좋은 질문을 던지기 위한 나만의 데이터베이스가 필요하다는 점을 깨달았다”고 소감을 전했다.

바쁜 현대인을 위한 ‘말랑말랑한 독서법’
“독서는 시간이 남을 때 하는 게 아니라, 시간을 ‘내서’ 하는 거예요.
책을 이겨야 할 숙제가 아니라, 잠시 머물다 갈 정원처럼 생각해보세요.
그럼 독서가 한결 말랑말랑해집니다.”
독서의 필요성에는 공감하지만 실천이 어려운 구성원들을 위해, 이혜성은 현실적인 독서 루틴 2가지를 제안했다.
① 우선순위 바꿔보기
“DM이나 릴스를 볼 시간은 있는데 책 읽을 시간은 없다는 건 시간 부족이 아니라 우선순위의 문제입니다.”
독서를 ‘시간이 남을 때’ 하는 것이 아니라, 삶의 질을 위해 의도적으로 확보하는 ‘마음의 운동 시간’으로 삼아야 한다.

② 가볍게 시작하기
“처음부터 완벽할 필요는 없습니다.”
처음부터 두꺼운 책에 도전하기보다, 자신의 취미나 관심사와 연결된 가벼운 책부터 시작하는 것이 핵심이다. 가벼운 책을 골랐다면, 가볍게 자기 전 10분 독서부터 시작하면 된다. 잠들기 전 10분의 독서는 그 어떤 영상 콘텐츠보다 편안한 휴식을 선물한다.
Q&A: 독서에 대한 솔직한 고민들
강연 후반부는 사우들의 현실적인 고민을 나누는 시간으로 채워졌다.
“집중이 안 된다면 당신의 문제가 아닐 수도 있습니다. 옷에 사이즈가 있듯 책에도 ‘핏’이 있습니다.” 이혜성은 모든 책을 끝까지 읽을 필요는 없으며, 안 읽히는 책은 과감히 덮어도 좋다고 조언했다. 특히 러닝을 즐긴다는 사우에게는 무라카미 하루키의 『달리기를 말할 때 내가 하고 싶은 말들』을 추천하며, ‘나와 연결될 때 독서가 비로소 시작된다’는 점을 강조했다.
“책을 읽다가 잠이 오는 건 나쁜 게 아닙니다. 잠들어 있는 동안에도 뇌는 읽은 텍스트를 계속 처리하고 있거든요.”
이혜성은 졸음을 자책하기보다 독서의 장벽을 낮추는 자신만의 노하우를 공개했다. 그녀가 꼽은 책 선정 기준은 의외로 ‘표지’와 ‘저자’였다.
“표지에 공을 들인 책은 콘텐츠도 탄탄한 경우가 많습니다. 그리고 저자가 해당 분야를 얼마나 진심으로 파고들었는지 살펴보세요.” 그녀는 무라카미 하루키, 정세랑, 애덤 그랜트, 모건 하우절 등 자신만의 ‘믿고 읽는 작가 리스트’를 소개하며, 좋아하는 작가를 중심으로 독서의 세계를 넓혀가는 방법을 제안했다.
“AI를 쓰더라도, 어떤 질문을 던지고 어떻게 활용하느냐는 결국 사람의 몫이에요.”
그녀는 이제 AI의 도움을 완전히 배제한 창작물은 점점 줄어들 것이라고 전망했다. 다만 중요한 것은 ‘누가 주체인가’라는 점이었다.
이혜성은 비판적 사고력, 분별력, 창의성을 키우는 것이 앞으로의 경쟁력이 될 것이며, 그 출발점에 독서가 있다고 강조했다. “AI를 잘 쓰기 위해서라도, 먼저 내가 알아야 한다”는 말에는 현장의 깊은 공감이 이어졌다.
‘책태기’에 대한 질문에는 마음의 상태를 먼저 돌아볼 것을 권했다.
“책태기가 왔다면 내가 얻는 효용이 크지 않아 아쉬운 마음이 생겼거나 정신적으로 지친 시기였을 거 같아요.”
“마음의 여유가 있어야 책도 읽히는 거거든요. 혹시 내 마음이 요즘 좀 힘들지는 않았는지 되돌아 보셨으면 좋겠습니다.”
책이 읽히지 않는 시기는 게으름의 문제가 아니라, 지치거나 여유가 부족한 신호일 수 있다는 것이다.
전자책과 종이책에 대해서는 개인적인 취향을 솔직하게 전했다. 그녀는 종이책에 밑줄을 긋고 페이지를 접는 물리적인 감각 자체가 독서 경험의 일부라고 말하며, 자신에게 맞는 방식으로 읽는 것이 가장 중요하다고 덧붙였다.

에필로그: AI 시대에도 우리가 여전히 책을 펼쳐야 하는 이유
이번 오픈클래스는 참여자 만족도 4.32점(5점 만점)을 기록하며 뜨거운 호응 속에 마무리되었다. “새해 독서 다짐을 실천할 용기를 얻었다”, “AI 시대에 인간의 경쟁력을 다시 생각해보게 됐다”는 후기들이 이어졌다.
특히 인상 깊었던 점은 현장에서 오간 질문들이었다. 집중이 되지 않는 독서, 책태기, AI 창작물의 윤리와 같은 쉽지 않은 주제에 대해 사우들은 주저 없이 질문을 던졌고, 그 질문들 속에서 컴투스가 만들어 갈 이야기의 가능성을 엿볼 수 있었다.

“책을 읽기 전과 후의 나는 다른 사람이다”라는 이혜성의 말처럼, 이번 오픈클래스는 단순한 강연을 넘어 일상의 속도를 잠시 늦추고 스스로를 돌아보는 시간이었다.
이번 시간이 구성원들에게도 바쁜 일상 속에서 잠들기 전 10분의 여유를 떠올리는 계기가 되었기를 바란다. 조직문화팀과 컴투스는 앞으로도 구성원들의 마음의 근력을 키우고, 일과 삶을 함께 단단하게 만들어 줄 인사이트 프로그램을 이어갈 예정이다.
떡볶이·냉동만두·웹소설 시장보다도 큰 1조 4천억 원 규모의 시장이 있다. 현금 거래까지 포함하면 2조 원을 넘긴다는 이 산업의 정체는, 바로 운세 시장이다.
종사자만 80만 명에 이르는, 이 견고한 인간의 영역에 최근 강력한 도전자가 등장했다. 바로 생성형 AI다.

방대한 데이터를 다루는 AI와 ‘조상님들의 빅데이터’인 사주의 만남은 꽤 그럴듯하다. 신년 운세 링크 대신 ‘AI 사주 프롬프트’가 유행하고, 관련 스타트업들까지 빠르게 성장하는 걸 보면, AI는 금방이라도 이 시장의 주류이자 압도적인 승자가 될 것처럼 보인다.
그렇다면 AI의 사주풀이는 정말 정확할까? 언젠가는 인간 역술인을 완전히 대체할 수 있을까?
컴투스의 숨은 사주 전문가와 신년 운세 좀 돌려본 개발자를 만나, AI 사주가 자주 틀리는 구조적 이유를 파헤치고, 정확도를 끌어올릴 수 있는 실질적인 활용 팁을 함께 정리해 보았다.
📌 3줄로 알아봐요
- AI 사주의 오답 사례를 통해 생성형 AI의 구조적 한계를 알아봅니다.
- 사주 전문가와 개발자의 시선으로 대표적인 해석 오류와 그 이유를 살펴봅니다.
- 정확도를 높일 수 있는 프롬프트 팁과 올바른 활용법도 함께 정리했습니다.
Q. 자기소개 부탁드립니다.

🐭 붉은 쥐 사주상담가: 안녕하세요. 11년째 사주 공부 중인 이펙터 붉은 쥐입니다.

🐰 푸른 토끼 개발자: 안녕하세요. 세상만사와 미래에 관심이 많은 개발자 푸른 토끼입니다!
PART 1. 사주 해석의 원리
🐭 붉은 쥐 사주상담가: 사주는 태어난 연·월·일·시를 ‘만세력’이라는 도구에 넣어 한자로 변환한 뒤, 이를 분석하는 시스템입니다. 우리가 흔히 말하는 ‘사주팔자’가 바로 이 4개의 기둥(四柱)과 8개의 글자(八字)를 뜻하죠.
(출처: 포스텔러 만세력)

조금 쉽게 설명하자면, 사주팔자는 게임 캐릭터를 생성할 때 무작위로 주어지는 8개의 초기 스탯과 같습니다. 각 스탯의 수치와 유닛 간의 조합이 나만의 독특한 플레이 스타일을 만드는 것처럼, 사주와 나의 기질 또한 긴밀하게 연결되어 있죠.
하지만 게임의 승패는 초기 스탯이 아니라, 플레이어의 ‘전략’에 달려있습니다. 사주도 마찬가지입니다. 결국 모든 선택과 결과는 실제 현실을 살아가는 나의 몫이죠.
그런 점에서 사주풀이는 바꿀 수 없는 운명을 미리 보여주는 ‘스포일러’가 아니라, 인생이란 게임을 승리로 이끌 수 있도록 선택을 돕는 가이드라고 할 수 있습니다.
PART 2. AI는 왜 틀릴까?
AI가 사주를 해석할 때 가장 자주 범하는 오류를 찾고, 그 이유를 알아보았다.
1. 만세력 변환 오류


🐭 붉은 쥐 사주상담가: 생년월일을 사주팔자로 변환하는 과정에서 오류가 자주 생깁니다. 단 한 글자만 바뀌어도 전체적인 그림이 크게 달라지기 때문에, 이는 해석 오류로 이어집니다.
🐰 푸른 토끼 개발자: 만세력은 언제 물어도 바뀌지 않는 고정값입니다. 기존 사주 프로그램이나 사이트는 이런 수백 년 치 정보를 데이터베이스로 가지고 있어, 유저가 입력한 값에 대응하는 정보를 빠르게 찾아서 보여줍니다. 하지만 AI는 ‘갖고 있는 데이터베이스를 조회하는 구조’가 아닙니다. ‘이런 날짜에는 이런 만세력이 자주 설명되더라’ 하는 텍스트 패턴을 익혔을 뿐이죠. 즉, 특정 날짜에 대응하는 값을 정확히 계산한 것이 아니라, 그럴듯해 보이는 값을 추측해서 말하기 때문에 이런 오류가 자주 발생하는 것입니다.
2. 단순 해석 오류
🐭 붉은 쥐 사주상담가: 사주팔자는 서로 영향을 주고받습니다. 어떤 위치에 있는지, 주위에 어떤 오행이 있는지 등 다양한 요소에 따라 같은 글자도 해석이 달라집니다. 그런데 AI는 사주의 입체적인 요소를 고려하지 못하고 드러난 글자만을 해석합니다. 그 과정에서 나타나는 대표적인 오류가 ‘용신’ 해석입니다. 용신은 ‘내 사주에서 가장 필요한 기운은 무엇인가?’에 대한 답입니다. 전체 균형을 따져 도출해야 해서 아주 까다롭죠. 하지만 AI는 단순히 ‘사주에 불이 없으니 불을 채워야 한다’는 식의 1차원적인 답변을 내놓습니다. 용신은 사주 해석의 방향키 역할을 하기 때문에, 이런 오류는 결과에 큰 영향을 미칩니다.

🐰 푸른 토끼 개발자: 사주 해석의 본질은 ‘조건부 논리’에 있습니다. “A이면서 B일 때는 X이지만, 만약 C가 섞여 있다면 Y로 해석해야 한다”는 식의 복잡한 예외 조건을 종합적으로 읽어내는 과정이 핵심이죠.
반면, 챗GPT나 제미나이 같은 생성형 모델은 ‘다음에 올 단어의 통계적 확률’을 계산해 답변을 만듭니다. 즉, AI는 데이터 속의 명리학 논리를 깨우친 것이 아니라 단순히 빈도 높은 문장 패턴을 암기한 것에 가깝습니다. 이런 논리 구조의 차이로 인해 AI는 해석의 방향을 결정하는 핵심적인 예외 조건을 정밀하게 짚어내지 못하고, ‘가장 흔하고 그럴듯한 단순 해석’을 내놓는 데 그치게 됩니다.
3. 논리 일관성의 오류
🐭 붉은 쥐 사주상담가: 지적하면 무조건 사용자의 말에 동조하는 방향으로 수정하는 것도 해석의 신뢰도를 떨어뜨립니다.
🐰 푸른 토끼 개발자: 생성형 AI는 사용자에게 ‘동의하도록’ 학습됩니다. 이들의 목적은 대화를 자연스럽게 이어나가는 것이며, 사용자와의 논쟁은 ‘피해야 할 나쁜 대화’로 인식되죠. 그 결과, 질문 방식에 따라 정반대의 답을 하거나 사용자가 듣고 싶어 하는 방향으로 결론을 바꾸기도 합니다. 이러한 성향은 사주처럼 불확실하고 해석의 여지가 넓은 분야에서는 신뢰도를 떨어뜨리는 치명적인 단점이 되죠.
PART 3. AI 사주의 정확도를 높이는 TIP
Step 1. AI가 이해하기 쉬운 환경 만들기
① 만세력 결과는 ‘텍스트’로 알려주기
사주팔자 변환 과정에서 오류가 발생할 수 있으므로, 전문 사주 사이트에서 정확한 만세력을 확인해 8글자를 직접 제공하는 것이 안전합니다. 이때, 스크린샷보단 텍스트 형태가 효과적입니다. 이미지는 OCR(광학 문자 인식)로 한 번 더 변환해야 하기 때문에 잘못 인식할 가능성이 있습니다. 특히 한자는 비슷하게 생긴 글자가 많아 난이도가 높거든요.
② 유도 질문 피하기
“~인 것 같은데”, “~맞지?” 등의 어미를 쓰면, AI는 당신이 의도한 방향의 대답을 줄 가능성이 높습니다. “내 사주를 객관적으로 분석해 줘.”와 같이 중립적인 질문을 하세요.
③ 여러 번 물어 공통점 찾기
같은 질문을 조금씩 다르게 3-4번 물어보세요. AI는 매번 다른 답을 하지만, 공통적으로 나오는 내용은 제법 참고할 만합니다.
Step 2. AI가 잘 대답하는 질문 위주로 활용하기
⭕ ‘성향 분석’ 위주로 묻기
“특정 오행이 많으면 이런 성향이다”와 같은 단순 패턴 분석은, 정형화된 데이터가 풍부해 AI가 비교적 안정적으로 잘 맞히는 영역입니다. “내 사주의 오행 균형은 어때?”, “타고난 내 강점은 뭐야?”처럼 구체적이면서도 일반적인 성향을 물어보고 그 내용을 참고하세요.
❌ 구체적인 ‘수치’는 맹신하지 않기
여러 조건을 입체적으로 따져야 하는 신년 운세나 특정 연도의 변화 시기는 AI가 논리적 오류를 범할 확률이 높으므로, 구체적인 수치보다는 전체적인 흐름만 가볍게 참고하세요.
EPILOGUE
🐭 붉은 쥐 사주상담가: 사주는 참고일 뿐, 선택은 결국 본인의 몫입니다. 저는 사주를 인생이라는 여정에서 참고할 수 있는 하나의 내비게이션 정도로 생각합니다. 지금 내 위치와 주변 환경을 알려주고 선택을 돕는 도구에 가깝죠. 목적지는 결국 내가 정합니다.
사주가 인생을 제한하는 틀이 아니라, 내가 선택한 삶을 더 잘 이해하고, 더 자유롭게 여행하기 위해 활용되었으면 좋겠습니다. 자세한 해석이 궁금하다면 언제든 편하게 컴투스온으로 연락주세요😎
📢 전국 게임 개발 꿈나무 다 모여라!
지난 1월 16일, 서울 마포구의 한 행사장. 영하의 날씨가 무색하게 이곳만큼은 한여름처럼 뜨거운 열기로 가득 찼다. 대한민국에서 ‘게임 좀 만든다’ 하는 대학생들이 삼삼오오 모여들어 웃음꽃을 피우고 있었기 때문.
그렇다. 게임 개발 꿈나무들의 축제이자, 아는 사람은 다 안다는 2박 3일간의 버라이어티 게임잼, ‘유니잼’이 올해도 어김없이 찾아온 것이다! 👏👏👏

‘유니잼’은 전국 대학생 게임 개발 동아리 연합 ‘유니데브(UNIDEV)’가 주최하는 게임잼 행사다. 처음 만난 사람들과 즉석에서 팀을 꾸려 짧은 시간 동안 게임을 완성해 내는, 그야말로 ‘한계 돌파’의 장이다. 학업이나 과제, 수익의 압박 없이 오직 ‘재미’를 위해 아이디어를 펼치고 노하우를 공유할 수 있기에, 개발자를 꿈꾸는 이들에겐 더없이 소중한 기회이기도 하다.

특히 올해는 컴투스가 유니잼의 공식 메인 스폰서로 등판! 꿈나무들의 뜨거운 열정에 기름을 콸콸 쏟아붓고 왔다. 🔥 전지적 컴투스 시점에서 바라본 유니잼 현장, 그 치열하고도 유쾌했던 2박 3일의 기록을 지금 공개한다.
렛츠 컴! >_<
이번 경합 주제는 ‘K-RETRO’요!

개회식 시간이 임박하자 웅성대던 장내가 일순간 차분해지며 모두의 시선이 스크린 앞으로 쏠렸다. 이날 행사에는 컴투스 개발운영센터장 홍승준 상무님이 직접 참석해 자리를 빛내주셨다.

처음엔 쿨워터 향 날리는 시크한 포스로 등장하셔서 다들 긴장했으나… 상무님은 딱딱한 개회사 대신, 친근한 형처럼 또는 인생 선배처럼 편안하게 마이크를 잡으셨다. 개발 선배로서 건네는 따뜻한 한 마디 한 마디에, 긴장으로 굳어있던 참가자들의 표정도 한결 부드러워졌다.
그렇게 분위기가 훈훈하게 풀릴 무렵, 드디어 참가자들의 동공이 가장 크게 확장된 순간이 찾아왔다. 바로 주제 발표 시간! 홍 상무님이 고심 끝에 직접 선정해 발표한 이번 유니잼의 주제는 바로… (두구두구두구구…🥁)
<K-RETRO>

단순히 “고전 게임을 만들어라”가 아니었다. 홍 상무님은 ‘게임이 주는 근본적인 재미와 시스템을 복원하는 것(RETRO)’에 ‘한국적인 소재(K)’를 더해, 게임이 주는 본연의 재미를 살리고 한국적인 요소를 결합해 독창적으로 재해석하라는 깊은 뜻을 전했다. 해석의 여지를 넓게 열어둔 덕분에 상상의 나래를 펼치기 딱 좋은 주제! 과연 이 난제를 뚫고 어떤 기상천외한 게임들이 탄생할지 벌써부터 기대감이 차올랐다.

+ 이후 상무님은 가지고 오신 선물을 산타클로스처럼 마구마구 뿌려주시고 쿨하게 퇴장하셨다. 개발운영센터의 슈퍼스타, 홍 상무님이 궁금하다면 우측 게시물을 참고해 보자!
기다리고 있었습니다. 제대로 모시겠습니다.


기자가 정말 놀랐던 점은, 주제 발표 직후 숨 돌릴 틈도 없이 곧바로 약 50분간의 기획 시간이 주어졌다는 것이다. 한 시간도 채 안 되는 시간. 그러나 “이 짧은 시간에?”라는 걱정은 쓸데없는 기우였다. 이어진 기획 발표 타임, 현장은 그야말로 천재들의 아이디어 쇼케이스를 방불케 했다.

하지만 진짜 전쟁은 발표가 끝난 직후부터였다. 아이디어가 아무리 좋아도 이를 시각적으로 구현해 줄 금손 없이는 게임이 완성될 수 없는 법. 희귀한 아트 직군을 영입하기 위해 각 팀장들은 그야말로 ‘모시기 경쟁’에 돌입했다.

“아트가 원하는 방향으로 최대한 맞춰드리겠다”, “아트님 하고 싶은 대로 하시면 됩니다” 등 파격적인 제안과 공약이 난무했다. 귀한 인재를 팀원으로 맞이하기 위한 이들의 간절한 구애 작전 덕분에, 지켜보는 이들에게는 팝콘이 필요할 만큼 흥미진진한 발표 현장이었다.
그렇게 꿀잼 기획 발표 시간이 끝나고, 본격적인 팀 빌딩에 돌입하… 기 전! 이 행사를 준비한 숨은 주역들을 안 만나볼 수 없다.
유니데브X컴투스, 완벽했던 시너지

성공적인 행사의 뒤편에는 언제나 묵묵히 땀 흘리는 운영진이 있는 법. 이번 유니잼을 이끈 유니데브의 운영진 두 분을 만나 이야기를 들어보았다.

Q. 컴투스와 함께한 이번 유니잼, 작년과 다른 점이 있다면?
솔직히 말해서… 풍족했습니다(웃음). 사실 작년엔 예산 문제로 아쉬운 점이 있었거든요. 그런데 올해는 컴투스의 든든한 지원 덕분에 간식을 정말 넉넉히 챙겨줄 수 있었습니다. 운영하는 입장에서도 마음이 아주 편안했습니다.
Q. 이번 대회에서 가장 신경 쓴 부분은 무엇인가?
단연 ‘직군 밸런스’입니다. 작년엔 직군 밸런스가 안 맞아 아트가 없는 팀이 속출했는데, 올해는 그 부분을 보완해 모든 팀에 아트 직군이 최소 한 명씩은 배정될 수 있도록 보장했습니다.
Q. 본인에게 게임이란? 그리고 마지막으로 한 마디 하자면?
저에게 게임은 ‘삶의 코어(Core)’입니다. 게임 없는 제 삶은 상상조차 안 되거든요(웃음). 저처럼 게임을 사랑하는 대학생들이 마음껏 꿈을 펼칠 수 있도록, 이번 행사를 물심양면 지원해 준 컴투스에 깊은 감사를 드립니다.

Q. 기획 담당으로서 처음 행사를 준비하며 어려움은 없었나?
솔직히 처음엔 ‘내가 잘하고 있는 건가?’ 하는 확신이 안 서서 걱정이 많았습니다. 하지만 유니데브 내에 게임잼 운영 경험이 있는 선배님들이 많이 도와주셔서 무사히 마칠 수 있었어요. 참가자 분들이 즐거워하는 모습을 보니 그간의 고생이 싹 씻겨 내려가는 기분입니다.
Q. 이번 유니잼, 어떤 부분에 신경 써서 기획했나?
개발만 하면 지칠 수 있으니까요. ‘플래시 게임 랭킹전’이나 개발 중 발생한 황당한 버그를 자랑하는 ‘버그 전시회’ 같은 소소한 이벤트를 기획했습니다.
Q. 이번 유니잼을 통해 어떤 결과물이 나오길 기대하나?
여기서 만들어진 게임들이 잘 다듬어져서, 나중에는 스팀(Steam) 같은 플랫폼에 정식으로 출시되는 걸 보고 싶습니다. 참가자 여러분 모두 끝까지 파이팅 해서 멋진 게임 만들어주시길 응원합니다!
짜-잔! 지원군 등★장

눈치 빠른 사람은 이미 앞에서 알아봤겠지만, 2박 3일 밤샘 강행군을 펼칠 참가자들을 위해 컴투스에서 준비한 특별 지원군이 있었다.

바로 국민 게임 ‘미니게임천국’의 마스코트, 카리·집토끼·해미! 무려 100여 개의 폭신한 대형 쿠션들이 행사장 의자마다 하나씩 자리를 잡자 차가운 현장에 말랑말랑하고 포근한 공기가 감돌았다. 요 친구들은 바로 빡빡한 일정 속에 쪽잠을 청해야 할 학생들을 위해 컴투스가 따로 준비한 깜짝 선물이었다.

운영진의 후문에 의하면, 인기 원톱은 당연하게도 해미였다고 한다. (기자는 해미를 무지무지 좋아한다.) 하긴 책상 앞에 앉아있을 때 해미 쿠션만 한 게 없다. 학생들의 반응이 좋았다고 하니 괜스레 기자의 마음도 뿌듯해지는 듯했다. 그렇게 팀 빌딩이 한창인 틈에 든든한 지원군들을 남겨두고, 기자는 학생들에게 방해가 되지 않도록 살금살금 현장을 빠져나왔다. 시연회 때 보자, 얘들아…!
▼ 참고로 요 귀여운 친구들을 컴투스 스토어에서 구매할 수 있다. 관심 있다면 구경해 보시길!
2박 3일의 기적, 그리고 영광의 ‘장원’


드디어 대망의 마지막 날. 하얗게 불태운 얼굴들엔 피곤함이 역력했지만, 팀원들과 함께 무언가를 완성해 냈다는 눈빛만큼은 형형하게 빛나고 있었다. 그리고 결과는 실로 놀라웠다. 총 12개의 게임이 탄생했는데, “이걸 이틀 만에?”라는 말이 절로 나왔다.

완성된 게임은 다음과 같았다.
- 밤샘 전 부대찌개 팀의 「Jump to Time」
- 하이틴 메이커 팀의 「하이틴 스타 메이커」
- TP 팀의 「피쳐폰입니다만 문제라도?」
- 튕김연구소의 「탱탱볼 대모험」
- 주상전하 팀의 「호환마마」
- zl존개발 팀의 「스뚜리밍 라이브으」
- 김밥 천국 팀의 「이거언제까지마는거에요?」
- INXP 팀의 「추억수집가」
- BPM 팀의 「K-레트로 혈압 마라톤」
- 너만오면5인큐 팀의 「지구 최후의 레크리에이션」
- 라면이거덩요 팀의 「Give Me The K-Food」
- 한소리 팀의 「울려라! 판소리」

치열한 경합 끝에 대상(장원)의 영예는 ‘한소리’ 팀의 ‘울려라! 판소리’가 차지했다! 우리나라의 전래 동화와 판소리 문학 같은 옛이야기를 닌텐도의 와리오웨어 장르와 결합한 콘셉트라고 한다. 즉, 가장 한국적인 소재를 리듬감 넘치는 미니게임 컬렉션으로 풀어낸 것. 빠른 템포 속에 녹여낸 ‘K-RETRO’의 맛이 심사위원들의 취향을 제대로 저격했다.

‘울려라! 판소리’의 기획을 맡은 ‘한소리’의 팀장 김대형 학생은 “미니게임들이 하나씩 완성돼 함께 섞이며 점점 풍성해지는 과정을 지켜보는 것이 뿌듯했고, 첫 대회 참여인데 대상을 받게 돼 굉장히 기쁘다”며, “게임 개발을 꿈꾸는 학생들에게 굉장히 좋은 경험이 되는 행사라고 느꼈다”라고 소감을 전했다.

이외에도 모든 팀들에 ‘포복절도상’, ‘천지개벽상’, ‘철두철미상’, ‘안성맞춤상’ 등 센스 넘치는 상들이 수여되며 훈훈하게 행사가 마무리됐다.
즐거움이 있는 곳이라면 언제나, 컴투스

행사가 모두 끝난 뒤, 이번 대회의 참가자이자 특별한 사연을 가진 최승부 학생(고려대학교 캣&독 동아리 소속)을 만나보았다. 그는 지난 제1회 컴투스 글로벌 게임개발 공모전 ‘컴:온’에서 최우수상을 받았던 실력자이기도 하다.
Q. ‘컴:온’ 공모전 수상자 출신이다. 당시와 이번 유니잼의 가장 큰 차이점은?
‘컴:온’ 때는 1인 개발로 두 달 정도 여유 있게 진행했었어요. 반면 이번 유니잼은 처음 만난 팀원들과 2박 3일이라는 짧은 시간 안에 결과를 내야 했죠. 그러다 보니 서로 간의 ‘명확한 역할 분담’과 ‘전적인 믿음’이 얼마나 중요한지 뼈저리게 느꼈습니다. 팀원들을 믿고 달린 덕분에 좋은 결과가 나온 것 같아요.

Q. 유니잼과 컴투스에 바라는 점이 있다면?
사실 컴투스는 제 어린 시절 추억을 담당했던 회사예요. 그런데 ‘컴:온’ 수상에 이어 이번 ‘유니잼’ 지원까지… 컴투스에게 두 번이나 큰 은혜를 입었다고 생각합니다(웃음). 앞으로도 학생들을 위해 이런 좋은 기회를 계속 만들어 주신다면, 언제든 열정을 다해 참여하겠습니다. 정말 감사합니다!
밤샘 개발의 피곤함 속에서도 서로를 격려하며 답을 찾아가는 학생들의 모습. 그 반짝이는 청춘의 열정을 곁에서 지켜보며 ‘사람들을 즐겁게 만드는 콘텐츠는 결국 즐거운 사람들이 만든다’는 사실을 다시금 확신했다.
앞으로도 컴투스는 게임으로 세상을 즐겁게 만들고 싶은 마음이 있는 곳이라면 어디든! 여러분의 꿈이 현실이 되는 그 길목마다 가장 든든한 파트너로 서 있을 것이다.
다시 한번 2박 3일 동안 수고한 학생들, 아니 미래의 개발자 동료 여러분에게 뜨거운 박수를 보낸다!


1월 | 레벨업 인터뷰
2025년 컴투스온은 〈레벨업 인터뷰: 컴이사는 이렇게 산다〉 론칭으로 한 해를 시작했다. (🔗기사 링크) 기존 대리·차장·부장 등 직급 중심의 인터뷰를 넘어, 이사급 임원 인터뷰까지 범위를 확장하며 콘텐츠의 깊이를 한 단계 끌어올렸다. 단순한 이력 소개에 그치지 않고, 각 임원이 걸어온 커리어 선택의 맥락과 주요 의사결정의 기준, 조직을 바라보는 관점과 삶의 태도까지 함께 담아낸 심층 직무 인터뷰로 구성됐다.
2월 | 기자단 웰컴 키트 & 기자단 어워드
2월에는 기자단 웰컴 키트 제작(🔗기사 링크)과 함께 컴투스온 기자단 어워드(🔗기사 링크)를 진행하며 기자단 운영 체계를 한 단계 고도화했다. 단순히 콘텐츠를 기고하는 역할을 넘어, 기자단이 컴투스온을 함께 만들어가는 주체라는 인식을 강화하는 데 초점을 맞췄다. 활동 결과를 공식적으로 조명하고 참여를 축하하는 자리를 마련함으로써 기자단의 소속감과 자부심을 높였고, 컴투스온은 기자단을 참여자가 아닌 함께 만드는 파트너로 재정의했다.
3월 | BEST 컴친소인 인터뷰
3월에는 컴친소인 인터뷰(🔗기사 링크)를 통해 컴친소 1.0의 참여 경험을 콘텐츠로 기록했다. 반려동물 관심사를 시작으로 2024년 한 해 동안 총 13회 진행된 컴친소 1.0 활동을 돌아보며, 친구를 만들고 경험을 쌓아온 구성원들의 생생한 이야기를 담았다. 특히 참여 도장을 가장 많이 모은 구성원의 후기를 중심으로, 컴친소가 단발성 이벤트가 아닌 관계와 경험이 축적되는 커뮤니티 프로그램임을 보여줬다.
5월 | 컴친소 2.0 시작
5월에는 컴친소 2.0 리뉴얼을 통해 컴투스온의 참여 구조가 본격적으로 확장됐다. 인터뷰 중심의 콘텐츠에서 나아가, 관심사 기반 프로그램과 굿즈 제작을 결합한 참여형 구조를 도입했다. (🔗기사 링크)
7월 | 상호존중 캠페인
7월에는 기존 컴투스온에어 포맷에 상호존중 캠페인 메시지를 결합한 콘텐츠를 선보였다. 진단 테스트를 시작으로 컴투스온에어 배려편, 상호존중 체험단까지 단계적으로 이어지는 구조를 설계해, 조직문화 메시지를 일방적으로 전달하는 방식에서 벗어나 구성원이 직접 참여하고 체감할 수 있는 경험형 콘텐츠로 구현했다. (🔗기사 링크)
9월 | 컴투북스 오픈
9월에는 컴투북스 도서 큐레이션 코너가 새롭게 오픈됐다. 임원 추천 도서부터 구성원의 취향 책방까지, 책을 매개로 한 지식과 취향 공유 콘텐츠를 선보이며 컴투스온의 콘텐츠 영역을 조직문화와 라이프 전반으로 확장했다. (🔗기사 링크)
10월 | 컴투스온 디자인 리뉴얼
10월에는 컴투스온 디자인 리뉴얼을 통해 시각적 정체성과 사용자 경험을 전면 개편했다. 톤앤매너와 썸네일, UI를 통일하며 각 채널과 콘텐츠가 하나의 브랜드 경험으로 인식될 수 있는 기반을 마련했다.
12월 | 컴투기빙 땡큐마켓
12월에 열린 컴투기빙 땡큐마켓은 컴친소 2.0의 흐름을 기부 캠페인으로 확장한 사례였다. 구성원이 직접 만든 굿즈와 참여를 통해 기부금이 조성되며, 컴투스온이 지향해 온 참여형 플랫폼의 가치가 가장 명확하게 드러난 순간이었다. (🔗기사 링크)

2025년 컴투스온은 개별적으로 운영되던 채널들을 하나의 생태계로 통합하며 총 180만 이상의 콘텐츠 도달 수를 기록했다. 이는 단순한 정보 전달 창구를 넘어, 브랜드 미디어로서의 영향력이 대폭 확대되었음을 보여주는 수치다.

채널별 지표를 살펴보면, 그룹 통합 브랜드 허브인 컴투스온 웹사이트는 전년 대비 18%의 PV 성장을 달성하며 트래픽의 중심축 역할을 톡톡히 해냈다. 네이버 블로그는 단기성 이슈가 아닌 검색량과 연관 키워드를 공략한 SEO 중심 전략이 안착하면서 조회수가 무려 197% 급증했고, 2년간 누적된 안정적인 검색 유입 구조를 완성했다. 뉴스레터 역시 발송 횟수에 의존하지 않고 UX 개선과 외부 구독자 확대를 꾀한 결과, 오픈 수가 40% 증가하며 ‘읽히는 콘텐츠 채널’로서의 입지를 굳혔다.

이러한 양적 성장은 조직문화 확산이라는 질적 변화로도 이어졌다. 사내 커뮤니티 프로그램인 ‘컴친소(1.0–2.0)’에는 누적 143명이 참여하여 단순 이벤트를 넘어선 장기적인 참여 문화를 형성했다. 임직원이 직접 참여하는 자원기자단 활동 또한 연간 201건, 월평균 약 17건의 콘텐츠 생산으로 이어지며 조직문화, 게임, ESG 등 다양한 테마를 아우르는 내부 창작 파이프라인이 완성 단계에 도달했다. 더불어 사내 굿즈 제작과 연계한 ‘컴투기빙 땡큐마켓’은 4,764,900원의 누적 모금액을 달성, 콘텐츠와 커뮤니티 활동이 실제 사회적 가치 기여로 연결되는 선순환 구조를 증명했다.
결과적으로 2025년의 컴투스온은 웹사이트와 블로그, 뉴스레터가 유기적으로 연결된 통합 미디어 생태계를 구축함과 동시에, 임직원이 콘텐츠의 독자를 넘어 직접 참여하고 문화를 만들어가는 ‘참여 기반 브랜드 미디어 플랫폼’으로 완전히 자리 잡았다.

컴투스온의 2025년은 열정적인 참여자들이 있었기에 가능했다. 콘텐츠와 조직문화를 함께 만들어간 빛나는 주역들을 선정해 감사의 뜻을 전한다.

🏆 베스트 콘텐츠 에디터상 엘파바 기자 : 한계 없는 스펙트럼으로 컴투스온의 라이브러리를 가장 풍성하게 채운 주인공이다. 특정 분야에 국한되지 않고 다양한 주제를 자유자재로 넘나들며, 한 해 동안 가장 많은 기획 콘텐츠를 제작하는 저력을 발휘했다. 또한 발로 뛰는 취재로 가장 많은 인터뷰이를 만나 현장의 목소리를 담아내는 등 타의 추종을 불허하는 열정을 보여주었다. 압도적인 성실함과 폭넓은 시각으로 컴투스온의 질적 성장을 맨 앞에서 이끈, 대체 불가능한 최고의 에디터다.
🎮 컴투스홀릭상 김수창 기자 : 컴투스의 본질인 ‘게임’에 가장 진심인 사람을 꼽으라면 단연 이 사람이다. 본인의 직무 전문성을 녹여낸 고퀄리티 Tech 기사는 물론, 2025년 출시작 ‘스타라이트’를 주제로 무려 4편의 시리즈 기사를 연재하며 압도적인 열정을 증명했다. 남다른 IP 이해도를 바탕으로 자사 게임을 가장 꾸준하고 깊이 있게 파고든 그는, 컴투스의 브랜드 가치를 높이는 데 결정적으로 기여한 진정한 게이머 기자다.

🤝 인간 와이파이(Wi-Fi)상 비로소 행복한 신데렐라 기자 : 어디서든 빵빵 터지는 와이파이처럼, 조직 내 소통을 끊김 없이 연결한 주인공이다. ‘컴친소’ 프로그램 자원 기자(2회), ‘컴투기빙 서포터즈’, 기획 인터뷰 등 컴투스온의 다양한 프로그램에 빠짐없이 참여하며 열정을 불태웠다. 단순한 참여를 넘어 온·오프라인을 가리지 않는 친화력으로 동료들 사이의 벽을 허물었고, 끈끈한 유대감을 만들어내며 사내 분위기 메이커로서의 진가를 입증했다.
👁️ 조회수 루팡상 김민수 기자 : 독자들의 클릭과 마음을 모두 훔친 ‘괴도’가 나타났다. 그가 작성한 ‘오사카 마라톤’ 취재 기사는 현장의 생생함과 몰입감 높은 필력으로 독자들을 사로잡으며, 작년 한 해 동안 네이버 블로그 전체 조회수 1위라는 압도적인 기록을 세웠다. 차별화된 소재 선정과 흡입력 있는 글솜씨로 ‘잘 만든 콘텐츠’가 가진 파급력을 스스로 증명해 낸, 명실상부한 컴투스온의 흥행 보증수표다.

🔥 걸어 다니는 핫팩상 빵가영 기자 : 존재만으로도 주변의 온도를 1도씨 높여주는 사람이다. 단순한 취재를 넘어 나눔의 가치를 몸소 실천하며 따뜻한 울림을 전했다. 피싱스튜디오의 선행 활동을 조명한 기사 작성부터 ‘컴투기빙 서포터즈’ 참여까지, 선한 영향력이 필요한 곳에는 늘 그가 있었다. 특히 컴친소 일러스트 기자로 2회나 참여하고, 역량을 십분 발휘해 마켓 구매자 증정용 키링을 직접 제작·기부하는 등 진정성 있는 재능 기부까지 펼쳤다. 참여가 곧 선행으로 이어지는 과정을 가장 아름답게 보여준, 그야말로 마음 따뜻한 에디터다.
✈️ 여권 없는 세계일주상 에르 기자 : 비행기 티켓 없이도 전 세계를 누비는 능력자다. ‘컴투스 글로벌 회담’ 테마 기사를 통해 다양한 국적을 가진 임직원들의 이야기를 담아내며 탁월한 소통 능력을 입증했다. 무엇보다 ‘온앤오프’ 모델, ‘컴친소’, ‘컴투기빙 서포터즈’ 등 분야를 가리지 않는 적극적인 참여로 사내 곳곳에 활기를 불어넣었다. 글과 활동을 넘나드는 전천후 활약으로 컴투스온의 무대를 넓힌, 진정한 글로벌 스토리텔러다.
2025년 컴투스온은 ‘참여’를 핵심 동력으로 사람과 콘텐츠, 조직문화를 하나로 묶는 플랫폼으로 단단히 자리 잡았다. 컴투스온에어, 컴친소, 조직문화 캠페인, 땡큐마켓 등을 통해 구성원을 단순한 독자에서 콘텐츠의 주체이자 창작자로 변화시켰고, 이러한 자발적 참여 구조는 이제 컴투스온의 대체 불가능한 자산이 되었다.
다가오는 2026년, 컴투스온은 이 뜨거운 참여의 에너지를 바탕으로 연결의 밀도를 높이고 브랜드의 외연을 넓히는 새로운 챕터를 연다. ‘컴친소 3.0’을 통해 사내 인적 네트워크를 더 촘촘하고 단단하게 잇고, ‘인마이백(In My Bag)’과 같은 정규 킬러 콘텐츠를 통해 구성원의 매력을 입체적으로 조명할 예정이다. 나아가 강화된 브랜드 SNS 채널을 통해 우리의 이야기를 외부로 힘 있게 확산하며, 내부의 즐거움이 외부의 매력으로 치환되는 진정한 브랜드 미디어로 도약할 것이다.
이 모든 계획의 중심에는 언제나 ‘사람’이 있다. 무엇보다 현업의 바쁜 일정 속에서도 남다른 애정으로 컴투스의 순간들을 놓치지 않고 생생하게 기록해 준 자원기자단의 헌신에 깊은 감사를 전한다. 2026년에도 컴투스온의 문은 활짝 열려 있다. 새로운 시선으로 우리의 이야기를 함께 만들어갈 예비 기자들의 합류를 언제나 환영한다.

chap1. 취향을 말하다

chap2. 디나 큐레이터의 취향 책장

『앨리너 올리펀트는 완전 괜찮아』 게일 허니맨
세상사에 서툴고 가족도 친구도 없이 완벽하게 혼자 삶을 꾸려나가며 “나는 혼자로 충분한 독립체”라고 생각하는 괴짜 외톨이, 앨리너 올리펀트의 삶을 경쾌하면서도 따뜻하게 그려낸 책.

“우리가 이 녹색과 푸른색의 눈물 계곡에서 우리에게 주어진 한정된 시간만큼 계속 존재할 수 있는 이유 중 하나는 아무리 요원해 보일지라도 언제나 변화의 가능성이 있다는 것이라고 나는 생각한다.”
누군가의 괜찮지 않은 하루가 ‘괜찮음’으로 변해가는 과정을 지켜보는 일이 위로가 될 수 있다는 걸 알게 해 준 책이다.
반복되는 일상과 매일 똑같은 풍경에 지쳐 무기력함을 느끼던 때였다. ‘완전 괜찮아’라는 제목이 역설적으로 ‘사실은 전혀 괜찮지 않다’고 외치는 비명처럼 느껴져 집어 들었다. 주인공 앨리너는 얼굴에 남은 흉터만큼이나 마음에도 깊은 상처를 지닌 인물이다. 스스로 완벽하다고 최면을 걸며 흉터를 숨기고 살던 그녀가, 자신의 상처를 수군대는 세상과 직면하고 곁에 사람을 들이는 과정은 그 자체로 거대한 치유의 여정이었다. 상처를 외면하는 대신 마주할 용기가 필요한 분들께, 앨리너의 서툰 걸음이 뜻밖의 위로가 되어주지 않을까 싶다.
💡 이 책, 이런 분께 추천합니다
✔️ 겉으로는 웃고 있지만, 속으로는 괜찮지 않은 하루를 보낸 분
✔️ 마음속 깊은 상처를 꺼내볼 용기가 필요한 분
✔️ 자기 전, 마음을 데워주는 따뜻한 소설을 읽고 싶은 분
✔️ 혼자만의 삶도 좋지만 가끔은 벅차게 느껴지는 1인 가구
『오해와 오후의 해』 이설비
아름답지만 때로는 서늘한 문장들이 가득한 이설비 시인의 첫 시집.

“심장을 태우는 오해의 한낮을 지나 어둠의 배후에서 다시 쓰는 사랑”
이 시집은 인간 사이의 이어짐과 그 필연적인 고통을 표현하는 방식이 무척 특별하다. 특히 「조명실」이라는 시가 주는 이미지와 전개 방식이 마음에 깊이 박혀, 낭독회까지 찾아갔었다. 시인의 목소리로 직접 듣는 시는 또 다른 울림을 주었고, 그 작은 공간에 모인 시인을 닮은 사람들까지 더해져 잊지 못할 기억으로 남았다.
운전을 하거나 도로 위를 달리는 이미지가 마치 정착하지 못하는 삶을 보여주는 것 같아 와닿았다. 마음이 헛헛하고 이유 모를 갈증이 날 때, 논리적인 위로보다는 이 시집이 건네는 서늘하고도 뜨거운 문장들에 기대어 보는 것은 어떨까?
💡 이 책, 이런 분께 추천합니다
✔️ 사랑과 관계의 이면을 차분히 곱씹고 싶은 사람
✔️ ‘자동차’라는 기계적 소재와 서정적인 시가 어떻게 만나는지 궁금한 사람
✔️ 해 질 녘 오후의 몽롱하고 쓸쓸한 분위기를 좋아하는 사람
✔️ 난해하지 않으면서도 감각적인 시로 입문하고 싶은 초심자
『표백』 장강명
우리 시대의 인문학적 성과를 한 세대의 서사 기법으로 훌륭하게 해부해 낸 소설.

“세상은 흰색이라고 생각해. 너무 완벽해서 내가 더 보탤 것이 없는 흰색.”
이미 모든 것이 완성된 것 같은 세상에 사는 요즘이다. 나 또한 세상에 더 보탤 것이 없다는 무력감에 휩싸이곤 했다. 이 책은 그런 시대상을 ‘표백’이라는 단어로 섬뜩하리만치 정확하게 포착했다. 무한한 자유가 주어진 것 같지만, 사실은 정해진 정답을 누가 더 빨리 체화하느냐의 경쟁뿐인 세상. 그 속에서 느껴지는 억압과 허무에 읽는 내내 뼈저리게 공감했다.
완벽하고 시시한 세상인 ‘그레이트 빅 화이트 월드’에서 우리가 느끼는 막막함이 나만의 것이 아님을 확인하는 것만으로도 기묘한 해방감을 준다. 취업난과 미래에 대한 불안으로 흔들리는 청년들에게, 이 냉소적이지만 뜨거운 질문을 던지는 책을 권한다. 정말 시대상을 잘 반영한 책이다.
💡 이 책, 이런 분께 추천합니다
✔️ 취업 준비와 불투명한 미래로 고민이 많은 분
✔️ ‘노력하면 된다’는 말보다 현실적인 사회 구조를 파헤쳐보고 싶은 분
✔️ 대한민국 청년 세대의 심리를 깊이 이해하고 싶은 사람
✔️ 한 번 잡으면 놓을 수 없는 몰입도 높은 소설을 찾는 사람
『핑크』 오카자키 쿄코
어쩌면 억지로 오려낸 조각으로 우리는 하루하루 무사히 길러지는지도 모른다는 사실을 가르쳐준 만화.

“이 세상에는 무슨 일이든 생긴다. 무슨 일이든 생길 수 있다. 분명. 지독히 심각한 일도 지독히 아름다운 일도.”
제목은 사랑스러운 ‘핑크’지만, 그 속을 들여다보면 자본주의 사회의 욕망과 피로가 얽히고설킨 잿빛 현실이 있다. 무심한 듯 툭툭 그은 선들은 언제 보아도 트렌디하고, 만화임에도 문학 소설을 읽는 듯한 문장들이 마음을 ‘푹’ 하고 찔러 들어온다. 오늘따라 텍스트보다 강렬한 이미지와 감각적인 이야기로 머리를 식히고 싶다 하는 분들에게 추천한다.
💡 이 책, 이런 분께 추천합니다
✔️ 인간의 욕망과 심리에 관심이 있는 분
✔️ 핑크색을 보면 기분이 좋아지는 분
✔️ 오늘따라 만화가 읽고 싶지만 딱 한 권만 사고 싶은 분
『내가 되는 꿈』 최진영
나와 얽힌 관계에 대한 진정한 의미를 찾아가는 과정을 섬세하게 그려낸 소설.

“비는 비고 바다는 바다다. 나는 나만 될 수 있다. 나는 남이 될 수 없다.”
우리는 타인과 이어지기를 갈망하며 끊임없이 부대끼며 살아간다. 하지만 책 속의 말처럼 우리는 서로 다른 ‘마음’을 같은 단어로 오해하며, 타인에게 나를 투영하거나 나라는 틀에 스스로를 가두기도 한다.
이 책은 과거의 나와 현재의 나, 그리고 내일의 내가 과연 같은 존재인지 묻는다. 시간이 흘렀음에도 여전히 ‘온전한 나’이기를 노력하는 과정이 소설 속에 담겨 있다. 책을 덮고 나니 서로 다른 시간 속의 내가 합쳐져 비로소 지금의 내가 되고, 또 새로운 나로 나아가는 게 아닐까 하는 생각이 들었다. 스스로를 잃어버린 것 같은 기분이 들 때, 혹은 내가 나로 살아가는 것이 버거울 때. 이 책이 길잡이가 되어주진 못하더라도 생각의 스위치는 켜줄 수 있을 것이다.
💡 이 책, 이런 분께 추천합니다
✔️ 바쁜 일상 속에서 ‘진짜 나’를 되돌아보고 싶은 분
✔️ 섬세한 문장을 좋아하는 분
✔️ 주말 오후, 누워서 유년 시절의 기억을 천천히 떠올리고 싶은 분
✔️ 작고 하얀 표지의 책이 갖고 싶은 사람
chap3. 독서 페어링 아이템


북 커버
책과 관련된 일을 하는 사람들을 동경한다. 그래서인지 책을 이야기하는 책을 보면 구매 욕구를 참지 못하는 편이다. 서점 가판에 세워진 이 매거진에서 어찌나 빛이 나던지. 그렇게 구매하게 된 ‘어라운드 102호 : 책 안팎의 이야기’ 속에 책이 입을 옷을 만드는 사람들의 이야기가 나왔다.
지하철과 같은 바깥 환경에서 내가 읽는 책이 나를 대변할까 걱정하지 않고 “오롯이 책 읽을 자유”를 선사하는 이 북커버는 뜻밖의 편안함을 안겨주었다. 괜히 부끄러운 제목의 책, 표지가 못생긴 책 등 껄끄러운 부분까지 말 그대로 ‘커버’해 주었으니까. 또한 형형색색의 옷을 입은 책들이 사랑스러워 보이기까지 한다! 벌써부터 얼마 전 새로 산 옷을 입은 책과 함께할 주말 나들이가 기다려진다.

chap4. 컴투북스 릴레이 소설

#1 여느때와 다름없는 오늘 시끄러운 알람소리가 나를 깨운다. 어두운 새벽녁에 눈을 뜬다. 밖은 비가 내렸는지 짙은 안개가 자욱했고 지끈지끈한 두통으로 인해 잠을 설친 나는 지칠대로 지친 몸을 억지로 일으키며 일어선다. 긴 하품과 함께 물을 벌컥벌컥 마신 후 뜨거운 물에 샤워를 하고 주섬주섬 옷가지를 입고 출근을 한다. 출근길에 마주치는 사람들은 나와 같이 다 피로해 보였고 그들도 삶의 투쟁을 하고 있었다. 열차 소리와 방송 안내음 외에는 아무 소리가 나지 않는 적막한 열차 안에서 나를 비롯한 그들은 스마트폰 세상속에 살고 있다. 시선은 언제나와 같이 스마트폰을 바라보고 있으며, 이어폰을 귀에 꽂고 주위에서 벌어지는 일에 관심을 가지지 않고 오직 반딧불이 처럼 빛나는 액정에만 시선을 두고 있다. 그렇게 도착역에 다와갈 때 쯤..누군가가 나에게 손을 뻗어 강제로 종이를 급하게 쥐어주고 사라졌다. ‘이건 무슨일이지? 나아게 지금 뭘 전달하려는 거지?’라는 생각과 함께..종이를 펼쳐 보니 그것은..
#2 사내 캠페인 홍보지였다. [마인드 리셋 데이 : 3, 6, 9, 12월 넷째 주 금요일, 필수 인원을 제외한 전 직원에게 휴식을 권장합니다.] 처음엔 ‘우리 회사가 유급 휴가를?’ 같은 의심이 블라인드를 도배했지만, 이제는 참여하지 않는 사람을 찾기가 더 어려웠다. 모두 아는 제도를 굳이 홍보할 이유가 있나? 자세히 보니 재작년 날짜였다. 지금은 쓰지 않는 합병 전 로고도 눈에 띄었다.
뭐야, 우리 회사 사람이었어? 이걸 왜…나한테? 빠르게 멀어지는 뒷모습을 멍하니 바라보다, 한번 더 종이를 살폈다. 뒷면에도 흐릿한 글씨가 있었다. [대외비/ 담당자 외 열람 금지] 해당 일자에는 사옥 내 모든 기록 시스템이 일시 정지됩니다. 이전 분기 발생한 보안 사고를 고려하여, 일부 조치가 다음과 같이 변경되었습니다. 급하게 출력한 듯 내용이 잘린 공문. 여백엔 빨간 색연필로 휘갈긴 글씨가 한 줄 적혀 있었다. -이번 달엔 뭘 할래? 무심코 종이를 문지른 손끝에 붉은 자국이 남았다. 마치 지장이라도 찍은 듯, 선명하게.
#3 사무실에 도착하자 분위기가 묘하게 달랐다. 출근 시간인데도 사람들의 대화는 줄었고, 다들 화면을 바라보며 불편한 표정을 짓고 있었다. 메신저에는 “오늘 시스템이 자꾸 끊긴다”는 메시지가 줄줄이 올라왔다. 순간 아침에 본 문구가 떠올랐다.
“해당 일자에는 사옥 내 모든 기록 시스템이 일시 정지됩니다.”
설마… 우연일까? 나는 조심스럽게 종이를 다시 펼쳐 보았다. 여백에 적힌 붉은 글씨가 어째서인지 더 선명하게 보였다.
– 이번 달엔 뭘 할래?
그때, 휴대폰이 울렸다. 모르는 번호였다. 망설이다 전화를 받자, 낮고 차분한 목소리가 흘러나왔다.
#4 “종이 받으셨죠? 이번 달은 당신 차례입니다.”
“네? 뭐가 제 차례인가요?”라고 말하자 상대방이 말했다.
“지금 가장 하고 싶은 일이 무엇이죠?”
그 질문에 나는 너무 놀란 나머지 미처 대답하지도 못하고 전화를 끊어버렸다. 전화기를 내려놓고 잠시 숨을 고르며 주위를 살펴보았지만, 통화 속 상대방의 목소리가 계속 머릿속을 맴돌았다. 어디선가 들어본 듯한, 묘하게 익숙한 목소리였다.
기묘한 전화 통화를 뒤로하고 회사에 도착하니, 동료들은 아무 일 없다는 듯 모니터 앞에서 키보드를 두드리고 있었다. 나 역시 밀린 업무를 처리하기 위해 자리에 앉았다. 그때 사무실 전체의 불이 잠시 깜빡이더니 안내 방송이 흘러나왔다.
“사내 캠페인 홍보지를 받은 사람은 즉시 회사 밖으로 나오세요.”
놀란 동료들이 자리에서 일어나 무슨 일이냐며 서로 물었지만, 아무도 아는 사람이 없는 눈치였다. 홍보지와 이상한 전화를 받은 사람은 나뿐인 것 같았다. 그 안내 방송은 결국, 나를 향한 경고임을 분명히 알리고 있었다.

#5 ‘뭔가 이상한 하루야’라고 생각하며 조심스럽게 아까 받은 종이를 구겨 주머니에 넣었다. 놀란 마음을 가라앉히기 위해 구겨진 종이 아래 깔린 담배 한 개비를 꺼내 들고 비상구 계단으로 향했다.
그때, 뚜벅뚜벅 누군가의 발걸음 소리가 들려왔다. 이미 요동치던 가슴이 더 거세게 뛰기 시작했다. 나는 본능적으로 아래층으로 몸을 피했다. 어둡고 퀴퀴한 공기 속에서 숨소리가 들렸다. 내가 위치한 곳은 23층과 22층 사이, 바로 22.5층이었다.
그때였다. 그의 눈이 내 눈과 마주쳤다. 순간, 공기마저 얼어붙은 듯한 느낌이었다. 나는 그가 왜 여기 있는지, 그가 나와 어떤 관계가 있는지 전혀 알 수 없었다. 하지만 그의 손에 쥐어진 종이, 그것은 분명 내가 방금 전에 받은 그 종이와 똑같았다.
“너도 받은 거야?”
내가 물었다. 목소리가 떨렸다. 그의 표정은 차갑고, 마치 내가 말하는 것에 전혀 관심이 없는 듯했다. 대신 그는 잠시 내 얼굴을 쳐다보다가 천천히 고개를 끄덕였다.
“그래,” 그가 낮은 목소리로 대답했다. “우리가 다 받았다는 게 문제야.”
그는 종이를 펼쳤다.
2025 플레이어세미나 성과
총 1,939명 참여, 총 17회 개최
“100배 빨라졌다는 말이 과장이 아니었네요.”“IP 기반 게임 제작 방식을
처음으로 제대로 이해했어요.”“도전 과정을 솔직하게 공유해주셔서
더 도움 됐어요.”
2025년 한 해, 컴투스 곳곳에서는 배움과 성장의 목소리가 이어졌다. 사내 구성원들이 직접 지식과 경험을 나누는 플레이어세미나 현장에서 나온 생생한 후기들이다.
플레이어세미나란?


플레이어세미나는 컴투스 구성원들이 보유한 지식, 기술, 경험을 함께 공유하며 성장하는 프로그램이다.
“Each One, Teach One”
이라는 슬로건 아래 사내 전문가가 자신의 경험과 노하우를 전사와 함께 공유한다. ‘한 사람이 한 사람을 가르친다’는 뜻의 이 슬로건은 배운 사람이 또 다른 사람에게 지식이나 기술을 전수하며 모두가 서로 배우고 나누는 상호 학습과 성장의 선순환을 의미한다.
📌 어떻게 시작되었나요?
2024년 플레이어세미나는 ‘덕후들의 성장을 응원해’라는 컨셉으로 시작했다. 각자가 보유한 지식과 기술이 개인을 넘어 부서와 조직의 학습으로 이어지도록 ‘성장’에 초점을 맞췄다. 2025년에는 ‘우리들의 도전’을 컨셉으로, 각 부서의 다양한 도전기를 공유했다. 성공의 기쁨, 시행착오의 교훈 등 다양한 경험을 함께 나누며 구성원들에게 더 많은 인사이트를 전하는 프로그램으로 확장했다.
“이들의 지식과 스킬이 개인에 머무르지 않고
조직의 자산으로 확장될 수 있다면 더 큰 학습과 성장이 가능하지 않을까?”
컴투스에는 각자의 자리에서 전문성을 쌓아온 수많은 인재들이 있다. 플레이어세미나는 바로 위와 같은 고민에서 출발했다. 개인의 업무 영역에만 머물러 있는 지식은 조직의 성장으로 이어지기에 한계가 있다. 사내 곳곳에 있는 숨어있는 전문가를 발굴하고, 각자의 업무 속에서 바로 배우고 적용할 수 있는 지식 공유의 장을 만들기 위해 기획되었다. 이 프로그램은 사내 전문가에게는 성취의 경험을, 구성원에게는 성장의 경험을 제공하며 함께 성장하는 문화를 만들어가고 있다.
2025 플레이어세미나 현황

올해 세미나는 ‘우리들의 도전’이라는 컨셉에 맞춰 ‘신규 사업 도전기’, ‘AI 활용 실무 사례’ 등 시의성 있는 주제들을 다뤘다. 게임 개발 현장의 기술적 난제부터 신규 사업의 분투기까지 프로젝트 전 과정을 아우르는 생생한 경험담이 공유되었다.
특히 ‘컴투스는 현재 AI를 어떻게 적용하고 있는가?’라는 물음에 답하기 위해 사내 AI 전문 조직 AX HUB가 참여해 깊이 있는 콘텐츠를 제공했다. 구성원들이 AI를 통해 일하는 방식을 혁신하고, 실제 게임 제작 성과를 높인 다양한 사례가 소개되었다.

플레이어세미나는 회당 평균 114명이 참여했으며, 내용 이해도 8.86점, 활용도 8.70점이라는 높은 만족도를 기록했다. 2025년 플레이어세미나를 세 가지 주요 챕터로 나눠 살펴본다.
Chapter 1. 프로젝트의 시작부터 끝까지, 우리들의 도전기

프로젝트의 시작부터 끝까지 마주한 ‘우리들의 도전기’가 공유됐다. Web3 기반 신규 사업 추진 과정, NBA NOW 게임의 시작과 종료, 신규 게임 개발 도전기까지 다양한 사례가 소개됐다.

프로젝트를 성공으로 이끌기 위해 겪은 에피소드와 시행착오, 그리고 그 과정에서 얻은 교훈을 솔직하게 전달했다. 단순한 성공 사례가 아닌, 의사결정의 맥락과 고민, 선택의 이유를 함께 공유하며 새로운 도전을 준비하는 동료들에게 실질적인 인사이트를 전했다.
Chapter 2. AI로 일하는 방식을 변화하다

올해 플레이어세미나의 82%가 AI 관련 주제였던 만큼, AI가 실무를 어떻게 변화시키고 있는지에 대한 다양한 도전 사례가 공유됐다. 단순히 “AI 좋아요”가 아니라, 실제 업무에서 어떻게 활용하고 적용했는지를 중심으로 다뤘다.

ChatGPT, Claude, MCP, n8n, NotebookLM 등 여러 AI 도구를 중심으로, 반복적인 업무를 줄이고 실질적인 성과와 업무 효율성을 높인 현업의 사례들이 공유되었다. 특히 비개발자가 자료조사와 보고서 자동화를 구현하고, 바이브 코딩으로 업무 자동화 툴을 개발하는 사례를 보여주며 AI로 일하는 방식을 어떻게 변화시킬 수 있는지를 보여주었다.
다른 부서들의 활용 사례를 보며 AI에 대한 진입 장벽을 낮추고, 나의 업무에도 적용해 볼 수 있는 구체적인 가이드를 전달했다. 반복적인 업무를 줄이고 실질적인 성과와 업무 효율성을 높인 현업의 사례들이 공유되며, AI가 단순한 도구가 아닌 일하는 방식을 변화시키는 매개체임을 확인할 수 있었다.
Chapter 3. AI로 확장하는 게임 제작 실무

게임 제작 현장에서 AI가 실제로 어떻게 활용되는지 확장 가능성을 보여주는 구체적인 사례가 소개되었다. 게임 기획과 전략, 데이터 분석, DB 개발, QA, 이미지 생성과 편집, 그리고 영상 제작까지 게임 제작 전 과정에서 AI를 활용한 실무 사례가 다양하게 공유되었다.
실무자가 직접 구현한 AI 기반 데이터 솔루션 프로그램이 소개되었다. 원하는 지표를 바로 확인하여 게임 전략 수립과 의사결정에 필요한 데이터를 빠르게 활용할 수 있는 방향을 보여주었다. 아울러 프롬프트 엔지니어링 기술을 통해 AI와 효과적으로 대화하며 게임 기획 과정에서 AI를 활용해 아이디어를 구체화하고 검증하는 방법을 공유했다.

현업 부서에서 직접 제작한 Photoshop 플러그인과 이미지 생성·편집 AI 도구 활용 사례가 소개되며, AI가 단순히 작업 속도를 높이는 것을 넘어 아트 퀄리티 자체를 향상시킬 수 있음을 보여주었다. 컨셉 기획부터 시나리오, 생성, 음향까지 100% AI로 완성한 인트로 영상 제작 사례를 통해, 실무에서 바로 적용 가능한 노하우가 상세하게 전달되었다.
AI를 활용해 팀의 생산성과 업무 효율을 향상시킨 구체적인 사례와 노하우가 공유되었다. QA, DB 개발 등 실제 게임 제작 실무에서 바로 적용 가능한 내용으로 효율성을 극대화했다. 단순히 AI 도구를 소개하는 데 그치지 않고, 실제 게임 제작 실무에서 어떻게 적용하고 어떤 결과를 만들어냈는지를 중심으로 다뤘다.
구성원들이 체감한 변화, 그리고 2026년을 향해

세미나에 참여한 구성원들은 실무 스킬뿐만 아니라 태도와 협업 측면에서도 긍정적인 변화를 경험했다. 공유된 사례를 현업에 바로 적용해 업무 효율을 높였고, 동료들의 생생한 도전기를 접하며 새로운 시도에 대한 심리적 장벽을 낮췄다. 부서 간 경험이 공유되는 장이 마련되면서, 개인의 경험이 팀의 자산이 되고 다시 전사의 지식으로 확장되는 선순환 구조가 만들어졌다.
이러한 지식 자산을 지속적으로 축적하기 위해 모든 플레이어세미나 영상과 자료들은 인프런과 컨플루언스 채널에 아카이빙하고 있다. 지난 세미나의 다시보기를 원한다면 아래 링크를 통해 언제든 확인할 수 있다.
2025년의 플레이어세미나는 다양한 직무, 직군에서 세미나를 진행하고 참여하는 성과를 만들었다. 그 중심에는 마스터들을 빼놓을 수 없다. 1,000명이 넘는 동료 앞에서 자신의 경험과 지식을 오픈하는 것이 결코 쉽지 않고 용기가 필요한 일인데, 흔쾌히 참여해준 모든 마스터들께 진심으로 감사의 마음을 전한다. 또한 평가가 아닌 따뜻한 시선으로 함께해준 구성원 여러분께도 감사하다는 말씀을 전하고 싶다. 2026년에도 플레이어세미나는 계속된다. COMING SOON!
🎁 나에게 가장 도움이 되었던
‘25년 플레이어세미나’
17건의 세미나 중에서 나에게 가장 도움이 되었던 세미나는 무엇인가요?
투표한 분들 중 추첨을 통해 10명에게 선물을 드립니다!
* 구글 폼으로 이동합니다.
*컴투스 임직원만 참여 가능
1월 1일, 혹은 새로운 달의 1일이면 어김없이 거창한 계획표를 작성한다. 그리고 매년 “오늘부터 ‘갓생’ 산다.”고 다짐하곤 한다. 그러나 책상에 앉은 지 10분이 채 지나기도 전에 손은 스마트폰으로 향한다. ‘잠깐만…’ 하고 시작한 인스타그램 릴스 탐방은 어느새 10분, 유튜브 알고리즘을 타다 보면 1시간이 훌쩍 지나 있다.
정신을 차리면 새벽 2시. 계획표의 첫 줄조차 지우지 못한 채 하루가 끝난다. 스마트폰이 문제라는 건 알고 있다. 하지만 의지력만 탓하기엔, 우린 이미 너무 많은 것을 ‘폰’에 맡기고 있다. 심지어 집중하겠다며 맞추는 ‘타이머’조차 스마트폰 앱을 쓰고 있었으니 말이다.
방해 요소를 원천적으로 차단할 방법이 필요했다. 그래서 스마트폰을 물리적으로 멀리하게 해 줄 ‘아날로그’ 도구로 눈을 돌렸다. ‘월간 it템’이 이번에 주목한 아이템은 ‘인생도구상점’의 [몰입루틴 SET]다. (구매링크 바로가기)
📦 ‘몰입루틴 SET’


- 제품명: 몰입루틴 SET (다이어리 Ver.2 + 라툴 타이머 Pro)
- 특징: 디지털 기기의 방해 없이 ‘갓생’과 ‘루틴 형성’을 돕는 아날로그 도구 세트. 시각적 타이머와 몰입 시간 기록 전용 다이어리로 구성.
WHY? 왜 굳이 ‘아날로그’였나
“아니, 21세기에 웬 타이머랑 종이 다이어리?”
솔직히 나도 처음엔 그렇게 생각했다. 앱스토어에 가면 공짜 타이머 앱이 널려 있는데, 굳이 이걸 돈 주고 사야 하나 싶었다. 하지만 그 ‘스마트폰 앱’이 바로 문제의 핵심이었다.
타이머를 맞추려고 폰을 드는 순간, 어김없이 쌓여있는 알림이 보였다. ‘아, 맞다. OOO 카톡 답장해야지.’ 타이머를 켠 후에도 ‘혹시 뭐 급한 연락 왔나?’ 싶어 자꾸만 폰을 뒤집어 보게 됐다. ‘폰을 뒤집어 놓는’ 정도의 소극적인 대처로는 부족했다. 아예 손이 닿지 않는 곳으로 치워버릴 ‘물리적 거리두기’가 절실했다.

이 지점에서 라툴 타이머 Pro는 완벽한 대안이 된다.
스마트폰 타이머가 숫자만 줄어드는 방식이라면, 이 타이머는 빨간 디스크가 시계 반대 방향으로 돌아가며 남은 시간을 ‘시각적으로’ 보여준다. 시간이 눈앞에서 사라지는 느낌이 들면서 ‘이제 10분 남았다. 빨리 끝내자’는 기분 좋은 압박이 생긴다.
또 하나 인상적인 점은 소음이다.
초침이 ‘째깍’거리지 않는 무소음 설계라 독서실이나 조용한 사무실에서도 부담 없이 사용할 수 있다. 집중을 돕는 도구가 또 다른 소음이 되지 않는다는 점에서 설계의 완성도가 느껴진다.
HOW? ‘몰입 루틴’은 어떻게 만들어지는가
물론 타이머 하나 샀다고 없던 집중력이 갑자기 생기진 않는다. 이 세트의 진짜 핵심은 ‘타이머 + 다이어리’의 조합, 즉 ‘측정’과 ‘기록’에 있다.

Step 1. 계획(Plan)
‘몰입 다이어리 Ver.2’를 펼친다. 6개월짜리 만년형 다이어리로, 하루를 빽빽하게 채우는 방식이 아니라 ‘오늘 꼭 끝낼 일(To-do)’과 ‘몰입 시간’을 기록하는 구조다. 부담을 줄이기 위해 오늘 반드시 끝내야 할 일 세 가지만 적는다.
Step 2. 실행(Do)
첫 번째 할 일을 정하고 타이머를 25분으로 맞춘다. 이른바 ‘뽀모도로’ 기법이다. 그리고 그 25분 동안은 오직 그 일만 한다. 스마트폰은 가방 안, 손이 닿지 않는 곳에 둔다.
Step 3. 기록(See)
알람이 울리면 5분간 휴식한다. 그리고 가장 중요한 단계로 넘어간다. 다이어리 하단의 타임 테이블에 방금 몰입한 25분을 형광펜으로 칠한다.

이게 별거 아닌 것 같아도, 하루 끝에 내가 ‘순수하게’ 집중한 시간이 눈에 보이니 희열이 장난 아니다. 딴짓한 시간을 제외하고, 오로지 몰입한 시간만 쌓여가는 것을 보며 “오늘 그래도 뭘 하긴 했구나”하는 성취감을 느낄 수 있다.
결론: ‘장비병’도 때로는 괜찮아
솔직히 말하면, 이 세트를 쓴다고 하루아침에 의지력 제로였던 사람이 ‘파워 J’로 변신하지는 않는다. 딴짓의 유혹은 여전히 강력하다.
하지만 분명한 사실은, 의미 없이 흘려보내던 시간이 형광펜으로 칠해진 ‘몰입’의 시간으로 바뀌기 시작했다는 것이다. 결국 문제는 내 부족한 의지력이 아니었다. 방해 요소를 원천적으로 차단할 ‘환경’이 먼저였다.
스마트폰 중독에서 잠시 벗어나고 싶은 갓생러, 혹은 아날로그 감성으로 집중의 맛을 느끼고 싶은 사람이라면 강력 추천한다.

작심삼일이 아닌 작심 25분의 사람으로 거듭나서 매 순간 자신이 설정한 시간만 버티고 거기서 성취감을 얻으면 충분하다. 5분의 휴식도 의식적으로 챙기며, 자신만의 속도로 몰입을 쌓아가길 바란다.
💡 Editor’s 꿀팁: ‘몰입루틴 SET’ 200% 활용법
- 뽀모도로는 철저하게: 25분 집중, 5분 휴식. 핵심은 5분 쉴 때도 스마트폰 금지! 라툴 타이머로 휴식 시간도 세팅하고 가벼운 스트레칭을 하자.
- ‘딴짓 리스트’ 작성: 몰입 중 불현듯 생각난 잡무(카톡 답장, 저녁 메뉴 검색 등)는 다이어리 한편에 적어두자. 25분이 끝난 뒤 처리하면 된다.
- 강제 루틴 만들기: 아침 기상 후 1시간(독서), 잠들기 전 30분(일기 쓰기) 등 매일 정해진 시간에 타이머를 켜는 것을 하나의 ‘의식’처럼 만들자.

무한 확장 가능한 캔버스, 디지털 드로잉으로의 초대
태블릿을 구입한 사람이라면 한 번쯤은 이런 상상을 해봤을 것이다. ‘아이패드로 그림을 그려서 이모티콘 작가가 되어볼까? 아니면 인스타툰 연재에 도전해볼까?’ 그러나 원대한 꿈과 달리, 막상 백지 화면을 마주하면 어디서부터 시작해야 할지 막막함만 남는다. 결국 종이질감 필름과 애플펜슬을 장착한 태블릿은 ‘넷플릭스 전용 모니터’로 전락하고 만다.
사실 이는 남의 이야기가 아니다. 기자 역시 아이패드를 처음 샀을 때 수많은 활용법을 떠올렸지만, 언박싱 이후 꽤 오랫동안 OTT 시청에만 사용했다. 그러기를 몇 달… 넷플릭스를 보다가 문득 ‘이 아이패드를 백만 원짜리 모니터로 전락시켜도 좋은가’ 하는 죄책감(?)에 휩싸인 나는 다시 한번 각성하고 그림러의 여정을 시작하게 되었다. 아직 갈 길이 먼 초보 그림러이지만, 비전공자인 내가 선 긋기부터 시작해서 최근에 이르기까지 겪은 시행착오와 정보를 나누며, 취미로 그림을 그리고 싶은 이들에게 경험을 공유해보고자 한다.

어떤 앱으로 그릴까?
드로잉을 시작하려면 먼저 앱을 선택해야 한다. 대표적인 앱으로는 Procreate와 Clip Studio가 있다.
Procreate (프로크리에이트)

Procreate는 드로잉 앱 중 가장 대중적으로 사용되는 프로그램으로, 2025년 1월 기준 약 14,000원에 영구 소장이 가능하다. 간단한 일러스트 작업이나 이모티콘, 인스타툰을 그리려는 사용자들이 주로 선택한다. 직관적인 인터페이스와 풍부한 브러시 라이브러리가 강점이다.
Clip Studio (클립 스튜디오)

Clip Studio는 Photoshop과 유사한 인터페이스를 제공하며, 주로 PC 사용자들이 애용하지만 월정액 형태로 앱스토어에서도 구매할 수 있다. 기본적인 드로잉 작업 외에도 컷 분할 작업, 로토스코핑 기능 등이 가능하며, 사용자들끼리 브러시와 소재 등 에셋을 교류할 수 있는 공식 홈페이지 플랫폼이 활성화되어 있다. 전문적인 일러스트 작업이나 웹툰 제작을 원하는 사용자에게 적합하다.
각 앱의 사용법은 YouTube에서 ‘Procreate 사용법’, ‘Clip Studio 초기 설정’ 등으로 검색하면 다양한 튜토리얼 영상을 찾을 수 있다.
나만의 스타일을 찾아서
드로잉 앱을 켰다가도 백지를 마주하면 막막함이 먼저 찾아온다. 이럴 때 무작정 그림을 그리기보다, ‘내가 어떤 그림을 그리고 싶은지’를 먼저 생각해보는 것을 추천한다.
이모티콘 같은 오리지널 캐릭터인지, 인스타툰인지, 웹툰 스타일인지, 웹소설 표지 같은 반실사 인물 일러스트인지. 그림에도 장르와 작화법은 매우 다양하다. 그리고 싶은 방향이 정해졌다면, 마음에 드는 그림 스타일을 그때그때 아카이빙해 참고 자료로 활용하는 것이 좋다.
기자의 경우 웹소설 표지 스타일의 반실사 인물 일러스트를 잘 그리고 싶어 초기에는 완전 모작과 포즈 모작부터 시작했고, 이후 창작 일러스트로 확장해 연습했다.




그림의 시작은 모작과 레퍼런스!
그리고 싶은 그림에 대한 생각이 정리되었다면, 좋아하는 그림을 똑같이 그려보는 모작을 하거나 참고 작품을 수집하여 반영해 보는 것을 추천한다. 이미지 검색 플랫폼인 Pinterest에서 원하는 이미지를 찾거나, 좋아하는 인스타툰 계정, 일러스트레이터의 X(구 트위터) 계정 등에서 스타일을 수집하여 따라 그리다 보면 많은 도움이 된다.
처음에는 막막할 수 있지만 YouTube 등에도 드로잉 기법이나 브러시 추천 영상들이 많으니 참고하면 좋고, 완전 모작이 아니더라도 여러 사이트에서 분위기, 포즈 등 다양한 레퍼런스를 조합해서 부분 모작을 그려봐도 큰 도움이 된다.
모작 1 | 1인 포즈 연습을 위해 Pinterest에서 수집한 사진을 참고해 전체 드로잉을 진행했다.
포커 카드와 카지노 칩은 무료 이미지 사이트 자료를 가공해 활용했다.

모작 2 | 2인 구성의 웹소설 표지 스타일을 연습하고자 포즈는 웹소설 일러스트를 참고했고, 헤어와 의상은 별도의 레퍼런스를 조합해 드로잉했다.

혼자 그리기 어렵다면?
드로잉에서 어려운 부분이 있거나 모티베이션이 필요하다면 온오프라인을 통해 다양한 도움을 받을 수 있다. YouTube를 통해 반실사, SD 등 그리고 싶은 장르나 채색 기법을 검색하면 풍부한 영상을 찾을 수 있다. 클래스101이나 콜로소를 통한 온라인 학습도 가능하며, 취미반을 운영하는 오프라인 디지털 드로잉 학원을 다니는 것도 하나의 방법이다.
학습 외에도 모임 앱이나 동호회 활동을 통해 사람들과 교류하는 방식이 있다. 이 경우 실력 향상보다도 공통된 취미를 매개로 한 교류와 정보 공유를 통해 취미를 꾸준히 이어갈 수 있다.
기자는 기초 드로잉을 배우기 위해 약 1년 반 동안 드로잉 학원 취미반에 다녔고, 최근에는 컴투스온 프로그램 ‘컴친소’를 통해 디지털 드로잉을 취미로 하는 사우님을 소개받아 그림 모임을 진행했다.

“지금 당장 바쁜데 검진 받을 시간이 어디 있어?” 스스로에게 핑계를 대며 건강검진을 차일피일 미루다 보면, 어느새 1년, 2년이라는 시간이 훌쩍 지나가 버리곤 한다. 하지만 많은 질병은 초기에 발견하면 충분히 치료와 관리가 가능하다는 사실을 결코 간과해서는 안 된다. 건강은 건강할 때 지켜야 한다는 말은 언제나 유효하다.
법적 의무를 넘어선 진정한 복지

컴투스가 정기 건강검진 제도를 운영하는 이유도 바로 여기에 있다. 물론 산업안전보건법에 따라 근로자의 건강 보호를 위한 검진은 법적 의무 사항이다. 하지만 컴투스의 건강검진 복지는 단순한 법규 준수나 과태료 회피를 위한 수단을 넘어선다.
법이 정한 기준을 충족하는 것을 기본으로 하되, 임직원이 더 나은 환경에서 정밀한 검사를 받을 수 있도록 지원 범위를 넓혔다. 이는 규제 때문이 아니라, 임직원의 건강이 곧 회사의 경쟁력이라는 확고한 믿음과 구성원을 향한 진심 어린 배려가 담겨 있기 때문이다.
이러한 적극적인 지원은 결국 긍정적인 선순환을 만든다. 질병을 조기에 발견해 중증 질환으로의 발전을 막고, 건강한 신체로 업무 몰입도를 높여 활기찬 기업 문화를 조성한다. 나아가 장기적으로는 개인의 의료비 부담과 회사의 사회적 비용까지 낮추는 효과가 있다. 결국 임직원의 건강을 챙기는 일은 개인의 행복과 회사의 성장이 맞닿아 있는 가장 중요한 투자다.
컴투스 건강검진 제도 한눈에 보기

컴투스 건강검진 제도는 임직원의 편의와 실질적인 혜택에 초점을 맞춰 설계되었다.
우선 검진은 2년에 한 번씩 실시한다. 2026년 검진은 2025년 입사자와 2025년도 종합건강검진 미실시자를 대상으로 진행된다. 단, 올해 입사자는 내년 검진 대상자로 선정된다.
근무 시간 지원도 확실하다. 검진 당일 근무시간은 최대 4시간까지 인정된다. 검진 후 컨디션 조절을 위해 출근하지 않고 온전한 휴식을 취하고 싶다면, 시간 연차 4시간을 사용하면 된다.
가족까지 배려하는 복지도 눈에 띈다. 임직원 본인뿐만 아니라 동반 가족 1인(형제, 친척 제외)까지 지원 대상에 포함되어 함께 건강을 챙길 수 있다. 만약 이외에 추가로 가족 검진을 희망할 경우에는 회사 제휴 혜택을 적용받아 할인된 가격으로 예약할 수 있다.
마지막으로 전국 어디서나 편리하게 이용할 수 있다. 검진 기관이 전국 각지에 다양하게 분포되어 있어, 임직원은 본인이 희망하는 장소에서 편리하게 예약하고 검진받을 수 있다. 특히 올해는 전국적으로 검진 가능한 기관이 대폭 추가되어, 서울뿐만 아니라 수도권 및 지방에 거주하는 임직원과 가족들의 접근성이 훨씬 수월해졌다.
[주요 검진 기관 및 위치]
- KMI: 광화문, 여의도, 강남, 수원, 대구, 부산, 광주, 제주
- 한국의학연구소: 종각, 선릉
- 하나로의료재단: 종각, 강남
- 소중한메디케어: 가산
- 녹십자아이메드: 서초, 을지로
- 한국건강관리협회: 화곡, 강남, 수원, 인천 외 11곳
꼼꼼히 뜯어보는 건강검진 항목 가이드

건강검진은 크게 모든 임직원에게 공통으로 제공되는 ‘기본 검사’와 개인의 연령, 성별, 건강 상태에 따라 선택할 수 있는 ‘추가 항목’으로 나뉜다. 무엇을 검사하는지 정확히 알아야 내 몸 상태를 제대로 파악할 수 있다.
1. 기본 건강검진 항목 (공통 지원)
회사에서 지원하는 기본 항목은 신체 전반의 건강 상태를 스크리닝하는 데 초점을 맞추고 있다.
| 구분 | 검사 항목 | 세부 내용 및 목적 |
| 기초 검사 | 문진 및 진찰 | 과거 병력, 가족력, 생활습관 파악 및 전문의 진찰 |
| 신체 계측 | 신장/체중/비만도 | BMI(체질량지수) 산출을 통한 비만 여부 확인 |
| 혈압 검사 | 혈압 측정 | 고혈압 및 저혈압 여부 확인 |
| 감각 기관 | 시력/청력 | 시력 저하 및 난청 등 청력 손실 여부 점검 |
| 흉부 검사 | 흉부 X-ray | 폐결핵, 폐렴, 심장 비대 등 흉부 질환 확인 |
| 혈액 검사 | 종합 혈액 분석 | 빈혈(혈색소), 당뇨(공복혈당), 고지혈증(총콜레스테롤, HDL, LDL, 중성지방), 간기능(AST, ALT, γ-GTP), 신장기능(크레아티닌, eGFR) 등 주요 장기 기능 확인 |
| 소변 검사 | 요단백/요잠혈 | 신장 질환 및 요로 감염 여부 등 확인 |
| 구강 검사 | 치아/잇몸 | 충치, 치주 질환 등 구강 건강 상태 점검 |
2. 연령·성별 맞춤형 및 추가 항목
기본 검사 외에 본인의 나이와 성별, 혹은 가족력에 따라 필요한 검사를 추가할 수 있다. 단, 병원마다 보유 장비와 비용 정책이 다르므로 예약 전 확인이 필수다.
- 연령별 권장 검사: 나이가 들수록 발병률이 높아지는 질환을 대비해야 한다. 위·대장 내시경(소화기 암), 골밀도 검사(골다공증), 폐암 CT(흡연자 권장) 등이 대표적이다.
- 성별 특화 검사: 여성 임직원이나 배우자의 경우, 자궁경부암 검사, 유방 촬영(맘모그래피), 유방/자궁 초음파 등 여성 질환 예방을 위한 항목을 챙겨야 한다.
- 기관별 차이점 주의: 기본적인 지원 항목은 대동소이하지만, 초음파, 내시경, CT, MRI, 특수 장비 촬영, 백신 접종 비용 등은 검진 기관마다 가격과 지원 범위가 다를 수 있다. 따라서 특정 정밀 검사를 원한다면 해당 병원의 장비 보유 현황과 추가 비용을 미리 비교해보는 것이 현명하다.
헤매지 않고 한 번에! 검진 신청 방법

건강검진 신청은 크게 전화와 온라인 두 가지 방식으로 가능하다. 하지만 예약 변경 시 주의할 점이 있으니 꼭 숙지해야 한다.
1. 신청 방법 (택 1)
- 전화 신청: 가장 확실하고 빠른 방법이다. 사내 공지된 ‘건강검진 가이드’ 파일에서 희망하는 병원의 직통 연락처를 확인한 후 전화를 건다. 상담원에게 회사명(컴투스 그룹사)을 밝히고 날짜와 항목을 조율하면 된다.
- 온라인 예약: 통화 대기가 번거롭다면 해당 검진 기관의 홈페이지를 이용하자. 제휴 기업 예약 페이지에 접속하여 본인 인증 후 원하는 일정과 프로그램을 선택할 수 있다.
2. 예약 변경 및 취소 (주의!)
갑작스러운 일정 변경으로 예약을 바꿔야 할 때가 있다. 이때 가장 중요한 것은 “변경은 반드시 유선(전화)으로만 가능하다”는 점이다.
- 온라인으로 처음 예약을 했더라도, 날짜나 항목을 변경하려면 병원 예약실로 직접 전화를 해야 한다.
- 검진일이 임박해서 취소할 경우 위약금이 발생하거나, 원하는 날짜에 재예약이 어려울 수 있으므로 변경 사항이 생기면 즉시 연락하는 것이 좋다.
실패 없는 건강검진을 위한 꿀팁

성공적인 건강검진을 위해서는 몇 가지 요령이 필요하다. 가장 먼저 가까운 기관을 선택하는 것이 중요하다. 출퇴근길이나 자택 근처를 선택하면 이동 시간을 줄일 수 있고, 특히 수면 내시경 후 느껴질 수 있는 피로감을 고려했을 때 귀가가 편리하다.
또한 오전 시간대 예약을 추천한다. 혈액검사를 위해 장시간 공복 상태를 유지해야 하므로, 오후보다는 오전에 검진을 마치는 것이 컨디션 조절에 유리하다. 예약 시점도 중요한데, 상반기와 하반기 검진 시즌에는 예약이 몰리므로 최소 2~3주 전에는 미리 일정을 잡는 것이 현명하다. 마지막으로 기본 검진 외에 위·대장 내시경이나 초음파 등 본인에게 필요한 추가 항목을 미리 체크하면 한 번의 방문으로 더욱 효율적인 건강 관리가 가능하다.
생생 건강검진 후기: 소중한메디케어 방문기

직접 체험한 건강검진 후기를 공유한다. 이번 검진은 자택과 가장 가까운 ‘소중한메디케어’를 선택했다. 이곳은 건물 한 층 전체를 사용하여 공간이 넓고 쾌적하며, 무엇보다 간호사들의 동선 안내가 매우 친절하다는 장점이 있다.
1. 방문 전 꿀팁, 문진표 미리 작성하기
대기 시간을 줄이고 싶다면 방문 전 문진표 작성이 필수다. 검진 예약이 확정되면 문자로 링크가 전달되는데, 이를 통해 간편하게 작성할 수 있다. 단, 예약자 성함과 휴대폰 번호가 일치해야 하며, 작성 후 반드시 ‘종료 버튼’을 눌러 제출을 완료해야 한다. 당일 내원 시 검진 종류나 나이에 따라 추가 작성이 필요할 수도 있지만, 기본 문진을 미리 해두면 현장에서의 번거로움이 훨씬 줄어든다.

2. 고난의 시작, 대장 내시경 준비
이번 검진에서는 2~4년 주기로 돌아오는 위&대장 내시경을 진행하기로 했다. 예약 후 내시경 약이 배송되면서 본격적인 준비가 시작되었다.


가장 신경 써야 할 것은 식이 조절이다. 검사 3~4일 전부터 잡곡, 해조류, 씨 있는 과일 등은 피해야 한다. 전날에는 건더기 없는 흰죽이나 미음, 카스텔라, 이온 음료, 맑은 국물 정도만 섭취 가능하다. 다행히 회사 복지인 ‘스낵킹’ 코너에 비치된 죽이 큰 도움이 되었다. 점심에는 사내 식당 메뉴로 나온 설렁탕 국물로 허기를 달래며 버텼다.
식이 조절보다 더 힘든 것은 약 복용이다. 요즘은 알약 형태도 있다지만, 이곳은 아직 가루약(수클리어산)을 사용한다. 전날 저녁과 당일 새벽, 약을 물에 타서 흔든 뒤 엄청난 양의 물과 함께 마셔야 한다. 체력을 다 쓰는 기분이었지만, 정확한 검사를 위해 마지막 기포 제거제인 ‘엔도콜 액’까지 꼼꼼히 챙겨 먹었다.


3. 검진 당일 및 센터 둘러보기
오전 7시 오픈 시간에 맞춰 도착했음에도 이미 대기자가 많았다. 하지만 체계적인 시스템 덕분에 기초 검사부터 내시경까지 약 2시간 만에 모든 과정을 마칠 수 있었다. 검진을 진행하며 둘러본 소중한메디케어의 각 센터는 매우 전문적으로 운영되고 있었다.


- 기초검진센터: 신체계측, 혈압, 심전도, 스트레스 검사 등 일반적인 검사가 이루어지는 곳이다. 필요에 따라 MRI, CT 등 최첨단 장비를 활용한 특화 검진도 선택할 수 있다.
- 소화기센터: 전문의가 상주하여 고화질 내시경으로 식도, 위, 대장의 미세 병변을 조기에 진단한다. 위내시경은 하루 최대 250건, 대장내시경은 60건까지 소화할 만큼 경험이 풍부하다.
- 여성검진센터: 여성 임직원을 위한 배려가 돋보이는 공간이다. 유방 촬영 및 자궁 초음파 검사 등이 별도로 분리된 구역에서 이루어져 프라이버시 침해 걱정 없이 편안하게 검진받을 수 있다.
- 정밀영상센터 & 진단검사센터: 영상의학 전문의가 상주하여 장기와 혈관 상태를 정밀하게 판독하며, 채취한 검체는 외부 위탁 없이 원내에서 직접 분석해 결과의 신뢰도를 높였다.
- 직업환경의학센터: 근로자의 건강을 전문적으로 관리하는 곳이다. 직장 내 유해 인자로 인한 질병을 조기에 발견하고 예방하는 특수건강진단을 수행하며, 근로자가 건강한 상태에서 일할 수 있도록 돕는다.
담당자 인터뷰

임직원들이 궁금해할 만한 내용을 인사운영팀 담당자에게 직접 물어보았다.
1. 제도 취지 및 운영 방향
회사에서 건강검진 복지를 운영하는 가장 큰 목적은 무엇인가요?
건강검진은 질병을 조기에 발견하고 예방하는 가장 기본적인 방법입니다. 개인이 스스로 건강을 챙기기는 쉽지 않은데, 회사가 이를 지원함으로써 임직원은 물론 그 가족들의 건강 증진까지 도모하고자 합니다. 즉, 스스로 챙기기 어려운 부분을 회사가 보완해 주는 것이 가장 큰 목적입니다.
최근 건강검진 제도에서 특별히 달라지거나 강화된 점이 있나요?
가장 큰 변화는 ‘접근성 확대’입니다. 기존에는 검진 기관이 주로 서울에 집중되어 있었는데, 이번에 전국적으로 지사가 있는 검진 업체들을 대거 추가했습니다. 덕분에 지방에 거주하는 임직원 가족분들도 멀리 이동하지 않고 거주지 근처에서 편하게 혜택을 받으실 수 있게 되었습니다.
사내 건강검진 참여율은 어느 정도이며, 독려를 위해 어떤 노력을 하고 계신가요?
대상자로 선정된 분들이라면 100% 검진을 받는 것을 목표로 하고 있습니다. 이를 위해 검진 기관으로부터 수시로 수검 명단을 전달받아 현황을 파악하고, 아직 예약하지 않은 임직원분들에게는 개별적으로 연락을 드려 건강검진을 놓치지 않고 꼭 받으실 수 있도록 안내하고 있습니다.
2. 대상 선정 및 검진 기관
건강검진 대상자는 어떤 기준으로 선정되나요?
기본적으로 2년 주기로 검진을 받으실 수 있도록 운영 중입니다. 예를 들어 올해(2026년) 건강검진 대상자는 ‘2025년 입사자’와 ‘2025년도 종합건강검진 미실시자’로 구성됩니다. 선정된 임직원 본인뿐만 아니라 동반 가족 1인까지 지원 대상에 포함됩니다.
임직원이 선호하는 외부 병원을 개인이 직접 선택해서 받을 수도 있나요?
그렇지는 않습니다. 양질의 검사 서비스와 비용 지원을 위해 회사와 제휴를 맺은 건강검진 기관 내에서만 지원이 가능합니다. 다만, 앞서 말씀드린 대로 제휴 기관을 전국적으로 확대하여 선택의 폭을 넓혔습니다.
3. 비용 및 지원 범위
검진 비용은 전액 회사에서 지원하나요? (수면 내시경 포함 여부)
회사가 정한 기본 지원 항목에 대해서는 전액 지원됩니다. 다만, 많은 분이 궁금해하시는 ‘수면(진정) 내시경’ 비용은 현재 본인 부담입니다. 이 부분에 대해서는 향후 회사 지원금에 포함할 수 있을지 내부적으로 긍정적인 검토를 진행 중입니다.
추가로 선택하는 검진 항목이나, 가족 추가 검진 비용은 어떻게 되나요?
기본 지원 대상 외에 항목을 추가하거나, 가족 인원을 추가하여 검진을 받을 경우 해당 비용은 전액 개인 부담입니다. 하지만 회사와 제휴가 맺어져 있기 때문에, 개인이 병원에 직접 예약하는 것보다 훨씬 할인된 금액으로 이용하실 수 있다는 장점이 있습니다.
4. 결과 관리 및 프라이버시
검진 결과가 회사로 통보되나요? 이상 소견 시 회사의 지원이 있나요?
전혀 그렇지 않습니다. 건강검진 결과는 민감한 개인정보이기 때문에 오직 임직원 개인에게만 제공됩니다. 회사는 결과를 알 수 없으므로, 이상 소견에 따른 재검이나 정밀검사, 사후 상담 등은 개별적으로 병원을 통해 진행하셔야 합니다.
마지막으로 임직원들에게 전하고 싶은 말씀이 있다면요?
직접적인 피드백보다는, 이번 제도 개편을 통해 체감하시는 편의성이 높아졌을 거라 기대합니다. 특히 수도권 외곽이나 지방에 거주하시는 직원 및 가족분들이 검진을 받는 데 겪었던 거리상의 불편함이 해소되었으면 합니다. 앞으로도 임직원 여러분이 더 쉽고 편하게 건강을 챙기실 수 있도록 제도를 다듬어 가겠습니다.
마치며

건강검진은 스스로의 건강 상태를 확인하고 생활습관을 개선할 수 있는 좋은 기회다. 매년 4~5월에 공지되는 공지사항을 보고 신청하면 된다. 컴투스 그룹사는 임직원 여러분의 건강을 최우선 가치로 삼고 있으며, 매년 정기 건강검진을 통해 질병의 조기 발견과 예방을 지원하고 있다. 건강검진을 통해 여러분과 여러분 가족의 건강을 지키고, 더 나은 내일을 함께 만들어가길 바란다.
“사람이 죽으면 먼저 가 있던 반려동물이 마중 나온다는 얘기가 있다. 나는 이 이야기를 무척 좋아한다.”
사랑하는 반려동물과의 이별은 언제나 힘들다. 나 역시 어린 시절 병아리, 햄스터, 고슴도치를 키워본 경험이 있다. 비록 작은 동물들이었지만 그들에게 주었던 애정만큼은 작지 않았기에, 떠나보낼 때마다 마음이 많이 아팠던 기억이 난다. 그 후 인터넷에서 위의 문구를 접했을 때 큰 위로를 받았다. 사랑했던 반려동물과 다시 만날 수 있다는 상상, 그리고 그때는 더 잘해줄 수 있을지도 모른다는 희망 때문이었으리라.
나와 비슷한 위로를 받았던 게임 개발사가 있었던 걸까. 이 문구에서 영감을 받아 만들어진 게임이 바로 크래프톤의 자회사 드림모션에서 개발한 <마이 리틀 퍼피>다.
주인을 찾아 떠나는 봉구의 모험

게임의 첫 장면은 ‘강아지 천국’에서 시작된다. 주인공인 웰시코기 ‘봉구’는 주인을 기다리고 있지만, 다른 강아지들의 주인이 하나둘 도착하는 동안에도 봉구의 주인은 끝내 나타나지 않는다. 그러던 중 희미하게 풍겨오는 주인의 냄새를 맡게 된 봉구는, 직접 주인을 마중 나가기로 결심한다.

봉구의 결심은 대견하지만, 그 앞에는 무시무시한 괴물과 위험한 환경, 그리고 도움을 필요로 하는 다른 강아지들이 기다리고 있다. <마이 리틀 퍼피>는 봉구가 주인의 냄새를 따라 이 모든 난관을 헤치고 나아가 결국 주인을 만나게 되는 이야기를 담고 있다.
귀여운 디테일이 살아있는 액션 어드벤처

게임의 장르는 액션 어드벤처로, 다양한 퍼즐과 맵으로 구성되어 있다. 각 맵마다 봉구가 해결해야 할 과제가 주어지며, 이를 하나씩 해결해 나가다 보면 어느새 마지막 장에 다다르게 된다. 플레이하는 내내 코기의 귀여운 움직임을 볼 수 있는데, 개발팀이 실제 강아지의 행동을 세심하게 관찰했다는 점이 느껴진다. 특히 다른 강아지를 만났을 때 냄새를 맡으며 인사하는 모션 등 사소하지만 사랑스러운 디테일이 인상 깊다.

강아지의 시선으로 바라본 세상

게임의 UI 또한 전체적인 콘셉트에 맞게 아기자기하게 구성되어 있다. 모든 캐릭터가 아이콘과 말풍선을 통해 소통하는 방식도 게임의 분위기와 잘 어울리며 재미를 더한다. 실제 게임 내에서는 사람은 말을 하지 않는다. 오직 봉구와 강아지만 소리가 있고 자막도 봉구에게만 달린다. 이 점이 플레이어가 봉구에게 더욱 몰입하게 만드는 요소 중 하나라고 느껴졌다.
개성 넘치는 캐릭터와 반가운 얼굴들

캐릭터 디자이너의 시선으로 보았을 때, 천사장 할아버지와 천사들, 인간 캐릭터까지 각자의 개성이 또렷하게 드러난다는 점이 특히 인상적이다. 다른 강아지들과 주인들의 사연이 자연스럽게 궁금해지는 디자인 덕분에 캐릭터에 더욱 몰입하게 된다. 게임 곳곳에는 강아지 관련 까메오도 등장한다. 우리에게 친숙한 ‘존 윅’을 연상시키는 캐릭터를 만나는 재미도 숨어 있어, 이를 찾아보는 것도 하나의 즐거움이다.
수채화풍으로 그려낸 추억과 이야기

매 챕터마다 봉구와 주인의 이야기를 삽화처럼 감상할 수 있다. 동화책을 떠올리게 하는 수채화풍 그림은 스토리와 게임의 감성을 한층 더 살려준다. 이야기가 진행될수록 봉구와 주인의 관계가 조금씩 드러나며, 그에 따라 플레이어의 몰입도 역시 자연스럽게 깊어진다.
슬픔을 강요하지 않는 담담한 위로
게임의 전반적인 분위기는 끝까지 담담하다. 봉구가 각 챕터에서 해결하는 퍼즐과 보상은 봉구와 주인의 추억과 맞닿아 있다. 또한 봉구뿐 아니라 다른 강아지들과 캐릭터들의 어려움을 도와주며 그들의 이야기도 함께 마주하게 된다. 반려동물을 잃은 아픔뿐 아니라 안락사, 강아지 공장 같은 사회적 문제도 조심스럽게 다루며, 강아지들이 처할 수 있는 다양한 현실을 비춘다.

이 게임이 특히 인상 깊었던 이유는 슬픔을 플레이어에게 직접적으로 강요하지 않는다는 점이다. 눈물을 유도하는 과장된 연출 대신, 봉구의 행동과 주변 환경을 통해 감정을 전달한다. 그래서 플레이어는 봉구와 주인, 그리고 다른 캐릭터들의 감정을 자연스럽게 받아들이게 된다. 이 담담한 연출 방식이 오히려 이별이라는 주제를 더 진솔하게 느끼게 만든다.
누구나 즐길 수 있는 편안한 난이도

게임을 잘하지 못하는, 이른바 ‘똥손 게이머’에게도 이 게임의 난이도는 부담스럽지 않았다. 달리기, 점프 등 컨트롤을 요하는 구간도 몇 번의 재도전으로 충분히 극복할 수 있었고, 비교적 컨트롤 부담이 적은 퍼즐도 함께 배치되어 있어 어려운 게임에서 느끼는 스트레스 없이 편안하게 즐길 수 있었다. 또한 키가 작은 강아지 봉구는 다리가 짧은 슬픈 코기답게 다른 키가 크거나 덩치가 큰 강아지들에게 도움을 받기도 하면서 퍼즐을 푸는데, 그 장면이 귀여워서 웃음이 나왔다.
변화무쌍한 모험의 공간들
챕터마다 바다, 사막, 동굴 같은 다양한 맵을 체험하면서 단조롭지 않고 변화무쌍한 즐거움을 느낄 수 있었다. 바다에서는 바다의 괴물, 사막에서는 사막의 괴물 등 환경에 따라 변화하는 몬스터들을 피해서 봉구가 주인의 냄새를 찾아가야 한다. 메인 타이틀 화면 역시 챕터에 따라 변화해, 게임을 껐다가 다시 켤 때마다 달라진 분위기를 만나는 소소한 재미도 있다.

총평: 애도와 추억 사이에서
게임을 모두 마치고 난 뒤에는 봉구와 주인의 재회가 긴 여운으로 남았다. 이 게임은 어떠한 교훈을 플레이어에게 전달하기보다는 각 캐릭터의 사연과 상황을 담담하게 전달한다. 이미 떠나보낸 존재를 다시 붙잡을 수는 없지만, 그 시간을 어떻게 기억할 것인지는 선택할 수 있다는 생각이 들었다.

<마이 리틀 퍼피>는 반려동물의 죽음을 애도하는 또 하나의 방법이 될 수 있는 게임이라고 생각한다. 사랑하는 반려동물을 떠나보낸 경험이 있는 사람이라면, 이 게임이 따뜻한 위로가 되어줄지도 모른다. 다만 마음의 정리가 어느 정도 된 후에 플레이하길 권한다.
물론 귀여운 캐릭터와 감성적인 이야기를 좋아하는 사람에게도 추천할 만한 작품이다. 나 역시 캐주얼 어드벤처 장르에 능숙하지 않지만, 평소 즐겨보던 스트리머의 플레이를 보고 직접 경험해 보고 싶다는 생각이 들었다. 그리고 실제로 플레이를 마친 지금, 이 따뜻한 이야기를 누군가에게 꼭 전하고 싶어졌다. 그만큼 조용하지만 오래 남는 경험이었다.

클라이언트의 요청을 여러 개의 멀티 인스턴스 형태 서버에 로드밸런싱하려면, 앞단에서 패킷을 받아 포워딩해주는 로드밸런서 서버가 필요하다. 하지만 일반적인 로드밸런서는 애플리케이션 단까지 패킷을 수신하고 다시 전송하기까지 비용이 크다. NIC에서 수신된 패킷을 기반으로 커널 내에서 SKB를 만들고, 만들어진 SKB는 리눅스 커널 네트워크 스택을 통과한다. 이후 유저 영역의 소켓 버퍼로 메모리를 복사해야 하는데, 이 과정에는 컨텍스트 전환이 포함돼 비용 소모가 크다.
이번 챕터에서는 NIC에서 수신된 패킷을 리눅스 커널 네트워크 스택을 태우지 않고, 유저 영역으로의 메모리 카피도 하지 않는 제로카피 방식으로 원하는 서버로 패킷을 포워딩하는 기법인 eBPF/XDP를 소개한다.
더불어, XDP 기반 로드밸런서가 일반적인 L4, L7 Nginx 로드밸런서 대비 레이턴시(Latency), RPS(초당 요청 처리 수), CPU 사용량 측면에서 어느 정도의 성능 향상을 가져오는지 측정하고 분석해 본다.

참고: 이 글은 리눅스 네트워크 스택의 상세 구조나 eBPF의 원론적 개념보다는 XDP, Veth(가상 이더넷) 환경에서의 동작 원리, 그리고 퍼포먼스 측면에 집중하여 서술한다.
eBPF란 무엇인가?
본격적으로 eBPF/XDP를 설명하기 앞서, eBPF의 기본 개념을 간략히 짚고 넘어간다.

본 내용은 XDP를 설명하기 위한 배경 지식이므로, eBPF Virtual Machine이나 Verifier의 상세 동작보다는 역할 위주로 설명한다.
eBPF는 본래 BPF(Berkeley Packet Filter)에서 유래했으나, extended BPF로 발전하며 패킷 필터링을 넘어 관찰 가능성(Observability), 트레이싱(Tracing), 보안 등 다양한 기능을 수행하게 되었다. 이제는 약어로서의 의미보다 독립적인 기술 용어로 통용된다.
eBPF 프로그램은 이벤트 기반으로 동작하며, 커널이나 애플리케이션이 특정 훅(Hook) 지점을 통과할 때 실행된다. 주요 훅 지점은 다음과 같다.
- System Calls
- Kernel/User Tracing
- Network Events
- Function Entry/Exit
eBPF 프로그램은 커널 공간(Kernel Space)에서 동작하기 때문에 안정성이 매우 중요하다. 따라서 엄격한 Verifier(검증기)를 통해 코드에 위험 요소(예: 패킷 포인터 접근 시 경계 초과 등)가 없는지 확인한 후, JIT Compiler를 통해 실행된다. 검증기의 제약으로 인해 일반적인 함수 사용이 제한되므로, eBPF는 특수한 형태의 커널 헬퍼 함수(Helper Function)를 제공한다.
즉, eBPF는 크게 BPF MAP, Virtual Machine, Verifier 세 가지 핵심 요소로 구성된다.
XDP(eXpress Data Path)
XDP(eXpress Data Path)는 프로그래밍 가능한 패킷 처리 기술이다. 과거에 많이 언급되던 DPDK는 커널을 우회하기 때문에 보안과 안정성을 보장하기 어렵다는 한계가 있었다. 반면 XDP는 eBPF 프로그램이 검증기와 JIT을 통해 커널 공간에서 안전하게 실행된다. 또한 XDP는 리눅스 커널의 일부로 구현돼 있어 리눅스 네트워크 스택과 완전히 통합된다.
그렇기 때문에 프로그래머는 커널과 사용자 공간 사이의 컨텍스트 전환 없이(Native 기준), 패킷이 NIC에 도착해 CPU에서 처리되는 가장 빠른 시점에 XDP 프로그램을 실행해 패킷 처리 결정 또는 조작 등을 구현할 수 있다.
작성된 XDP 프로그램은 종료 시 Action이라는 정수형 반환값을 필요로 하며, 지원되는 값은 다음과 같다.
XDP_ABORTED: 패킷을 DROP 함과 동시에 예외(Exception)를 발생시킨다.XDP_DROP: 패킷을 즉시 폐기한다.XDP_PASS: 패킷을 리눅스 커널의 네트워크 스택으로 올려 보낸다.XDP_TX: 수신했던 NIC로 패킷을 다시 내보낸다. (로드밸런서 구현의 핵심)XDP_REDIRECT: 패킷을 다른 NIC, 다른 CPU, 또는 사용자 공간(AF_XDP)으로 전달한다.- Note:
XDP_REDIRECT는 다른 Action과 달리 별도의 BPF Helper 함수를 필요로 한다.
- Note:

위 그림에서 알 수 있듯이, XDP_REDIRECT는 커널 네트워크 스택을 우회해 다른 대상으로 전달하고, XDP_PASS는 기존처럼 커널 네트워크 스택을 타도록 한다. XDP_TX는 수신했던 NIC로 패킷을 재주입한다. XDP 로드밸런서가 XDP_TX 액션 값을 이용해 패킷을 Link Layer에서 처리한다는 점에서 매우 중요한 개념이다.
XDP 실행 흐름과 Veth (Virtual Ethernet)
XDP가 무엇인지는 대략 감이 와도 “어디서, 어떻게 동작하는지”는 바로 와닿지 않을 수 있다. 실제로 XDP Program이 실행되는 과정을 짧게 살펴본다. 사용되는 시스템은 실제 호스트가 아닌 가상머신(virtual machine)과 가상이더넷(veth) 기반으로 진행할 예정이므로, 리눅스 커널의 veth를 중심으로 살펴본다.
또한 실제 XDP 프로그램을 veth에 attach할 예정인데, veth에 XDP 프로그램이 붙었는지 여부에 따라 동작이 달라진다. 이 부분도 집중적으로 살펴본다. XDP에는 Native와 Generic 모드가 존재하며, Generic 모드는 간단히만 보고 실제 구현과 동작은 Native 모드를 기준으로 진행한다.
XDP INSTALL & ATTACH
XDP 프로그램을 네트워크 인터페이스에 설치(Install)하고 연결(Attach)하는 커널 내부 로직을 살펴보자.
(Linux Kernel v6.11 ~ v6.17 기준)
/* drivers/net/veth.c */
static const struct net_device_ops veth_netdev_ops = {
.ndo_init = veth_dev_init,
.ndo_start_xmit = veth_xmit,
.ndo_bpf = veth_xdp,
.ndo_xdp_xmit = veth_ndo_xdp_xmit,
.ndo_get_peer_dev = veth_peer_dev,
};
/* drivers/net/virtio_net.c */
static const struct net_device_ops virtnet_netdev = {
.ndo_open = virtnet_open,
.ndo_stop = virtnet_close,
.ndo_start_xmit = start_xmit,
.ndo_bpf = virtnet_xdp,
};
/* net/core/dev.c */
static int dev_xdp_attach(struct net_device *dev, struct netlink_ext_ack *extack,
struct bpf_xdp_link *link, struct bpf_prog *new_prog,
struct bpf_prog *old_prog, u32 flags)
{
enum bpf_xdp_mode mode;
[...]
/* Generic or Native */
mode = dev_xdp_mode(dev, flags);
[...]
/* get xdp installation function */
bpf_op = dev_xdp_bpf_op(dev, mode);
[...]
/* install xdp hook */
err = dev_xdp_install(dev, mode, bpf_op, extack, flags, new_prog);
}
/* net/core/dev.c */
static bpf_op_t dev_xdp_bpf_op(struct net_device *dev, enum bpf_xdp_mode mode)
{
switch (mode) {
case XDP_MODE_SKB:
return generic_xdp_install;
case XDP_MODE_DRV:
case XDP_MODE_HW:
return dev->netdev_ops->ndo_bpf;
default:
return NULL;
}
}dev_XDP 프로그램을 설치하면 dev_xdp_attach를 호출해 XDP를 붙이는데, 이때 dev_xdp_mode를 통해 XDP 동작 모드를 Generic 또는 Native 중 하나로 선택한다. dev_xdp_install 내부에서 Generic의 경우 generic_xdp_install을 호출해 generic_xdp_needed_key 값을 세팅한다.
Generic 모드에서 해당 값이 세팅되면 __netif_receive_skb_core → do_xdp_generic을 호출해 XDP 프로그램을 실행한다. 함수 구조상 sk_buff 할당 이후에 실행되기 때문에, 일반적으로 알려진 “sk_buff 할당 이전에 실행되는 Native 모드”와 차이가 있고 성능도 떨어진다. 다만 모든 드라이버에서 동작 가능하다는 장점이 있어 테스트 환경 구성에는 유용하다.
그 외의 경우에는 ndo_bpf에 연결된 함수 포인터를 호출한다. virtio_net은 virtnet_xdp, veth는 veth_xdp가 된다. 실제 로드밸런서 구현에서 XDP 프로그램이 실행되는 곳은 veth이므로 이 구간을 살펴본다. NAPI는 아래 링크를 참고하면 좋다.
추가로 Offloaded 모드도 존재하는데, 이는 CPU가 아닌 NIC에서 XDP 프로그램이 처리됨을 의미한다.
/* drivers/net/veth.c */
static int veth_enable_xdp_range(struct net_device *dev, int start, int end, bool napi_already_on)
{
/* ... */
if (!napi_already_on)
netif_napi_add(dev, &rq->xdp_napi, veth_poll); // NAPI Polling 함수로 veth_poll 등록
/* ... */
return err;
}
veth_xdp에서 타고 들어가면 veth_enable_xdp_range를 확인할 수 있다. 이 구간을 통해 NAPI poll 함수 포인터에 veth_poll이 등록된다. 즉, NAPI가 활성화되고 polling 함수로 veth_poll을 사용한다는 의미다. 지금은 XDP 설치 및 실행 흐름이 핵심이므로, NAPI 자체에 대한 깊은 설명은 생략한다.
bpftrace를 사용하면 여기까지 실행되는지 확인할 수 있다.
$ sudo bpftrace -e 'kprobe:veth_enable_xdp_range { print(kstack); }'
Attaching 1 probe...
veth_enable_xdp_range+0
veth_xdp_set+312
veth_xdp+40
dev_xdp_install+116
dev_xdp_attach+512
bpf_xdp_link_attach+512
link_create+548
__sys_bpf+788
kprobe를 사용해veth_enable_xdp_range가 호출되는 시점에 커널 스택을 출력했다. 이 역시 eBPF 기반 커널 트레이싱 도구이며, 여기서도 eBPF의 편리함과 강력함을 확인할 수 있다.여기까지가 XDP 프로그램을 attach했을 때의 로직이다. NAPI 관련은 보여야 할 내용이 많아, 기회가 된다면 다른 챕터에서 다루고 싶다.
번외) veth가 Native XDP를 지원하나요? 2018년 커널 패치를 통해
veth드라이버에도 Generic이 아닌 Native XDP 지원이 추가되었다. 상세 내용은 [Merge branch ‘bpf-veth-xdp-support’] 커밋을 참고하기 바란다.
XDP EXECUTION Flow
로드밸런서를 구현하려면 XDP_PASS가 아니라 XDP_TX를 Action으로 반환하고, 패킷을 실제 서버로 전송해야 한다. 따라서 설치된 XDP 프로그램이 실행되는 구간과 XDP_TX를 반환했을 때의 동작 구조를 살펴볼 필요가 있다.
패킷 처리 과정에서 XDP Program을 실행시키는 공통 흐름은 bpf_prog_run_xdp 호출로 이어진다. veth 기준으로 해당 함수가 실행되기까지를 설명하자면 다음과 같다. 아래와 같이 was라는 network namespace를 만들고 veth를 배정한다.
# was라는 network namespace를 만든다.
$ sudo ip netns add was
# veth0, veth1쌍을 생성한다.
$ sudo ip link add veth0 type veth peer name veth1
# veth1를 was network namespace에 배정한다.
$ sudo ip link set veth1 netns was
# 배정 확인
$ sudo ip netns exec was ip link
# veth0에 10.10.0.2 IP 주소를 부여한다. veth1에도 10.10.0.3을 부여한다.
$ sudo ip a add 10.10.0.2/24 dev veth0
$ sudo ip netns exec was ip a add 10.10.0.3/24 dev veth1
# veth0, veth1 up으로 변경한다.
$ sudo ip link set dev veth0 up
$ sudo ip netns exec was ip link set dev veth1 up
# 삭제
$ ip netns del was
### 1
$ sudo ip link
13: veth0@if12 UP 0a:31:b3:03:2a:a9 <BROADCAST,MULTICAST,UP,LOWER_UP>
### 2
$ sudo ip netns exec was ip link
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
12: veth1@if13 UP fe:2d:16:44:5c:c4 <BROADCAST,MULTICAST,UP,LOWER_UP>ifindex가 각각 13, 12로 출력된다. 이 상태에서 was 네임스페이스에서 웹서버를 실행한다.
$ sudo ip netns exec was python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...그리고 다른 한쪽은 bpftrace로 트레이싱한다.
sudo bpftrace -e 'kfunc:dev_hard_start_xmit
{
if(args->dev->ifindex==2 || args->dev->ifindex==1) {
return;
}
printf("name=%s, ifindex=%d\n", argos->dev->name, args->dev->ifindex);
print(kstack);
}'
Attaching 1 probe...
name=veth0, ifindex=13
dev_hard_start_xmit+8
[...]
__tcp_transmit_skb+1156
tcp_connect+1168
tcp_v4_connect+964패킷 전송 시 콜스택을 보면 기본적으로 상위 레이어부터dev_hard_start_xmit → xmit_one → netdev_start_xmit → __netdev_start_xmit → ndo_start_xmit 흐름을 수행한다. ndo_start_xmit 함수 포인터는 앞에서 설명했듯 veth_xmit과 연결된다.
/* drivers/net/veth.c */
static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct veth_priv *rcv_priv, *priv = netdev_priv(dev);
rcv = rcv_dereference(priv->peer); // peer = veth1
[...]
// if xdp attached, use_napi=true
ret = veth_forward_skb(rcv, skb, rq, use_napi);
[...]
}
static int veth_forward_skb(struct net_device *dev, struct sk_buff *skb,
struct veth_rq *rq, bool xdp)
{
return __dev_forward_skb(dev, skb) ?: xdp ?
veth_xdp_rx(rq, skb) :
__netif_rx(skb);
}veth_xmit의 두 번째 인자인 struct net_device *dev는 전송자인 veth0이다. 내부에서 peer(veth1)를 꺼내 rcv에 저장한다.
- XDP가 꺼져 있는 일반 경우:
__netif_rx가 호출되고 내부적으로enqueue_to_backlog()가 실행돼, 패킷을 처리 중인 CPU의 백로그에 패킷을 넣는다. 그 CPU에 SoftIRQ를 트리거해 peer(veth1)의net_rx_action이 트리거되고process_backlog()가 호출돼 패킷을 처리한다. 물론 RSS가 켜져 있다면 다른 CPU로 이동 처리도 가능하다. - XDP가 설치된 경우:
veth_xdp_rx를 호출하고ptr_ring버퍼에 패킷을 주입한다.
/* drivers/net/veth.c */
static int veth_xdp_rx(struct veth_rq *rq, struct sk_buff *skb)
{
if (unlikely(ptr_ring_produce(&rq->xdp_ring, skb)))
return NETDEV_TX_BUSY; /* signal qdisc layer */
return NET_RX_SUCCESS; /* same as NETDEV_TX_OK */
}어느 경우든 패킷을 주입한 뒤 __napi_schedule()을 호출해 SoftIRQ가 raise된다. XDP가 붙어 있다면 veth_poll, 아니라면 process_backlog가 호출돼 수신된 패킷을 처리한다.
여기서 중요한 포인트는 다음이다.
__napi_schedule()호출은 veth0(전송자) 측에서 발생한다.veth_poll또는process_backlog호출은 veth1(수신자) 측에서 발생한다.
수신 처리 전에 지금까지 내용을 bpftrace로 확인해본다.
sudo bpftrace -e 'kfunc:__netif_receive_skb {
if(args->skb->dev->ifindex == 1 || args->skb->dev->ifindex == 2){
return;
}
printf("name: %s\n", args->skb->dev->name);
print(kstack);
}'
name: veth1
__netif_receive_skb+8
process_backlog+148
__napi_poll+72
net_rx_action+488
handle_softirqs+312
__do_softirq+32
____do_softirq+28XDP가 붙지 않으면 수신 측 콜스택은 위처럼 형성된다. XDP가 붙어 있다면 아래처럼 형성된다.
sudo bpftrace -e 'kfunc:napi_gro_receive {
if(args->skb->dev->ifindex == 1 || args->skb->dev->ifindex == 2){
return;
}
printf("name: %s\n", args->skb->dev->name);
print(kstack);
}'
name: veth1
napi_gro_receive+8
veth_xdp_rcv.constprop.0+732
veth_poll+152
__napi_poll+72
net_rx_action+488
handle_softirqs+312
__do_softirq+32
____do_softirq+28
/* drivers/net/veth.c */
static int veth_poll(struct napi_struct *napi, int budget)
{
[...]
done = veth_xdp_rcv(rq, budget, &bq, &stats);
[...]
}
static int veth_xdp_rcv(struct veth_rq *rq, int budget,
struct veth_xdp_tx_bq *bq,
struct veth_stats *stats)
{
for (i = 0; i < budget; i++) {
void *ptr = __ptr_ring_consume(&rq->xdp_ring);
if (veth_is_xdp_frame(ptr)) {
/* ndo_xdp_xmit */
[...]
frame = veth_xdp_rcv_one(rq, frame, bq, stats);
[...]
} else {
/* ndo_start_xmit */
struct sk_buff *skb = ptr;
[...]
skb = veth_xdp_rcv_skb(rq, skb, bq, stats);
if (skb) {
netif_receive_skb(skb);
}
[...]
}
done++;
}
[...]
}veth_xdp_rcv는 __ptr_ring_consume로 xdp_ring에서 데이터를 소비한다. 소비된 데이터는 veth_xdp_rcv_one 또는 veth_xdp_rcv_skb를 호출하며, 두 함수 모두 내부적으로 bpf_prog_run_xdp를 호출해 실제 XDP 프로그램을 실행한다.
XDP_PASS면netif_receive_skb등으로 커널 네트워크 스택 처리를 진행한다.XDP_TX면 아래 로직을 수행한다.
/* drivers/net/veth.c */
static struct sk_buff *veth_xdp_rcv_skb(struct veth_rq *rq,
struct sk_buff *skb,
struct veth_xdp_tx_bq *bq,
struct veth_stats *stats)
{
[...]
act = bpf_prog_run_xdp(xdp_prog, xdp);
[...]
switch (act) {
[...]
case XDP_TX:
veth_xdp_tx(rq, xdp, bq);
}
}
static int veth_poll(struct napi_struct *napi, int budget)
{
[...]
done = veth_xdp_rcv(rq, budget, &bq, &stats);
[...]
if (stats.xdp_tx > 0)
veth_xdp_flush(rq, &bq);
[...]
}XDP_TX를 반환하면 veth_xdp_tx가 호출돼 처리한 패킷을 frame으로 변환해 큐에 넣는다. 이후 veth_poll로 돌아오면 stats.xdp_tx가 0 이상이므로 veth_xdp_flush가 호출된다.
/* drivers/net/veth.c */
static int veth_xdp_xmit(struct net_device *dev, int n,
struct xdp_frame **frames,
u32 flags, bool ndo_xmit)
{
[...]
/* The napi pointer is set if NAPI is enabled, which ensures that
* xdp_ring is initialized on receive side and the peer device is up.
*/
if (!rcu_access_pointer(rq->napi))
goto out;
[...]
for (i = 0; i < n; i++) {
struct xdp_frame *frame = frames[i];
void *ptr = veth_xdp_to_ptr(frame);
__ptr_ring_produce(&rq->xdp_ring, ptr);
}
[...]
}
static void veth_xdp_flush_bq(struct veth_rq *rq, struct veth_xdp_tx_bq *bq)
{
[...]
sent = veth_xdp_xmit(rq->dev, bq->count, bq->q, 0, false);
[...]
}
static void veth_xdp_flush(struct veth_rq *rq, struct veth_xdp_tx_bq *bq)
{
[...]
veth_xdp_flush_bq(rq, bq);
rcv = rcv_dereference(priv->peer); // veth1이 수신이라면 상대는 veth0
rcv_rq = &rcv_priv->rq[veth_select_rxq(rcv)];
[...]
__veth_xdp_flush(rcv_rq);
}veth_xdp_xmit은 veth_xdp_tx가 bulk queue에 쌓아둔 frame을 __ptr_ring_produce로 xdp_ring에 주입한다.
if (!rcu_access_pointer(rq->napi))
goto out;여기서 혼동하기 쉬운 지점이 있다. 수신 측 가상 이더넷이 veth1이고 XDP_TX 상황이라면, veth1의 peer인 veth0을 꺼내 rcv에 저장한다. 그리고 전송할 데이터를 veth0에 주입해 veth0에서 veth_poll이 트리거되도록 만든다. 즉, veth1에만 XDP가 설치되면 안 된다. XDP_TX를 쓰려면 veth0, veth1 페어 모두 XDP가 설치돼야 하는 이유다.
이 함수 구간을 통해, 처음 말한 XDP_TX가 어떻게 수신했던 NIC로 패킷을 되돌리는지 확인할 수 있다.
veth는 터널링 개념이 있다는 걸 알면서도, 대부분 “veth1로 전송하면 바로 veth1로 가겠지”라고 생각하기 쉽다. ‘수신했던 네트워크 인터페이스로 돌려보낸다’고 하면 veth1을 떠올리는 것도 자연스럽다. 하지만 코드와 결과는 그렇게 단순하지 않다.
veth826ee2b와 pair인 eth0를 만들고, eth0는 네트워크 네임스페이스로 격리한 뒤 XDP_TX를 반환하는 XDP 프로그램을 붙인다. 또한 veth826ee2b에도 XDP_PASS를 반환하는 XDP 프로그램을 똑같이 붙인 뒤 아래 명령을 실행한다. 그리고 nc로 3-way handshake만 진행하는 패킷을 전달한다.
sudo bpftrace -e 'kfunc:veth_xdp_xmit{
printf("name: %s, ifindex: %d\n", args->dev->name, args->dev->ifindex);
}'
# 결과
name: eth0, ifindex: 2
name: eth0, ifindex: 2
name: eth0, ifindex: 2
sudo bpftrace -e 'kfunc:veth_poll{
printf("name: %s, ifindex: %d\n", args->napi->dev->name, args->napi->dev->ifindex);
}'
# 결과
name: eth0, ifindex: 2
name: veth826ee2b, ifindex: 183
name: eth0, ifindex: 2
name: veth826ee2b, ifindex: 183
name: eth0, ifindex: 2
name: veth826ee2b, ifindex: 183veth_xdp_xmit는 앞서 말했듯 XDP_TX를 리턴하면 호출되는 함수다. 3-way handshake는 클라이언트와 서버 간 3개의 패킷을 주고받으므로, 중간 로드밸런서에서 bpftrace를 걸었을 때 veth_xdp_xmit가 3번 모두 eth0로 찍히는 건 자연스럽다.
veth_poll 트레이싱 결과를 보면, 클라이언트가 로드밸런서로 패킷을 줬을 때 veth_poll이 트리거된다. 그리고 앞서 말했듯 XDP_TX를 반환하면(가상 이더넷 기준) 자신이 수신했던 인터페이스의 peer에게 패킷을 주입하고 __napi_schedule()을 호출해 peer의 veth_poll 호출을 유도한다. veth826ee2b 인터페이스에서는 변경된 MAC 주소 기반으로 브릿지를 통해 원하는 가상 인터페이스로 프레임이 전달된다. 이 부분은 XDP와 veth를 넘어서는 내용이므로 여기서는 다루지 않는다.
참고로 다른 조작된 패킷(MAC 주소)을 전송하는 함수는
br_handle_frame이다. 분석은 따로 하지 않고 넘어간다.
여기까지가 XDP 프로그램을 설치하고 XDP_PASS, XDP_TX일 때의 간략한 동작 과정이다. 앞서 언급했듯 XDP는 커널 내부 소스와 통합돼 있어 커널 안정성 기반으로 동작할 수 있다. 다만 드라이버마다 Native 모드 지원 여부는 다르며, 지원되지 않는 드라이버는 Generic 모드를 사용해야 한다.
NAPI, 네트워크 스택 등 실제 네트워크 구조에 대한 설명은 여러 부분 생략했다. 그 과정에서 예상치 못한 잘못된 내용이 있을 수 있으나, 큰 흐름을 이해하기 위한 구조로 봐주면 좋겠다.

위 그림은 지금까지 설명한 내용을 한 장으로 정리한 것이다. 제한된 공간에 담다 보니 네트워크 스택은 대체로 생략했다.
sudo bpftrace -e 'kprobe:br_handle_frame{ printf("handle\n"); }'로드밸런서
지금까지 XDP를 간단히 살펴봤다. 이제 이 글의 목적인 XDP 로드밸런서를 구현하고 테스트한다. XDP 로드밸런서는 2가지 방식과 DSR 방식이 존재하는데, DSR은 다음 기회에 살펴본다.
이번에 진행하는 방식은 구현 난도가 가장 낮은 방식이지만, 성능 측면에서 다음에 다룰 DSR(Direct Server Return) 방식보다는 좋지 않다.

위 모델은 XDP 로드밸런서를 구현할 때 베이스가 되는 구조라고 생각한다. XDP는 NIC에서 패킷 수신 후 리눅스 네트워크 스택에 진입하기 전에 실행되므로, ethernet frame, ip, tcp header 및 option 처리까지 필요하다.
XDP 프로그램이 트리거된 패킷은 목적지가 로드밸런서 쪽으로 돼 있기 때문에, 이를 원하는 서버 목적지 정보로 바꿔줘야 한다. 또한 IP Header, TCP Header가 수정되므로 각 checksum도 재계산해야 한다. 그리고 로드밸런서가 클라이언트와 서버 간 커넥션을 어떻게 유지할지도 중요하다. 아래 챕터에서 조금 더 자세히 살펴본다.
위 구조를 기반으로
Cilium eBPF를 사용해 코드 레벨 설명을 한다. 다만 설명을 위해 전체 코드가 아니라 부분적으로만 다룬다.
실제 내용을 진행하기 전에, eBPF에는 Verifier라는 검증기가 있다는 점을 다시 강조한다. XDP 프로그램 개발 시 패킷 데이터를 직접 접근·수정해야 하는데, 반드시 “접근 가능한 범위인지”, “경계를 넘지 않는지” 조건 검사를 기반으로 프로그래밍해야 한다.
데이터 자료구조 (BPF MAP)
로드밸런서는 클라이언트와 직접 커넥션을 맺지 않는다. 그런데 서버로 포워딩할 때 서로 다른 클라이언트가 동일한 소스 포트를 들고 오면, 포트 충돌로 TCP Sequence가 꼬일 수 있다. 그래서 로드밸런서 측은 클라이언트 소스 포트가 아니라 로드밸런서가 사용할 고유 포트를 하나 확보해 포워딩해야 한다.
아래 같은 상황이다.
# 1번 클라이언트
10.201.0.3:3282 -> 로드밸런서:3282 -> 서버1
# 2번 클라이언트
10.201.0.4:3282 -> 로드밸런서:3282 -> 서버1따라서 로드밸런서 측은 비어 있는 포트를 사용해야 한다.
struct session{
__u32 client_ip;
__u16 client_port;
__u32 server_ip;
__u16 server_port;
__u8 reserve;
__u8 used;
__u16 lb_port;
__u8 client_mac[ETH_ALEN];
__u8 server_mac[ETH_ALEN];
__u8 client_state;
__u8 server_state;
};
struct {
__uint(type, BPF_MAP_TYPE_HASH);
__uint(max_entries, MAX_SESSION);
__type(key, __u32);
__type(value, struct session);
} session_map SEC(".maps");
위 구조체를 value로 두고, key는 클라이언트 출발지 주소와 소스 포트 값으로 해시를 만든 뒤 최대 세션 수로 모듈러 연산을 한다. 결과값을 로드밸런서 포트 범위에 더해 나온 값을 key로 쓰고, 동시에 실제 서버로 전달되는 로드밸런서의 소스 포트로 활용한다.
포워딩할 서버 목록은 아래 자료구조로 두며, 유저 스페이스에서 등록한다.
struct server_config {
__u32 ip;
__u16 port;
__u8 mac[ETH_ALEN];
};
struct {
__uint(type, BPF_MAP_TYPE_ARRAY);
__uint(max_entries, SERVER_NUM);
__type(key, __u32);
__type(value, struct server_config);
} servers SEC(".maps");클라이언트 → 로드밸런서 → 서버
sudo ip netns exe client1 curl 10.201.0.4:8000클라이언트가 서버에 접속하려면 먼저 로드밸런서 주소에 접근한다. TCP라면 TCP 3 Way Handshake를 진행한다. 로드밸런서의 목적은 클라이언트와 3WH로 커넥션을 맺는 게 아니라, 패킷을 Forward하는 것이다. 그래서 3WH를 대상 서버와 진행할 수 있게 도와줘야 한다.
클라이언트가 첫 TCP 커넥션 요청을 하면 SYN 패킷을 보낸다. 로드밸런서 측에서 TCP header를 파싱했을 때 SYN 플래그가 켜져 있다면 첫 커넥션으로 보고 해시 테이블에 등록한다.
__u32 hash = get_two_hash(iph->saddr, tcph->source);
/* port_num == 로드밸런서 포트 */
__u32 port_num = (hash % MAX_SESSION) + 20000;
/* server_key는 실제 서버 갯수를 모듈러연산해서 결정하도록 한다. */
__u32 server_key = hash % SERVER_NUM;
if(tcph->syn) {
[...]
struct session ss = {
.client_ip = iph->saddr,
.client_port = tcph->source,
.server_ip = server->ip,
.server_port = server->port,
.lb_port = port_num,
.used = 1,
.client_state = ESTABLISHED,
.server_state = ESTABLISHED,
};
bpf_map_update_elem(&session_map, &port_num, &ss, BPF_NOEXIST);
}session 구조체를 만들었으니, 이제 실제 클라이언트의 목적지(MAC, IP, Port) 정보를 서버로 바꾼다. 그리고 출발지 정보(MAC, IP, Port)도 로드밸런서에서 온 것처럼 바꾼다.
__builtin_memcpy(eth->h_dest, ss->server_mac, ETH_ALEN);
__builtin_memcpy(eth->h_source, load_balancer_mac, ETH_ALEN);
tcph->source = ss->lb_port;
iph->saddr = load_balancer_ip;
iph->daddr = ss->server_ip;
iph->check = iph_csum(iph);
tcph->check = tcph_csum(tcph, iph, data_end);
return XDP_TX;IP Header, TCP Header가 변경됐기 때문에 checksum도 다시 계산해야 한다. 체크섬 계산은 BPF helper를 쓰거나 직접 word 단위로 반복문을 돌려 계산해도 된다. 다만 TCP 패킷 길이가 홀수인 경우 남는 1바이트도 계산에 포함해야 한다.
마지막으로 XDP_TX를 반환해 도착했던 NIC로 프레임을 재주입한다. 재주입된 프레임은 설정된 MAC/IP/Port를 기반으로 서버 측으로 전달된다.
서버 → 로드밸런서 → 클라이언트
서버로 전달된 패킷은 서버의 네트워크 스택에서 처리되고, 응답은 출발지(로드밸런서)로 전송된다. 로드밸런서가 패킷을 수신하면 TCP Header의 목적지 포트를 key로 session_map에서 세션을 찾아 클라이언트 정보를 복원한다.
__u32 port_num = tcph->dest;
struct session *ss = bpf_map_lookup_elem(&session_map, &port_num);session에는 클라이언트 MAC, IP, 실제 소스 포트가 저장돼 있다. 이를 기반으로 아래처럼 바꾸고 checksum을 재계산한다.
__builtin_memcpy(eth->h_dest, ss->client_mac, ETH_ALEN);
__builtin_memcpy(eth->h_source, load_balancer_mac, ETH_ALEN);
iph->saddr = load_balancer_ip;
iph->daddr = ss->client_ip;
tcph->dest = ss->client_port;
// 체크섬 계산
iph->check = iph_csum(iph);
tcph->check = tcph_csum(tcph, iph, data_end);조작된 패킷은 XDP_TX를 반환해 다시 도착했던 NIC로 재주입한다. 재주입된 패킷은 클라이언트에게 전달된다.
서버 측에서 RST 또는 FIN 플래그를 보내면 커넥션 종료로 보고 session_map에서 삭제한다.
if(tcph->rst) goto delete;
switch(ss->server_state) {
case ESTABLISHED:
if(tcph->fin) {
ss->server_state = FIN;
goto update;
}
break;
case FIN:
if(tcph->ack){
if(is_closed(ss)) goto delete;
}
break;
}
bpf_map_delete_elem(&session_map, &port_num);
RST는 맵에서 바로 삭제한다. FIN은 TCP 종료 절차를 고려해 클라이언트/서버 모두 FIN을 전송하고 ACK를 수신한 뒤 삭제한다.

위 그림은 로드밸런서 동작을 한 장으로 표현했다. 클라이언트(Users)가 로드밸런서 컨테이너로 패킷을 전송하면, 로드밸런서의 가상 네트워크 인터페이스(NIC-veth)에 패킷이 도착한다. 도착한 패킷은 XDP hook에 설치된 XDP 프로그램이 실행되며 MAC/IP/Port를 수정하고 XDP_TX를 반환한다. 그러면 도착했던 NIC로 재주입되고, 수정된 헤더 정보 기반으로 목표 서버로 포워딩된다. 반대로 로드밸런서가 XDP_PASS를 반환하면 로드밸런서의 커널 네트워크 스택을 타게 되고 iptables나 애플리케이션에서 처리된다.
퍼포먼스
레이턴시와 리소스 사용률을 확인하기 위해 다음 세팅으로 부하 테스트를 진행했다.
| Container | CPU | Memory | 포워딩 웹서버 |
|---|---|---|---|
| L7-NGINX | 1000m | 128Mi | 10.201.0.20, 10.201.0.21 |
| L4-NGINX | 1000m | 128Mi | 10.201.0.30, 10.201.0.31 |
| L2-XDP | 1000m | 128Mi | 10.201.0.5, 10.201.0.6 |
레이턴시
VUs 100, Reqs 1,000,000 / VUs 500, Reqs 1,000,000
| Container | Duration | P50 | RPS | Duration | P50 | RPS |
|---|---|---|---|---|---|---|
| L7-NGINX | 1m7.6s | 5.66ms | 14785 | 1m15.4s | 30.72ms | 13251 |
| L4-NGINX | 27.3s | 2.16ms | 36570 | 27.9s | 11.23ms | 35758 |
| L2-XDP | 19.3s | 1.26ms | 51652 | 18.9s | 5.72ms | 52700 |
VUs 1000, Reqs 3,000,000 / VUs 3000, Reqs 6,000,000
| Container | Duration | P50 | RPS | Duration | P50 | RPS |
|---|---|---|---|---|---|---|
| L7-NGINX | 3m54.4s | 32.2ms | 12793 | 4m26s | 31.87ms | 11273 |
| L4-NGINX | 1m30.3s | 12.61ms | 33188 | 1m9s | 6.79ms | 43502 |
| L2-XDP | 53.1s | 8.74ms | 56478 | 46s | 18ms | 65206 |
가상 유저 1000명, 전체 요청 3,000,000 기준으로 XDP 로드밸런서는 L7-NGINX, L4-NGINX 대비 각각 P50 기준으로 72.8% 감소, 30.7% 감소를 확인했다. 초당 요청 수는 각각 343.6%, 71% 증가율을 보였다.
리소스 사용량
VUs 100, Duration 10m / VUs 1000, Duration 10m
| Container | CPU | Memory | CPU | Memory |
|---|---|---|---|---|
| L7-NGINX | 0.574 | 6.96M | 0.588 | 16.5M |
| L4-NGINX | 0.440 | 5.32M | 0.53 | 11.3M |
| L2-XDP | 0.003 | 26.1M | 0.0045 | 23.4M |
VUs 3000, Duration 10m / VUs 5000, Duration 10m
| Container | CPU | Memory | CPU | Memory |
|---|---|---|---|---|
| L4-NGINX | 0.621 | 16.8M | 0.672 | 15.6M |
| L2-XDP | 0.0065 | 23.5M | 0.0247 | 23.1M |
리소스 사용량은 XDP가 앞선 이론에서 설명했듯(Native XDP 기준) 패킷이 NIC에 도착하고 CPU 처리의 가장 빠른 시점에 처리되기 때문에 CPU 사용량이 현저히 낮다는 점을 확인했다.


한계
제시한 로드밸런서 디자인은 Direct Server Return 방식이 아닌 NAT 방식으로 구성돼 있어, 성능 향상을 추가로 도모할 여지가 있다. 또한 단일 노드에서만 동작 가능하며 쿠버네티스 배포 시 다른 노드로 포워딩하는 디자인 모델을 제시하지 않았기 때문에 한계가 있다.
완전히 L2 레이어에서만 동작 중인 XDP 로드밸런서는 ingress에서만 XDP 프로그램 실행이 가능하고 egress에서는 불가능하다. 이는 TC 레벨에서 추가 작업이 필요함을 의미한다.
결론
NIC에 도착한 패킷을 처리하려면 커널 네트워크 스택을 거쳐 유저 스페이스 영역까지 패킷 데이터를 복사해야 한다. 전송 시에는 역과정으로 또 한 번 진행된다. 이 오버헤드는 불필요하다. 패킷을 수신 즉시 로드밸런싱 처리해 커널 네트워크 스택을 태우지 않고 전송한다면, 오버헤드가 줄어 레이턴시와 리소스 사용량도 자연스럽게 줄어든다.
이 개념은 쿠버네티스에서 kube-proxy 구현에도 적용될 수 있음을 시사한다.
요약
일반적인 로드밸런서나 쿠버네티스의 iptables, ipvs는 공통적으로 네트워크 스택을 타며, 패킷 메모리 카피가 발생하는 순간이 있다. XDP 프로그램은 NIC에서 오프로딩돼 실행될 수 있고, 네트워크 스택을 거치지 않기 때문에 일반적으로 빠르다고 볼 수 있다.
다만 단일 시스템에서 network namespace만 나눈 상태에서 진행한 테스트라 CPU 사용량까지 더 정교한 의미로 해석하기 어려웠던 점은 아쉽다. eBPF/XDP는 지금도 발전 중이며 커널 코드에 많은 기여가 발생하고 있다는 점은 분명하다. 추후 활용 사례가 더 늘어날 것이라고 생각한다.
참고문헌
- Parallelizing Packet Processing in Container Overlay Networks
https://par.nsf.gov/servlets/purl/10297243 - Tour Around Kernel Stack
https://wtao0221.github.io/2019/04/11/Tour-Around-Kernel-Stack/ - Linux Network Receive Stack
https://people.redhat.com/pladd/MHVLUG_2017-04_Network_Receive_Stack.pdf
