[컴투스 건강검진 제도 소개] 임직원 건강 지킴이
“지금 당장 바쁜데 검진 받을 시간이 어디 있어?” 스스로에게 핑계를 대며 건강검진을 차일피일 미루다 보면, 어느새 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
AWS re:Invent란 무엇인가


AWS re:Invent는 전 세계 클라우드 개발자, 엔지니어, 아키텍트가 한자리에 모이는 연례 최대 클라우드 기술 컨퍼런스다. 매년 미국 라스베이거스에서 열리는 이 행사는 2025년 11월 30일부터 12월 4일까지 5일간 진행되었으며, 6만여 명이 참석했다. 기조연설에서 발표되는 AWS의 최신 서비스와 기능, 수백 개의 기술 세션, 핸즈온 랩, 워크숍이 펼쳐지며 클라우드 기술을 깊이 있게 학습할 수 있다. Expo와 네트워킹 이벤트, 각종 커뮤니티 활동이 함께 열려 AWS 파트너, 고객, 개발자들이 직접 만나 경험을 공유하고 협업 기회를 찾을 수 있는 IT 업계 최대 축제다.
행사 참가를 위해서는 철저한 사전 준비가 필요하다. Full Pass 구매는 필수인데, 2025년 기준 가격은 $2,099로 현재 환율로 약 300만 원에 달한다. 패스 구매 후에는 즉시 세션 예약을 진행해야 한다. 인기 세션은 조기 마감되는 경우가 많지만, 예약하지 못했더라도 Walk-up으로 현장 입장이 가능하다.
re:Invent는 준비 과정부터가 시작이다. 성공적인 참관을 위해 필수적인 몇 가지 요소를 정리했다.
패스 구입 및 세션 예약

참가를 위해서는 Full Pass($2,099, 한화 약 300만 원 이상)를 구매해야 한다. (파티 전용인 re:Play 게스트 패스와 혼동하지 말 것). 패스 구입이 완료되면 세션 예약이 활성화된다. 인기 세션은 순식간에 마감되므로 오픈 즉시 예약하는 것을 추천한다. 예약에 실패했더라도 현장에서 줄을 서서 입장하는 ‘Walk-up’ 제도를 활용할 수 있다.
여행 및 현지 준비
- 비자(ESTA): 미국 입국을 위해 ESTA 발급은 필수다. 절차는 간단하지만 승인까지 시간이 걸릴 수 있으므로 미리 신청해야 한다. (수수료 발생)
- 날씨 및 복장: 12월의 라스베이거스는 한국의 늦가을 날씨(낮 13~15도, 밤 3~5도)와 비슷하다. 일교차가 크고 사막 기후 특성상 매우 건조하다. 보습제(수분 크림, 립밤)와 밤공기를 막아줄 두툼한 외투가 필수다.
- 기타: 12시간이 넘는 비행을 견디기 위한 목베개, 안대, 귀마개 등 편의 용품도 챙기는 것이 좋다.

Keynotes: 2025년, AWS가 주목한 5가지 핵심


키노트 세션은 re:Invent의 핵심이다. 좌석은 선착순이기 때문에 이른 시간부터 대기 줄이 길게 늘어선다. 2025년 키노트에서 가장 많이 회자된 주요 발표는 다음 다섯 가지로 요약할 수 있다.
Trainium3 & AI Factory / Project Rainier

Trainium3는 이전 세대 대비 4배의 성능과 메모리를 제공하며, 최대 40% 효율 향상을 자랑한다. 144칩 UltraServer와 최대 100만 개 칩까지 확장 가능한 Ultra Cluster로 초대형 LLM 학습과 추론을 겨냥한 것이 특징이다. Anthropic 전용 초대형 Trainium2 클러스터인 Project Rainier는 AI Factory(전용 AI 캠퍼스) 개념을 구현한다. 특정 고객에게 거대한 AI 슈퍼컴퓨터를 통째로 제공하는 모델이 강조되었다.
Frontier Agents & Kiro

장기 복잡 업무를 처리하는 Frontier Agents 개념이 처음 공개되었다. 보안, DevOps 등 도메인별 에이전트가 Nova, AgentCore, S3 Vectors, CloudWatch 통합 데이터를 활용해 실제 운영 업무까지 처리한다는 방향성이 제시되었다. 개발자를 위해서는 스펙 기반 자동 코딩, 리팩터링, 테스트를 수행하는 Kiro가 정식 출시되었다. Kiro Powers는 외부 SaaS 및 AWS 서비스와 연동되는 가상 팀원 같은 개발자 에이전트다. 현장에서 직접 체험할 수 있는 Kiro 부스가 운영되었다.
Amazon Nova 2 패밀리 & 오픈 모델 확대

AWS 자체 LLM 라인업인 Amazon Nova 2 패밀리(Lite, Pro, Sonic, Omni 등)가 발표되었다. 저비용 일상 자동화부터 복잡한 에이전트, 멀티모달 작업까지 커버하는 자체 모델 전략이 강화되었다. 동시에 Google Gemma, Nvidia Nemotron, Mistral Large 3, Ministral 같은 오픈 및 서드파티 모델을 Bedrock에 추가해, 한 플랫폼에서 다양한 모델을 선택할 수 있는 모델 허브 방향이 재확인되었다.
Lambda Durable Functions

최대 1년간 지속되는 장기 AI 및 비즈니스 워크플로를 구현할 수 있는 Lambda Durable Functions가 공개되었다. 이벤트나 사람의 승인 대기 구간에서는 비용 없이 멈췄다가, 체크포인트에서 다시 이어서 실행할 수 있다. 에이전트가 실제 비즈니스 프로세스를 끝까지 수행한다는 메시지를 뒷받침하는 핵심 서버리스 기능으로, 인수인계, 승인 대기, 다단계 작업 자동화에 즉시 활용 가능한 업데이트로 큰 관심을 받았다.
S3 & 벡터/데이터 레이어 업그레이드
S3 단일 오브젝트 최대 크기가 50TB로 확대되었고, Batch Operations 성능은 10배 향상되었다. S3 Tables의 Intelligent-Tiering과 자동 복제 기능으로 대형 데이터 및 AI 파이프라인용 스토리지가 대폭 강화되었다. S3 Vectors 정식 출시(버킷당 최대 20억 벡터)와 OpenSearch의 GPU 기반 벡터 인덱싱으로, 스토리지+검색+벡터 인덱스를 한 생태계에서 처리하는 대규모 RAG 및 에이전트 인프라 구조가 완성되었다는 평가를 받았다.
주요 세션: 인프라와 보안의 미래를 엿보다

사전 예약한 세션은 주로 MGM Grand에서 진행됐다. 공식 앱을 통해 세션장 이동 경로를 확인할 수 있어, 여러 호텔을 오가야 하는 일정에서도 큰 혼란은 없었다. 이번 참관에서는 인프라와 보안, 네트워킹 중심의 세션을 집중적으로 수강했다.


AWS Security Agent (프리뷰)
AWS Security Agent는 re:Invent 2025에서 소개된 프론티어 에이전트로, AI 기반 자동화로 앱 보안을 설계, 코드, 배포 전 과정에서 사전 예방한다. 설계 검토, 코드 분석, 앱 아키텍처에 맞춘 온디맨드 침투 테스트를 수행하며, 취약점 발견 시 Pull Request로 자동 수정을 제안한다. 버지니아 북부 리전에서 미리 보기 서비스로 제공되며, 개발 속도를 유지하면서 보안 커버리지를 확장하는 데 초점을 맞췄다.
Amazon CloudWatch Investigations (한국 미지원)
Amazon CloudWatch Investigations는 생성형 AI로 인시던트 원인을 자동 분석하는 기능이다. 새로 추가된 인시던트 리포트 생성은 텔레메트리와 조사 결과를 자동으로 종합해 타임라인, 영향 분석, 권장 조치를 포함한 보고서를 만든다. 5 Whys 분석은 Amazon Q 챗으로 반복적인 원인 분석을 수행해 근본 원인을 도출하고, 이를 리포트에 자동 반영해 사후 학습을 지원한다.
AWS CloudFront Edge (서울 리전 지원)
CloudFront는 에지 컴퓨팅과 보안 강화 기능을 중점적으로 소개했다. CloudFront Functions에 에지 위치 메타데이터, 원시 쿼리 스트링, 고급 오리진 오버라이드(SNI 커스터마이징)가 추가되어 지오 라우팅, 멀티테넌트 보안, 정밀한 콘텐츠 전달을 지원한다. Lambda@Edge, WAF, Shield 통합으로 AI 워크로드와 모바일 트래픽 대응성을 높였으며, Atlassian 사례에서는 지역 스티어링으로 지연 25% 감소와 비용 절감을 달성했다.
세션들을 통해 AWS의 에이전트 기반 자동화 철학이 보안, 운영, 네트워킹 전반에 얼마나 깊이 적용되었는지 실감했다. Security Agent로 개발 라이프사이클 초반부터 취약점을 선제 차단하고, CloudWatch 5 Whys로 몇 시간 걸리던 근본 원인 분석을 자동화할 수 있다는 점이 현업에 즉시 적용 가능한 가치로 느껴졌다. 서울 리전에서 CloudFront Edge를 지원한다는 소식은 멀티클라우드 인프라 운영에서 글로벌 최적화를 한층 더 효율적으로 할 수 있게 해준다.
AWS re:Invent A to Z: 현장 꿀팁

블로그 정보와 실제 경험을 바탕으로, 행사를 200% 즐기기 위한 팁을 정리했다.
뱃지부터 SWAG까지


AWS re:Invent 입장권인 뱃지를 가장 먼저 수령해야 한다. 뱃지 없이는 행사장 입장이 불가능하다. 라스베이거스 공항과 주요 호텔에서 수령할 수 있으며, 공항에서는 수화물을 기다리는 시간에 빠르게 수령할 수 있었다. 뱃지 수령을 위해서는 등록 QR코드와 신분증이 필요하다.
뱃지 수령 후 SWAG 존에서 기념품을 받을 수 있다. 기본으로 후드 티와 물병이 제공된다. 기본 SWAG 외에도 다양한 미션을 완료하면 추가 기념품을 획득할 수 있으며, 몇 가지 미션을 완료하면 AWS Builder 자켓을 받을 수 있다.


셔틀버스와 이동 전략


각 호텔마다 셔틀버스가 운영된다. 메인 세션장인 Venetian 호텔과 Mandalay Bay 호텔, Wynn, MGM Grand, Caesars Forum까지 이동할 수 있다. 지정된 위치에서만 탑승과 하차가 가능하므로, 다른 곳으로 이동할 때는 우버를 이용해야 한다.

EXPO에서 만난 미래 기술


EXPO는 AWS 및 파트너의 최신 클라우드와 AI 기술 데모와 부스를 직접 체험하고 네트워킹할 수 있는 전시 공간이다. 라이브 데모를 통해 최신 기술을 접할 수 있으며, 부스를 돌아다니며 다양한 기념품도 받을 수 있었다.
무료 식사와 간식



호텔에 마련된 공간에서 식사를 할 수 있는데, 빵을 비롯한 간단한 먹거리가 제공된다. 행사장 곳곳에 음식이 진열되어 있어 언제든 먹을 수 있었다. 냉장고에서 탄산음료를 마음껏 꺼내 마실 수 있었다.
5K 레이스로 시작하는 아침


AWS re:Invent 기간 중 5K 마라톤이 개최된다. 참가를 위해서는 Quirky Events Desk를 방문해야 한다. 선착순으로 Bib이 제공되지만, 당일 현장에서도 등록이 가능하다. 라스베이거스 도로를 달릴 수 있는 재미있는 이벤트다. 각 호텔의 셔틀 탑승장에서 오전 5시 15분에 셔틀을 타고 Mandalay Bay로 이동할 수 있으며, 짐 보관과 음료, 간단한 먹거리가 제공된다.


네트워킹 이벤트
APJ on Tour 킥오프 파티


AWS APJ on Tour 킥오프 파티는 아시아 태평양 지역 참가자들을 위한 네트워킹 이벤트다. 2025년 12월 1일 라스베이거스 Drai’s Nightclub에서 저녁 7시부터 열렸으며, DJ 공연과 음식으로 즐거운 교류 시간을 제공했다.
re:Play
AWS re:Invent 2025의 re:Play는 행사 마지막 날인 12월 4일 밤에 열리는 대규모 파티 이벤트다. 라이브 음악, 게임, 음식 등을 즐길 수 있는 네트워킹 공간으로, 참가자들이 AWS 컨퍼런스의 피로를 풀며 자유롭게 교류할 수 있었다.
특별한 체험 부스


Adobe를 이용해 나만의 코카콜라 캔을 만들 수 있는 부스가 있었다. 줄이 길어 체험은 하지 못했지만, 창의적인 기획이 인상적이었다. 네일아트를 받을 수 있는 부스도 마련되어 있었다.
마치며

AWAWS는 서울 리전이 처음 생긴 2016년에 처음 접했다. 온프레미스에서 퍼블릭 클라우드로의 전환은 짧은 시간에 IT 생태계를 완전히 바꿔놓았고, re:Invent 2025 참관은 그 변화의 최전선을 직접 경험한 소중한 기회였다.
Trainium3, Kiro, Nova 2 같은 혁신을 보며, DevOps와 멀티클라우드 전문가로서 앞으로의 인프라 자동화와 AI 에이전트 도입이 필수임을 깨달았다. 이번 행사는 기술 학습뿐 아니라 글로벌 네트워킹의 가치를 새삼 확인시켜 주었고, 한국 클라우드 커뮤니티에 공유할 동력이 되었다. 앞으로 re:Invent를 준비하는 이들에게 이 기록이 작은 길잡이가 되기를 바란다.
유저와 함께 만들어가는 게임

라이브 서비스를 하는 게임이 장기적으로 사랑받기 위해서는 출시 당시의 완성도도 중요하지만, 유저의 의견을 적극 수렴하며 지속적으로 개선해나가는 과정이 더욱 중요하다.
처음부터 모두에게 만족스러운 게임을 만들기는 힘들다. 그렇기에, 개발사가 유저와의 소통을 통해 게임의 방향성을 점검하고, 함께 더 나은 경험을 만들어가는 것이야말로 라이브 서비스의 핵심이라 할 수 있다.
출시 100일을 향해 달려가던 시점에 진행된 ‘더 스타라이트’의 세 번째 개발자 라이브 방송은, 그런 의미에서 지금까지의 흐름을 정리하고 다음 단계를 준비하는 자리였다. 2025년 12월 17일, 정성환 대표가 직접 참여한 이 라이브 방송은 게임의 현주소를 공유하고, 앞으로의 방향성을 유저와 함께 짚어보는 시간으로 채워졌다. 라이브가 진행된 지는 어느 정도 시간이 지났지만, 그 안에서 전해진 메시지는 여전히 현재의 더 스타라이트를 이해하는 데 중요한 기준점이 된다.
이번 기사에서는 세 번째 개발자 라이브 방송의 주요 내용을 정리하고, 이를 통해 드러난 더 스타라이트가 지향하는 방향성을 살펴본다. 더불어 새롭게 추가된 콘텐츠인 ‘아스터’, ‘길드 던전’, ‘자동 스케줄’을 정리하고, 현재 시점에서 함께 챙겨볼 만한 이벤트와 패키지도 소개하고자 한다.
- 라이브 방송의 주요 내용과 함께 진행 중이거나 예정된 이벤트 정리는 공식 커뮤니티에서도 확인 가능하다.
유저와 함께 성장하는 게임

방향성: 소통으로 완성되는 게임
이번 개발자 라이브 방송을 통해 느낀 가장 큰 인상은, 더 스타라이트가 유저와의 소통을 게임 운영의 중요한 축으로 두고 있다는 점이다. 유저의 존재 없이는 게임 서비스가 지속될 수 없다는 사실은 당연하지만, 실제 운영 과정에서 이를 꾸준히 실천하는 일은 결코 쉽지 않다.
라이브 방송에서 정성환 대표와 개발진은 채팅으로 올라오는 유저들의 개별적인 의견과 질문을 놓치지 않고 답변했다. 이는 단순한 이벤트성 소통이 아닌, 유저와 진정으로 함께 게임을 만들어가겠다는 의지의 표현이었다. 특히 캐릭터 밸런스와 전투 시스템 개선을 약속하며 구체적인 패치 계획을 공유한 점은 유저들에게 신뢰를 안겨주었다.
추가 콘텐츠: 전투력 향상의 핵심, 아스터 시스템
아스터 기본 개념

이전 게시글을 통해 전투력을 올리는 법을 소개했다. 이번에는 전투력을 올리는 또 다른 성장 시스템인 ‘아스터’에 대해서 소개하고자한다.
아스터는 총 4개의 석판으로 구성되며, 각 석판에는 6개의 아스터가 존재한다. 석판은 해금 조건에 따라 순차적으로 개방된다.
아스터는 일반, 고급, 희귀, 영웅 등급으로 아이템과 동일한 등급 구조를 갖고 있다. 비교적 수급이 쉬운 일반 등급 아스터만으로도 전투력 상승 효과를 체감할 수 있다는 점이 특징이다.
다만 어떤 아스터를, 어떤 석판 문양과 함께 구성하느냐에 따라 효율 차이가 꽤 크게 발생한다.


아스터 세트 효과 전략
아스터 세트는 총 4종이 존재하며, 석판 문양 역시 세트 개념으로 구성돼 있다. 기자 개인적으로는 ‘명예’와 ‘광휘’ 세트를 중심으로 맞추는 구성을 추천한다. 이전에는 ‘찬란’ 세트도 선택지로 고려할 수 있었지만, 자동 스케줄 업데이트 이후 회피 옵션의 체감 가치가 다소 낮아졌다.
아스터를 장착할 때는 무작정 높은 등급을 끼우기보다는, 세트 효과를 고려한 전략적인 구성이 중요하다. 세트 효과는 2세트와 4세트 기준으로 발동하며, 3세트 효과는 존재하지 않는다. 예를 들어 광휘 3개와 명예 3개를 장착할 경우, 두 세트 모두 2세트 효과만 적용된다. 기자 개인적으로는 명예 4세트 + 광휘 2세트 조합을 기본 구성으로 추천한다.
석판 선택과 공명 효과
석판은 공격력, PVP 추가 데미지, 방어력, 경험치 추가 획득의 네 가지로 나뉜다. 유저 성향에 따라 선택은 달라질 수 있지만, 기본적으로는 공격력과 경험치 추가 획득 석판을 우선으로 고려하는 편이 무난하다. 프리셋 기능을 활용하면 PVP 상황에 맞춰 구성을 바꾸는 것도 가능하다.
석판 문양이 동일할 경우 발동되는 공명 효과는 체감 수치가 크다. 문양은 상점에서 패키지로도 구매할 수 있고(기사 발행 시점 상점 기준), 마일리지로 비교적 부담 없이 구매할 수 있으니 참고하길 바란다. 그리고 마을의 교환 상점 영광의 증표 교환을 통해서도 획득할 수 있다. 다만 전투력 수치에는 이른바 ‘허수값’이 존재하기 때문에, 수치 상승만 보고 판단하기보다는 실제 효율을 직접 비교해보는 것도 필요하다.
아스터 합성 역시 가능하지만, 기자 개인적인 의견으로는 프리셋과 기본 세팅을 어느 정도 완성한 이후에 진행하는 편이 안정적이다. 자세한 내용은 공식 업데이트 게시글(https://community.withhive.com/tsl/ko/board/30/10391)을 참조하자.

자동 스케줄: 바쁜 일상을 위한 혁신적 편의 기능
지금까지 진행된 여러 업데이트 중, 개인적으로 가장 인상 깊었던 콘텐츠는 ‘자동 스케줄’이다. 사냥 중심의 성장 구조를 가진 게임 특성상 지속적인 플레이는 중요하지만, ‘더 스타라이트’는 청소년 이용불가 등급인 만큼 생업 등으로 바쁜 일상을 보내는 성인 유저의 비중이 높을 것으로 추정된다.

일과를 시작하기 전 자동 사냥을 켜두고 일과를 마치고 접속했을 때 캐릭터가 사망해 있거나, 콘텐츠 시간 종료 이후 마을에 멈춰 있는 상황을 겪어본 유저라면 이 업데이트의 가치를 쉽게 체감할 수 있다. 자동 스케줄은 우선순위 설정을 통해 원하는 콘텐츠를 자동으로 수행하도록 도와준다.

물약이 부족할 경우 자동 구매가 가능하고, 부활 역시 지정한 횟수만큼 사용할 수 있다. 특히 부활 기능은 다음 날로 넘어가면 복구되지 않기 때문에, 경험치 손실을 실질적으로 줄여준다는 점에서 가치가 크다. 바쁜 성인 유저들의 플레이 환경을 세심하게 고려한 편의성 업데이트라 평가하고 싶다.
길드 던전: 소속감과 유대감을 강화하는 협동 콘텐츠
더 스타라이트는 아직 서비스 초기 단계에 있는 게임으로, 협동 콘텐츠가 순차적으로 추가되고 있다. 이번 업데이트를 통해 새롭게 등장한 콘텐츠가 바로 길드 던전이다.
리니지라이크 장르에서 길드는 단순한 소속 집단을 넘어, 플레이 경험 전반에 영향을 주는 핵심 요소다. 길드 단위로 함께 도전하고 성과를 공유하는 콘텐츠는 자연스럽게 소속감과 유대감을 형성한다는 점에서 특히 중요하다.

이번에 추가된 길드 던전은 이러한 부분을 보완하는 콘텐츠다. 매주 주말, 정해진 시간에 입장해 던전을 클리어하면 보상을 획득할 수 있으며, 길드 분배 시스템을 통해 보상을 길드원들과 나눌 수 있다.

다만 주의할 점이 있다. 길드 던전은 주말 00:00~22:00까지 플레이 가능하다고 표시되지만, 실제로는 길드장이 던전을 활성화한 시점부터 1시간 동안만 플레이할 수 있다. 보스 몬스터뿐 아니라 일반 몬스터도 다수 출현하므로 길드원들과 원활한 소통을 바탕으로 최소 10명 이상이 입장해 클리어하는 것을 권장한다.
패키지 추천: 웹상점 활용과 스마트한 선택

본격적인 패키지 추천에 앞서 ‘웹 상점’ 활용을 다시 한번 강조하고 싶다. 인게임 상점이 아닌 웹 상점을 통해 재화를 구매하면, 동일 금액 기준으로 마일리지를 2배로 제공하기 때문이다.
예를 들어 33,000원 패키지를 구매한다고 가정해 보자. 인게임에서 결제 시 330 마일리지가 적립되지만, 웹 상점을 이용하면 그 두 배인 660 마일리지를 획득할 수 있다.
적은 금액이라도 꾸준히 웹 상점을 이용해 마일리지를 모으면 ‘전환의 결정’, ‘영웅 등급 소환권’, ‘세공석’ 등 게임 내 핵심 아이템을 추가 비용 없이 확보할 수 있다. 같은 금액으로 최대의 효율을 내는 것이 중요한 만큼, 과금을 계획하고 있다면 웹 상점을 적극적으로 활용하길 권장한다.
‘추천’과 ‘프로모션’ 탭을 공략하라
이번 기사에서는 특정 패키지 이름을 거론하는 대신, 실패 없는 구매 ‘기준’을 제시하고자 한다. 상점 내 [추천] 및 [프로모션] 탭을 주목하자.
해당 탭에 진열된 아이템들은 대개 7일간 판매되는 한정 패키지인 경우가 많다. 기사가 발행되는 시점과 독자가 읽는 시점의 차이로 인해 특정 상품을 콕 집어 추천하기는 어렵지만, 이 탭에 위치한 패키지들은 여타 상시 판매 상품보다 월등한 효율을 보여준다. 따라서 해당 탭의 상품 중 나에게 필요한 구성이 있다면, 구매를 망설일 이유가 없다고 본다.
놓치기 쉬운 이벤트 정보
여담이지만 이벤트 또한 패키지와 비슷하다. 일주일 단위로 짧게 진행되는 게릴라성 이벤트가 많아 기사에 모든 내용을 담기에는 한계가 있다. 현재 진행 중인 알짜배기 혜택을 놓치고 싶지 않다면, 아래 공식 커뮤니티 링크를 통해 실시간 정보를 꼭 확인해 보기를 바란다.
변함없는 필수 구매 상품
마지막으로 시기와 상관없이 항상 추천하는 상품이 있다. 바로 갱신형 상품 중 ‘경험치 혜택’과 ‘골드 혜택’이다.
이 두 상품은 그 어떤 패키지와 비교해도 압도적인 가성비(소위 ‘혜자’)를 자랑한다. 성장의 기본이 되는 경험치와 재화 수급을 보장해주므로, 무조건 매달 구매하여 갱신하는 것을 강력히 추천한다.


진화하는 게임, 함께하는 미래

매 기사마다 반복해온 문장이 있다. ‘더 스타라이트는 발전하고 성장하고 있다’는 말이다. 이번 개발자 라이브 방송을 되짚어보며, 이 문장은 여전히 유효하다고 느꼈다.
개발진은 유저의 목소리에 진심으로 귀 기울이며, 게임을 더 나은 방향으로 발전시키겠다는 분명한 의지를 보여줬다. 자동 스케줄이라는 혁신적인 편의 기능, 길드 던전을 통한 협동 콘텐츠 강화, 아스터 시스템을 통한 성장 방식의 다변화까지. 출시 이후 이어진 지속적인 업데이트는 더 스타라이트가 올바른 방향으로 나아가고 있음을 분명히 보여준다.
더 스타라이트는 단순히 출시 100일을 넘긴 게임이 아니다. 유저와 함께 호흡하며 소통으로 완성되어가는, 살아 있는 게임이다. 앞으로도 더 스타라이트가 유저와의 약속을 지켜 나가며 진정한 차세대 MMORPG로 자리매김하길 기대한다.
겨울을 준비하는 가장 따뜻한 의식
겨울이 오면 떠오르는 것이 있다. 매콤한 고춧가루 냄새, 배추를 절일 때 나는 짭짤한 김치 국물, 그리고 “올해는 김장 언제 해?”라는 질문. 김장은 단순히 음식이 아니라 겨울을 준비하는 우리의 의식이다. 집에서 담그든 누군가 담가 준 것을 얻어 먹든, 김장은 계절의 변화와 함께 찾아오는 따뜻한 기억이다.
이번 2025년 4분기 사내 봉사활동 ‘컴투게더’는 금천구 지역 내 장애인 가정을 위한 김장 봉사로 진행되었다. 기자는 이번 활동에 4살 아들과 함께 참여했다. 아이와 함께 누군가의 겨울을 따뜻하게 데우는 현장에 동참할 수 있어 더욱 뜻깊은 시간이었다.
행사는 12월 6일 토요일, BYC하이시티 지하 1층 컴투스 임직원 식당에서 진행됐다. 아이와 동행하는 길이라 솔직히 걱정이 앞섰던 것도 사실이다. ‘바닥이 미끄럽지는 않을까?’, ‘매운 양념이 묻어 아이가 울지는 않을까?’ 하는 우려 때문이었다.
하지만 현장에 도착하니 그런 걱정은 기우였음을 깨달았다. 활동에 필요한 물품은 완벽하게 구비되어 있었고, 동선 또한 효율적이었다. 주말이라 한산하고 깔끔하게 정돈된 식당은 아이와 함께하기에 더할 나위 없이 쾌적했다. ‘이래서 사내 봉사활동에 참여하는구나’ 싶은 안정감이 느껴지는 순간이었다.

작은 손이 큰 마음을 만나다


오전 9시 50분, 담당 선생님의 설명을 들으며 본격적인 준비를 마쳤다. 눈앞에는 잘 절여진 배추와 먹음직스러운 양념이 가득했다. 참가자들은 복잡한 준비 과정 없이 오로지 ‘담그는 정성’에만 집중할 수 있는 구성이라 부담이 없었다.


기자는 아이 손을 잡고 작업하기 편한 자리로 이동했다. 아들은 준비된 장갑과 조끼를 보더니 마치 장난감 가게에 온 듯 눈을 반짝였다. “이거 내가 해도 돼?” 라고 묻는 아이의 목소리가 그 어느 때보다 든든하게 들렸다. 봉사활동이 어른들만의 전유물이 아님을 아이는 시작부터 온몸으로 보여주고 있었다.
아이들용 장갑이 따로 있었지만 아들은 아빠와 똑같은 모자를 쓰겠다고 고집했다. 작업복을 갖춰 입으니 비로소 현장감이 살아났다. 평소 키보드를 두드리던 손이 오늘은 배추를 버무리는 손이 되었다. 낯익은 동료들과 인사를 나누고, 아들을 처음 본 직원들이 건네는 귀여움 섞인 인사를 받으며 분위기는 훈훈해졌다. 봉사활동은 ‘타인을 돕는다’는 목적 외에도, 이렇게 동료들끼리 서로를 편안하게 마주하게 하는 매개체 역할을 하기도 했다.

김장은 단순히 배추에 양념을 바르는 작업이 아니었다. 배추 잎 사이사이에 양념을 채우는 과정은 생각보다 섬세한 손끝 감각을 요했다. 너무 많이 넣으면 어르신이나 아이들이 먹기에 맵고, 너무 적게 넣으면 맛이 덜 든다. 이 과정을 반복하며 문득 이것이 ‘배려’와 닮았다는 생각이 들었다. 누군가에게 필요한 만큼을, 넘치지도 부족하지도 않게 채워주는 마음. 그것이 오늘의 핵심이었다.


함께한 임직원들의 열정도 대단했다. 누군가는 속도를 내어 수량을 맞추고, 누군가는 품질을 위해 꼼꼼히 잎을 정리했다. 자연스럽게 “이쪽은 양념 담당, 저쪽은 포장 담당!” 하며 역할이 나뉘었고, 현장에는 작은 ‘팀플레이’가 형성됐다. 회사 프로젝트를 수행할 때처럼 각자의 장점을 살려 하나의 결과물을 만들어내는 과정은 같았고, 단지 그 결과물이 ‘김치’라는 점만 달랐을 뿐이다.


나눔의 의미를 배우는 시간
솔직히 아이와의 봉사활동을 ‘추억 쌓기’ 정도로 생각했었다. 그러나 현장에서 더 많은 것을 배운 건 오히려 기자 자신이었다. 아이는 긴 설명 없이도 분위기를 통해 상황을 이해했다. 조심해야 할 곳에서는 고개를 끄덕였고, 누군가 “고마워!”라고 하면 쑥스러워하면서도 신나서 움직였다. 어른들처럼 ‘왜 해야 하는지’를 따지지 않고, 그저 ‘필요하니까 하는 일’로 받아들였다.
특히 기억에 남는 순간이 있다. 포장된 김치 박스를 한참 바라보던 아들이 물었다. “이거 우리 거야?” “아니, 이건 다른 가족들한테 갈 거야. 겨울에 맛있게 드시라고.” 기자의 대답에 아들은 잠시 생각하더니 이렇게 말했다. “그 집은 매운 것도 잘 먹나 봐!” 단순하지만 그래서 더 정확한 문장이었다. 봉사란 거창한 설명보다, 아이의 이 한 마디처럼 마음이 정리되는 순간이 있는 법이다.
활동 중간, 허리가 아파오고 손끝이 차가워질 무렵 맞이한 점심시간은 꿀맛 같았다. 다 같이 땀 흘린 뒤 먹는 보쌈은 그야말로 ‘최고’였다. ‘내가 돕는다’로 시작한 봉사가, 함께 밥을 먹으며 ‘우리가 함께했다’는 연대감으로 바뀌는 순간이었다. 맛있게 보쌈을 먹는 아이의 모습이 오늘 하루의 만족도를 대변해 주는 듯했다.


사내 봉사활동의 장점은 분명했다. 앞치마와 장갑 같은 물품이 현장에서 제공되니 따로 챙길 것이 없었고, 안내가 잘 되어 있어서 ‘처음이라 서툴러도 괜찮다’는 분위기가 있었다.

무엇보다 회사라는 익숙한 공간에서 출발하지만 마음은 지역사회로 향하게 만드는 구조가 좋았다. 아이와 함께라서 더 확실히 느꼈다. ‘도움’이라는 단어를 교육으로 설명하기보다, 실제로 ‘무언가를 나누는 장면’에 함께 서 보는 것이 훨씬 강력하다는 것을.
오늘의 김치가 닿을 곳을 떠올리며
이번에 아들이 한 일은 아주 작았다. 아직은 어려서 잘 모르겠지만, 이런 활동들이 나중에도 쌓이고 쌓여서 “내 손이 누군가에게 도움이 될 수 있다”는 기억으로 남기를 바란다.
봉사를 마치고 나오는 길, 차 안에서 곤히 잠든 아들을 보며 생각에 잠겼다. 오늘 우리가 담근 김치는 어느 가정의 밥상 위에 오를까? 누군가의 추운 저녁 따뜻한 국과 함께 놓이거나, 아침 흰 쌀밥 위에 얹혀 하루를 시작하는 힘이 될 것이다. 그 한 끼가 “나 혼자 버티는 겨울이 아니구나”라는 위로가 되기를 바란다.
집에 도착해서도 옷에 밴 김치 양념 냄새가 싫지 않았다. 이번 4분기 컴투게더 김장 봉사활동은 ‘잘 산다는 것’의 의미를 다시금 일깨워 주었다. 나 혼자만 따뜻한 것이 아니라, 주변도 함께 따뜻해야 비로소 겨울이 겨울답게 지나간다는 사실을 말이다. 그리고 그 온기는 거창한 기부가 아니라, 장갑을 끼고 배추 한 잎을 정성껏 덮는 손끝에서 시작된다는 것도 배웠다.
회사 동료들이 “아빠는 회사 가면 김치 담그는 거야?”라고 묻는 아들의 말에 빵 터졌던 소소한 에피소드처럼, 오늘 하루는 웃음과 보람으로 가득 찼다. 우리가 만든 김치가 닿는 곳마다 진짜 맛있고 따뜻한 겨울이 깃들기를 진심으로 기원한다.
아이와 함께하는 봉사활동 팁
아이와 봉사활동 참여를 고민하는 이들을 위해 몇 가지 요령도 남긴다.
역할은 작게, 칭찬은 크게
‘배추 옮기기’, ‘빈 통 정리하기’, ‘휴지 가져오기’처럼 단순한 역할이 좋다. 특히 나이대에 따라 역할을 나눠 주면 좋다. 해냈을 때 “덕분에 빨라졌어!” 한마디는 덤이다.양념은 ‘거리두기’
“맨손으로 만지면 안 돼”라고만 하면 더 만지고 싶어 한다. “이건 어른 미션, 너는 너 미션!”으로 분리해 주는 것이 좋다. 물론 저희 아들처럼 작은 아이에게는 소용없다.간식·물 같은 ‘컨디션 아이템’은 필수
현장 제공이 충분해도 아이 컨디션은 예측이 안 된다. 잠깐 쉬는 시간에 먹일 작은 간식이 있으면 훨씬 안정적이다. 물론 컴투스에서 챙겨 준 간식도 신의 한 수였다.

‘컴친소 2.0: 컴투기빙’ 땡큐마켓 현장 스케치

12월 5일 금요일, 컴투스 사내 카페가 특별한 나눔의 열기로 가득 찼다. 구성원이 직접 만든 즐거움을 사회적 가치로 연결하는 ‘컴친소 2.0: 컴투기빙’ 땡큐마켓이 임직원들의 뜨거운 성원 속에 성황리에 마무리되었다.


이번 행사는 2025년을 맞아 새 단장을 마친 ‘컴투북스’ 공간에서 12월 5일 단 하루(11:00~15:00) 진행되었다. 사내 카페는 산뜻한 노란색의 컴투기빙 매대로 채워졌다. 점심시간이 시작되기도 전인 이른 시간부터 많은 임직원이 찾아와 발 디딜 틈 없이 북적였다.
가장 인기가 많았던 품목은 단연 럭키박스!

이번 땡큐마켓의 주인공은 단연 ‘럭키박스’였다. 1년간의 컴친소 일러스트가 담긴 달력 엽서와 다양한 부스의 경품, 그리고 네이버페이 상품권까지 랜덤으로 포함된 혜택 가득한 구성 덕분이었을까.


준비한 수량의 절반 이상이 행사 시작 1시간 만에 소진되었다. 결국 잠시 판매를 중단하고, 1시에 판매를 재개해야 할 정도였다. 예쁜 언박싱 인증샷을 보내준 분들에게도 감사의 마음을 전한다.



팝콘 냄새만큼 퍼져나간 참여 열기
현장에서 진행된 팝콘 이벤트 덕분에 고소한 냄새와 웃음소리가 끊이지 않았다. 특히 수많은 임직원이 인스타그램을 통해 ‘컴투스온’을 태그하며 생생한 현장을 인증해주었다. 덕분에 땡큐마켓의 즐거운 분위기는 사내를 넘어 대외적으로도 널리 확산되며 컴투스만의 건강한 나눔 문화를 알리는 계기가 되었다.

특히, 차기 시즌을 위한 ‘컴친소 3.0’ 사전 설문에도 무려 150여 명이 참여하며 뜨거운 관심을 증명했다. 만약 당신과 딱 맞는 찰떡궁합 동료가 나타난다면? 응답 내용을 바탕으로 갑작스럽게 ‘깜짝 미팅’ 신청이 날아갈지도 모르니 마음의 준비를 해두길 바란다.
럭키박스 네이버페이 당첨자
1등: 임*현(8834), 2등: 어*화(8873), 3등: 권*영(3963)
현장 사진 인스타그램 태그 당첨자
이*지(4174), 강*수(3205), 김*영(6488), 김*혜 (3351), 배*기 (5913)
일곱 가지 취향, 일곱 가지 이야기
이번 마켓이 더욱 특별했던 이유는 기획부터 제작, 판매까지 모두 우리 구성원들의 손끝에서 탄생했기 때문이다.

- 영화 부스: 영화 덕후들의 감성을 저격한 크레딧 디자인의 ‘팝콘 티셔츠’
- 키보드 부스: 직장인의 희로애락(집으로, TV로, 퇴근)을 햄스터로 표현한 ‘키캡 키링 3종’
- 뜨개질 부스: 한 코 한 코 정성으로 뜬 ‘핸드메이드 티코스터’와 포근한 ‘뜨개양 틴케이스’
- 사진 부스: 필름통 모티브 자석과 사우들의 시선이 담긴 감성 가득 ‘사진 엽서 & 스티커’
- 유기견·유기묘 부스: “사지 말고 입양하세요” 실제 반려견/묘 모델로 만든 ‘에코백 2종’
- 커피 부스: 블라인드 테스트로 엄선한 맛과 향, 나무늘보 패키지의 ‘드립백 3종 세트’
- 베이킹 부스: 빵순이/빵돌이 필수템 ‘디저트 접시 2종’




단순한 물건이 아니라, 동료들의 정성과 이야기가 담겨 있어 더욱 소장 가치가 높은 굿즈들이었다.
[Mini Interview1] 땡큐마켓 최고의 ‘기부 큰 손’, 원지현 님을 만나다!
이번 마켓에서 유독 눈에 띄는 활약을 보여준 분이 있다. 바로 총 5회에 걸쳐 97,200원을 입금하며 입금 횟수와 총 금액 모두에서 압도적 1위를 기록한 원지현 사우다. 서포터즈로도 참여하며 행사를 더욱 빛내준 그녀는 사실 10년이 넘는 시간 동안 묵묵히 기부를 이어온 ‘나눔의 아이콘’이기도 하다. 그녀의 진솔한 이야기를 들어보았다.

Q. 이번 컴투기빙 마켓에 서포터즈이자 ‘최다 구매자’로 참여하셨어요. 계기가 있나요?
평소 ‘취미 부자’, ‘동아리 부자’라 사내 분들과 교류하는 걸 좋아하는데, 마침 서포터즈 참여를 제안받아 즐겁게 시작했어요. 원래 기부와 봉사에도 관심이 많았거든요!”
Q. 기부 활동을 하신 지 벌써 10년이 넘으셨다고요?
네, 학생 때부터 ‘내가 시간만 내면 남을 도울 수 있다’는 생각에 봉사를 시작했어요. 성인이 된 후에는 정기 기부로 나눔의 방식을 넓혔는데, 세이브더칠드런(2014년~)을 시작으로 굿네이버스, 한국해비타트 등 4곳에 10년 넘게 꾸준히 마음을 보태고 있습니다. 나눔을 실천하고 나면 하루가 정말 뿌듯해져요.
Q. 이번 마켓에서 가장 만족스러웠던 굿즈 하나를 꼽는다면요?
거의 모든 아이템을 구매해서 고르기 어렵지만, ‘베이킹 부스 접시’를 꼽고 싶어요! ‘우울해서 빵 샀다’는 문구가 적힌 귀여운 디자인에 반했거든요. 공감 잘하는 T(MBTI)로서 이 빵들을 저희 집으로 데려와서 안 우울하게 해줘야겠다는 생각이 들더라고요(웃음). 구매자 이벤트로 받은 빵 키링까지 더해져 제 마음속 1위가 됐습니다.
Q. 지현 님에게 이번 마켓은 어떤 기억으로 남을까요?
‘기부가 어려운 게 아니구나’라고 느껴지는 행사였길 바라요. 바쁜 현대인에게 기부나 봉사가 쉽지 않지만, 회사에서 내가 갖고 싶은 예쁜 아이템을 사는 것만으로도 나눔이 되는 구조가 정말 좋았거든요. 제가 구매한 물건들이 누군가에게 전하고 싶은 따뜻한 마음이 되었다는 사실이 기쁩니다.
[Mini Interview 2] 컴친소의 시작과 끝을 함께한 ‘금손 올라운더’, 해달 작가님
이번 땡큐마켓 곳곳에는 이분의 손길이 닿지 않은 곳이 없다. 행사장 전체를 아우르는 귀여운 마켓 컨셉 일러스트부터 직장인의 희로애락을 담은 ‘키보드 부스’, 향긋한 ‘커피 부스’ 굿즈 디자인, 그리고 럭키박스의 대미를 장식한 ‘2025 캘린더’ 작업까지! 컴친소 1.0부터 함께해 온 원년 멤버이자, 이번 행사의 숨은 주역인 해달 작가님을 만나 비하인드 스토리를 들어보았다.
Q. 이번 컴투기빙 일러스트와 굿즈, 어떤 마음으로 기획하셨나요? 컨셉 비하인드가 궁금합니다.
내가 소비자라면 과연 사고 싶을까?’라는 질문을 계속 던지며 작업했어요. 키보드 굿즈는 ‘집으로’와 ‘퇴근’이라는 직장인의 소망을 각각 ‘Home’키와 ‘ESC’키에 담았고 , 드립백은 나무늘보의 느긋함과 카페인의 짜릿함을 대비시켜 표현했죠.


재밌는 점은 원래 나무늘보 표정이 하나였는데, 드립백 종류가 세 가지로 늘어나면서 ‘표정도 늘려보자’는 제안을 받아 결과적으로 더 다채로운 패키지가 완성됐다는 거예요.
또 마켓 전체 무드를 잡을 때 완성본보다 ‘러프 스케치’ 파일을 쓰고 싶다고 하셔서 처음엔 ‘너무 삐뚤빼뚤한데 괜찮을까?’ 걱정했거든요. 막상 결과물을 보니 오히려 자연스럽고 캐주얼한 분위기가 살아나 다행이었습니다.

Q. 내 손끝에서 탄생한 수많은 굿즈 중 가장 애정이 가는 ‘최애템’은 무엇인가요?

단연 ‘키보드 키캡’입니다! 샘플을 동료들에게 보여줬을 때 ‘이거 어디서 살 수 있어?’라며 시중 판매 제품인 줄 알고 물어보시더라고요. 제가 만든 마켓 굿즈라고 말씀드리기 전까지는 진짜 파는 물건인 줄 아셔서, 그 순간 가장 큰 뿌듯함을 느꼈습니다.
Q. 현장에서 직접 셀러와 서포터즈로 뛰며 기억에 남는 순간이 있다면요?
몇몇 분들이 농담 반 진담 반으로 ‘이런 능력이 있는데 왜 회사에 계속 계세요?’라고 물어봐 주셔서 한참 웃었습니다. 그만큼 좋게 봐주신 것 같아 감사했고요. 그래도… 저는 컴투스가 좋습니다. (사랑해요♥)
Q. ‘컴친소 1.0’부터 꾸준히 참여해 오셨는데요. 이번 행사는 감회가 남다르셨을 것 같습니다.
그동안은 제 그림을 컴친소 참여자분들께만 보여드릴 수 있었는데, 이번엔 더 많은 사우분께 소개할 수 있어 의미가 컸습니다. 무엇보다 ‘전액 기부’라는 취지가 분명했기에 더 힘을 내서 디자인할 수 있었고요. 만약 시즌 2가 열린다면요? 물론 참여해야죠. 다만 다음엔 더 많은 작가님이 함께하셨으면 좋겠어요. 그때는 이번과는 또 다른 매력의 ‘매일 자연스럽게 쓸 수 있는 실용적인 사무용 굿즈’에 도전해보고 싶습니다.
우리의 즐거움이 아이들의 꿈으로


셀러들의 정성과 구성원들의 따뜻한 동참으로 총 4,764,900원의 기부금이 집계되었다. 지난 1년간 ‘컴친소’ 프로그램에 참여하여 다채로운 취향을 공유하고, 그 취향을 빛나는 굿즈로 탄생시키기 위해 기획 단계부터 열정적으로 임해 준 참가자들의 노고가 있었기에 이 결실이 더욱 값지게 느껴진다.

멋진 그림으로 굿즈에 생명을 불어넣어 준 일러스트 작가들, 원활한 행사를 위해 현장에서 두 팔 걷고 나선 봉사자들, 그리고 기꺼이 나눔의 마음으로 구매에 동참해 준 임직원 여러분께 깊은 감사를 전한다. 각자의 자리에서 보탠 땀방울과 정성이 모여 누군가의 꿈에 날개를 달아주었다.

이번 수익금은 월드비전 ‘꿈날개클럽’을 통해 취약계층 아동·청소년의 꿈 지원금으로 전액 기부된다. 이는 단순한 경제적 지원을 넘어, 아이들이 전문가 멘토링을 통해 자신의 비전을 탐색하고 미래를 주도적으로 설계할 수 있도록 돕는 소중한 씨앗이 될 것이다.
Coming Soon! [컴친소 3.0 : 찐친소]
‘컴투스 그룹의 친구를 소개합니다’라는 의미의 컴친소 프로그램은 계속해서 발전해왔다.
- 2024년 컴친소 1.0: 구성원의 취향을 인터뷰로 소개
- 2025년 컴친소 2.0 (컴투기빙): 취향을 굿즈로 만들어 나눔으로 연결
그리고 다가오는 2026년, 컴친소가 [컴친소 3.0 : 찐친소]로 새롭게 돌아온다! 시즌 1, 2가 폭넓은 취향을 나누는 자리였다면, 이번 시즌은 ‘나와 잘 맞는 동료’를 찾는 1:1 또는 1:2 취향 기반 매칭 프로그램이다.
🤝 [컴친소 3.0 : 찐친소] 미리보기
- 어떤 프로그램일까? 함께 웃고 이야기 나누며 자연스럽게 가까워질 수 있는 만남 형성
- 혜택 1: 참여자 전원! 점심 식사 또는 커피 자리 비용 지원
- 혜택 2: 취향이 맞는 동료와 교류 후 후기(기사)를 작성하면 네이버페이 10만 원 지급! (선택 참여)
나와 찰떡궁합인 사내 ‘찐친’을 찾고 싶다면? 아래 양식으로 여러분의 취향을 공유하면 된다.
취향에서 시작된 즐거움이 나눔의 가치로, 더 나아가 끈끈한 동료애로 이어지고 있다. 남은 한 해 모두 행복하게 마무리하길 바라며, 계속해서 진화할 컴친소의 여정에 많은 관심과 응원을 부탁한다.
chap1. 취향을 말하다


chap2. 감자 큐레이터의 취향 책장

『Car Design Book (자동차 디자인 북)』, 조경실

“모든 라인은 목적이 있어야 한다. 아무 이유 없는 곡선은 없다.”
자동차를 보며 ‘와, 멋지다!’라고 감탄한 적이 있다면, 이 책은 그 멋짐의 근본적인 이유를 알려준다. 사실 차의 외관에는 세대별 변화, 디자인 언어, 철학 같은 수많은 요소가 숨어 있다. 이 책은 그런 디테일들을 끄집어내어 자동차 디자인이 어떻게 시대를 반영하고, 브랜드 정체성을 구축하며, 기술과 함께 진화하는지 보여준다.
BMW, 폭스바겐부터 현대자동차까지, 세계적인 브랜드들이 어떤 정체성과 개성을 가지고 달려왔는지 그 흐름을 한눈에 살펴볼 수 있다. 유명 디자이너들의 생생한 이야기와 디자인 트렌드까지 깊이 있게 다루고 있어, 자동차를 보는 안목을 한 단계 끌어올려 줄 것이다.
💡 이 책, 이런 분께 추천합니다
✔️ 막연히 자동차를 좋아했지만, 이제는 ‘왜 멋있는지’ 그 이유를 논리적으로 알고 싶은 분
✔️ 디자인에 관심이 많거나, 자동차 디자인의 역사와 흐름을 쉽고 재미있게 배우고 싶은 분
✔️ 멋진 자동차를 보면 휴대폰을 꺼내 사진부터 찍는 분 (사실 글쓴이 본인의 모습이다.)
✔️ 모터쇼에 한 번이라도 방문했거나 관심 있는 분
『그 남자의 자동차』, 신동현

“자동차를 단순히 집과 직장을 오가는 데 쓰는 물건이라고 생각하면 그것을 이용하는 만큼의 시간을 버리는 것과 마찬가지다.”
자동차를 ‘사람’과 같다고 여기는 저자인 만큼, 차를 좋아하는 사람이라면 가슴에 와닿을 이야기가 가득하다. 저자가 수많은 차량을 경험하며 느낀 감정을 담고 있는데, 단순한 시승기나 스펙 비교가 아니라 자동차를 통해 마주한 삶의 순간들을 솔직하게 기록했다는 점이 특별하다.
명차에 대한 이야기에서 시작해 오래된 차에 깃든 애정까지, 자동차 저널리스트로 오랫동안 활동해 온 저자의 경험과 추억이 고스란히 녹아있다. 슈퍼카의 짜릿한 시승기부터 자동차와 얽힌 개인적인 에피소드, 그리고 자동차 문화에 대한 통찰까지 폭넓게 다룬다. 무겁고 진지하게 기능이나 역사만 나열하는 대신, 자동차가 우리 삶에 어떤 낭만을 주는지 유쾌하고 흥미진진하게 풀어낸다. 읽다 보면 자동차가 한 사람의 인생에 어떤 의미가 되는지 깊이 공감하게 된다.
💡 이 책, 이런 분께 추천합니다
✔️ 자동차 저널리스트의 생생한 경험과 시승기를 간접적으로 체험하고 싶은 분
✔️ 자동차와 함께하는 매 순간이 소중한 분
✔️ 기술 중심의 정보보다 자동차에 얽힌 스토리와 감성을 좋아하는 분
✔️ 한 번쯤 자동차도 말을 할 수 있을 거라 상상해 본 분
『테슬라 폭발적 성장 시나리오』, 강정수·김이라·이현정

“준비되지 않은 기업은 이 역사적 전환에서 뒤처질 수밖에 없다.”
테슬라를 단순히 전기차 제조사로만 알고 있다면 일독을 권한다. 이 책은 AI, 로봇, 에너지 등 다양한 산업이 어떻게 연결되어 테슬라 생태계를 만들고 있는지 설명한다. 특히 자동차 산업의 경쟁력이 기존의 엔진 기술이 아니라 데이터와 소프트웨어로 이동하고 있다는 사실을 명확히 배울 수 있다. 앞으로 자동차가 어떤 방향으로 변화할지, 기술이 산업 판도를 어떻게 바꿀지 선명하게 그려주는 책이다.
💡 이 책, 이런 분께 추천합니다
✔️ 투자, 기술, 혁신 분야를 좋아하는 분
✔️ 자동차 산업이 미래에 어떤 모습일지 궁금한 분
✔️ 테슬라와 일론 머스크에 관심이 많은 분
✔️ 자율주행과 인공지능이 가져올 세상의 변화를 알고 싶은 분
『자동차 구조교과서』, 아오야마 모토오

자동차의 핵심 구조와 기술 요소를 기초부터 명확하게 이해할 수 있도록 구성된 책
엔진, 변속기, 섀시, 전기장치 등 자동차를 구성하는 주요 시스템들이 어떤 역할을 하고 어떻게 연결되어 작동하는지 단계적으로 설명한다. 복잡한 기계적 원리를 단순화한 그림과 함께 안내해 주어 기술 용어가 부담스러운 사람도 쉽게 접근할 수 있다. 전통적인 내연기관 차량은 물론이고 하이브리드, 전기차 시대에 맞춘 내용도 다루고 있어, 자동차 기술의 흐름까지 자연스럽게 익힐 수 있다.
💡 이 책, 이런 분께 추천합니다
✔️ 자동차가 실제로 어떻게 움직이는지 구조적으로 이해하고 싶은 분
✔️ 튜닝/커스텀에 관심 있는데 기초 지식이 부족한 분
✔️ 운전만 하는 단계에서 벗어나 더 깊게 자동차를 알고 싶은 분
『50개의 키워드로 읽는 자동차 이야기』, 김우성

“인생은 짧고, 길은 멀다. 좋은 차와 함께라면 즐거움은 배가된다.”
조제프 퀴뇨의 첫 증기자동차부터 시작해 350년 동안 이어진 자동차 역사를 50개의 흥미로운 키워드로 쉽고 재미있게 풀어낸 책이다. 과거로부터 현재에 이르는 시대적 흐름은 물론 전기차와 자율주행차 등 미래 자동차까지 다양한 영역을 폭넓게 다룬다. 어려운 기술 설명보다는 ‘왜 이런 기술이 필요하며 어떤 변화가 일어났는가’에 집중하는데, 소설을 읽듯이 가볍게 자동차 교양 지식을 쌓기에 아주 좋다.
💡 이 책, 이런 분께 추천합니다
✔️ 처음 자동차 관련 독서를 시작하려는 분
✔️ 자동차를 좋아하지만 너무 기술적인 책은 부담스러운 분
✔️ 차를 바꿀 때 제대로 비교하고 선택할 수 있는 지식을 얻고 싶은 분
✔️ 자동차의 역사, 기술, 시장 트렌드를 균형 있게 알고 싶은 분
chap3. 독서 페어링 아이템


캐모마일 티
캐모마일 티는 카페인이 없는 차라 밤 시간 독서에도 잘 어울린다. 따뜻한 차 한 잔과 함께 책을 읽으면 긴장이 자연스럽게 풀려 몰입도를 높이고, 기억력 향상에도 도움을 준다.
특히 잠들기 전 마시면 몸과 마음을 차분하게 가라앉혀 주어, 하루의 끝을 편안하게 정리하는 데도 좋다.
chap4. 컴투북스 릴레이 소설

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

#4 “종이 받으셨죠? 이번 달은 당신 차례입니다.”
“네? 뭐가 제 차례인가요?”라고 말하자 상대방이 말했다.
“지금 가장 하고 싶은 일이 무엇이죠?”
그 질문에 나는 너무 놀란 나머지 미처 대답하지도 못하고 전화를 끊어버렸다. 전화기를 내려놓고 잠시 숨을 고르며 주위를 살펴보았지만, 통화 속 상대방의 목소리가 계속 머릿속을 맴돌았다. 어디선가 들어본 듯한, 묘하게 익숙한 목소리였다.
기묘한 전화 통화를 뒤로하고 회사에 도착하니, 동료들은 아무 일 없다는 듯 모니터 앞에서 키보드를 두드리고 있었다. 나 역시 밀린 업무를 처리하기 위해 자리에 앉았다. 그때 사무실 전체의 불이 잠시 깜빡이더니 안내 방송이 흘러나왔다.
“사내 캠페인 홍보지를 받은 사람은 즉시 회사 밖으로 나오세요.”
놀란 동료들이 자리에서 일어나 무슨 일이냐며 서로 물었지만, 아무도 아는 사람이 없는 눈치였다. 홍보지와 이상한 전화를 받은 사람은 나뿐인 것 같았다. 그 안내 방송은 결국, 나를 향한 경고임을 분명히 알리고 있었다.
작업 효율을 극대화하다: 앱코 K26 넘버패드
포토샵과 3D 작업을 하다 보면 오른손은 마우스나 태블릿에, 왼손은 키보드 단축키에 고정된다. 문제는 넘버패드다. 수치를 입력하거나 Delete, Backspace 같은 키를 누를 때마다 오른손을 마우스에서 떼어 키보드까지 옮겨야 한다. 왼손으로 누르려면 손목을 키보드 오른쪽 끝까지 무리하게 뻗어야 한다.

그렇다면 넘버패드를 키보드 왼쪽에 배치하면 어떨까. 마우스와 키보드를 오가는 동선이 줄고, 양손의 작업 영역이 효율적으로 나뉜다. 디자이너뿐 아니라 수치 작업이 잦은 모든 직군에 도움이 될 것 같아 앱코 K26 넘버패드를 직접 사용해 봤다.
제품 소개: 작업자를 위한 디테일

먼저 제품을 살펴보겠다. 앱코 K26은 기본적인 넘버패드 기능뿐 아니라 왼쪽에 5개의 매크로 버튼이 추가로 탑재된 제품이다. 상단에는 Fn 키, Backspace 등 오른손 키보드 영역에서 자주 사용하는 버튼들도 함께 배치돼 있어 활용도가 높았다.
특히 왼쪽 상단에 달린 노브(Knob)는 기대 이상으로 유용했다. 노래를 들으며 작업하는 경우가 많은데, 직관적으로 볼륨을 조절할 수 있어 생각보다 손이 많이 가는 기능이다.
연결 방식 또한 블루투스, 유선, 전용 동글(2.4GHz) 무선 등 3가지 모드를 지원해 사용 환경에 맞춰 자유롭게 선택할 수 있다. 무선 모드 사용 시에는 충전이 필요한데, 한 번 완충하면 꽤 오랜 시간 사용할 수 있어 배터리 걱정 없이 작업에 집중할 수 있었다.
소프트웨어 설정: VIA로 나만의 단축키 만들기
사용에 앞서 키보드 오른쪽 영역에서 자주 사용하는 키들을 정리해 보았다. 가장 빈번하게 쓰는 Delete 버튼을 매크로 키에 할당하기로 했다.
또한 포토샵에서 자주 쓰는 ‘반전 기능’ 단축키인 Ctrl+I와 ‘선택 영역 반전’ 단축키인 Ctrl+Shift+I도 설정이 필요했다. 포토샵 유저라면 알겠지만, Ctrl, Shift, I를 한 손으로 동시에 누르려면 엄지손가락을 찢어질 듯 벌려야 하는 고통이 따른다. 그래서 이 복잡한 조합 키들을 과감하게 매크로 버튼 하나로 해결하기로 했다.
앱코 K26 넘버패드는 VIA라는 커스텀 키보드 웹 소프트웨어를 지원한다. 이를 통해 키 배열을 사용자가 원하는 대로 자유롭게 지정할 수 있다. 필자의 손가락 동선에 맞춰 버튼을 새롭게 매핑해 보았다.

기존 왼쪽에 위치한 Tab 버튼 자리에 손이 더 자주 가는 Delete 기능을 할당하고, Tab 기능은 왼쪽 여유 매크로 버튼으로 옮겼다. 앞서 언급한 Ctrl+I 등의 조합 키도 순서대로 매크로 버튼에 입력했다. 추후에는 올가미 툴 단축키인 L도 추가해 볼 생각이다.
하드웨어 커스텀: 키캡으로 직관성과 디자인 잡기
소프트웨어 설정은 마쳤지만 한 가지 아쉬운 점이 남았다. 하드웨어적으로 키캡의 각인이 바뀐 기능을 따라가지 못해 헷갈린다는 것이다. 하지만 이 제품은 기계식 키보드이기에 키캡 교체(Keycap Swapping)가 가능하다. 즉, 내가 커스텀 한 키 위치에 맞춰 키캡을 바꿔 낄 수 있다는 뜻이다. 이를 위해 키캡을 교체할 수 있는 커스텀 키캡 세트도 함께 준비했다.

여기에 작년 ‘아이디어 공모전’ 굿즈였던 컴투스 키캡으로 포인트를 주기로 했다. 본격적으로 작업을 시작해 보자.

먼저 사용하지 않을 기존 키캡을 제거한다. 필자는 철사 형태의 키캡 리무버(Keycap Puller)를 선호하는데, 플라스틱 리무버보다 키캡 표면의 손상을 줄여주기 때문이다. 다만 힘 조절을 잘못하면 키캡이 튕겨 나가거나 스위치까지 뽑힐 수 있으니 주의해야 한다. 팁을 하나 주자면, 수직으로 일정한 힘을 주어 단숨에 뽑아내는 것이 요령이다.

시원하게 키캡을 제거했다면, 이제 좋아하는 키캡으로 나만의 배열을 채울 차례다.

작년 행사 때 그토록 원했던 ‘집토끼’ 키캡과 ‘데빌몬’ 키캡을 꺼냈다. 해당 굿즈를 얻기 위해 회사 선배들과 열정적으로 게임에 참여했던 추억이 떠올라 더욱 즐겁게 작업할 수 있었다. (당시 키캡을 양보해 준 선배님들께 다시 한번 감사의 말씀을 전한다. 정말 갖고 싶었다.) 서랍 속에 잠들어 있던 소중한 키캡들이 드디어 제 자리를 찾아 빛을 발하는 순간이다.

드디어 내 마음대로 커스텀 한 산뜻한 넘버패드가 완성되었다.
총평: 적응 기간을 넘으면 확실한 효율

이렇게 커스텀한 넘버패드로 약 5일간 작업했다. 처음에는 왼쪽 넘버패드가 익숙하지 않았지만 1~2일이 지나자 금방 적응할 수 있었다. 적응 이후에는 확실히 편리하게 작업할 수 있었다.
굳이 단점을 꼽자면 넘버패드만큼의 공간을 차지한다는 점이다. 하지만 요즘 텐키리스 키보드가 유행이니만큼 오히려 다양한 텐키리스 키보드를 사용할 기회로 삼을 수 있다. 필요할 때만 넘버패드를 꺼내 쓰면 되므로, 책상을 깔끔하게 유지하면서도 넘버패드를 자주 쓰는 사람에게는 선택적 활용이 가능하다.
항상 눈여겨봤던 아이템이었는데 실제로 사용해 보니 작업 효율에 확실히 도움이 됐다. 작업 동선과 능률에 관심이 많은 사우분들께 추천한다.
안전한 웹을 위한 선택이 아닌 필수
요즘 뉴스에서 사이버 공격 이야기가 하루가 멀다 하고 들려온다. 그만큼 우리에게 안전한 웹 서비스는 선택이 아닌 필수가 되었다.
이런 변화 속에서 전 세계의 보안 전문가와 개발자들이 함께 머리를 맞대고 ‘안전한 인터넷 세상’을 만들기 위해 힘을 모은 단체가 있다. 바로 ‘OWASP(Open Web Application Security Project)’이다.

OWASP는 누구나 참여할 수 있는 열린 보안 커뮤니티로, 안전한 웹 서비스를 구축하기 위한 지식과 가이드를 전 세계에 무료로 제공한다. 이번 기사에서는 OWASP의 주요 활동과 가치, 그리고 이를 통해 우리가 얻을 수 있는 실질적인 인사이트를 함께 살펴본다.
OWASP란 무엇인가?
OWASP는 ‘Open Web Application Security Project’의 약자로, 전 세계 보안 전문가와 개발자들이 함께 만들어가는 비영리 보안 단체다.
2001년 설립 이후, OWASP는 웹 애플리케이션 보안 강화를 목표로 다양한 가이드, 도구, 교육 자료를 무료로 배포하고 있다. 특히 누구나 참여 가능한 ‘오픈 커뮤니티(Open Community)’ 형태로 운영되어 보안 전문가는 물론 개발자, 학생 등 보안에 관심 있는 사람이라면 누구나 함께할 수 있다.
OWASP의 핵심 목표는 명확하다. “모든 사람이 더 안전한 웹 환경을 만들 수 있도록 돕는 것.”이다.
대표 프로젝트 – OWASP Top 10
OWASP의 가장 유명한 프로젝트는 단연 ‘OWASP Top 10’이다. 이는 전 세계 보안 전문가들이 실제 침해 사례를 분석해 선정한 ‘가장 빈번하고 위험한 웹 취약점 10가지’를 정리한 리스트다.
가장 최근 버전에는 인증 및 접근 제어 취약점, 민감 정보 노출, 보안 설정 오류 등 실제 운영 환경에서 반복적으로 발생하는 문제들이 포함돼 있다.

이 목록은 웹 개발자와 보안 담당자가 ‘무엇부터 점검하고 개선해야 하는가’를 판단하는 중요한 기준이 된다. 단순한 이론 정리가 아니라, 실무에서 바로 활용할 수 있는 보안 체크리스트로서의 가치가 크다.
OWASP 서울 (OWASP Seoul Chapter)
OWASP는 전 세계 각 지역에 ‘챕터(Chapter)’라 불리는 지부를 두고 있으며, 한국에는 ‘OWASP 서울(OWASP Seoul Chapter)’이 있다.
OWASP 서울은 국내 보안 전문가와 개발자들이 모여 웹 보안 기술과 경험을 공유하는 열린 커뮤니티다. 정기 세미나, 워크숍, 콘퍼런스를 통해 최신 보안 동향을 나누고, 누구나 이해하기 쉬운 교육 자료와 번역 콘텐츠를 제공한다.
무엇보다 OWASP 서울은 ‘함께 배우고 성장하는 공간’이라는 점에서 의미가 크다. 전문가뿐 아니라 보안에 관심 있는 개발자와 학생들도 자유롭게 참여하며, 안전한 웹 환경을 만드는 데 직접 기여할 수 있는 기회의 장이 되고 있다.
OWASP 서울 챕터 참석 및 발표 후기
OWASP Seoul Chapter 10월 세미나: 보안 소방수 특집

지난 10월, OWASP 서울 챕터의 메인 테마인 ‘보안 소방수 특집’ 세미나에 연사로 초청받아 참석하게 되었다.
이번 세션은 “위협 대응과 자동화된 위협 탐지 전략”을 주제로, 필자가 직접 현장에서 경험한 사례와 실무 과정에서 맞닥뜨린 어려움, 이를 극복하기 위해 적용했던 방법들을 나누는 자리였다. 모두가 함께 배우고 인사이트를 얻을 수 있도록, 지식을 아낌없이 공유하는 시간을 갖고자 마련했다.

- 위치: D.Camp 선릉 6층
- 발표 주제: 사이버 위협 대응을 위한 Incident Response와 다크웹 활용 전략
- 발표 시간: 1시간 내
- 총 12개의 주제를 선정하여, 각 항목마다 주제 설명과 관련 경험·사례를 결합하고, 이를 통해 느낀 점과 지식을 함께 전달하고자 했다.

이번 세미나 현장은 시작 전부터 활기가 넘쳤다. 다양한 기업과 기관에서 보안 전문가 및 관련 업무를 담당하는 분들이 자리해 주셨고, 평소 보안 실무를 함께 고민해온 전문가들과 직접 의견을 나눌 수 있다는 점에서 모두의 기대감이 컸다.

발표가 시작되자 참석자들의 집중도는 매우 높았다. 각자의 현장에서 마주했던 보안 문제나 운영상의 고민들을 바탕으로 질문이 이어졌고, 그 내용 또한 단순한 이론적 궁금증이 아닌, 실무와 현장을 반영한 깊이 있는 논의가 오갔다. 발표를 진행하는 내내 “질문의 수준이 다르다”는 생각이 들 만큼, 참가자 한 분 한 분의 경험과 통찰이 녹아든 대화들이 이어졌다.


특히 ‘자동화된 위협 탐지 전략’에 대한 세션에서는 실제 운영 환경에서 겪었던 문제나 효율적인 대응 방안에 대한 토론이 활발하게 이루어졌다. 단순히 발표를 듣는 자리를 넘어, 서로의 경험을 나누고 배우는 협업의 장이 된 점이 인상적이었다.
세미나를 마친 후에도 참석자들은 현장 곳곳에서 의견을 교환하고 네트워킹을 이어갔다. 이번 행사가 단순한 정보 공유를 넘어, 보안 실무자들이 서로의 고민과 해결책을 공유하며 한층 더 성장할 수 있는 계기가 되었음을 느낄 수 있었다.
마치며
보안은 거창한 기술이 아니라, 작은 관심과 습관에서 시작되는 문화다. OWASP는 그러한 문화를 만들어가는 사람들의 모임이자, 모두가 함께 성장하는 열린 지식의 장이다.
우리 모두 OWASP의 정신처럼 ‘보안을 함께 만들어가는 조직’으로 한 걸음 더 나아가기를 기대한다.

“AI가 실무의 속도를 이렇게 바꿀 수 있을 줄은 몰랐어요.”
컴투스 구성원들의 생성형 AI 실무 역량 강화를 위해 마련된 ‘AI ART 캠프’가 총 8회차의 여정을 성공적으로 마무리했다. 총 21명의 구성원이 참여한 이번 캠프는 98.2%의 높은 출석률을 기록하며, 구성원들의 AI에 대한 관심과 열의를 다시 한번 확인할 수 있는 자리였다.
이번 캠프는 단순히 툴을 익히는 과정을 넘어, Midjourney·ComfyUI·나노바나나·AI API 활용·2세대 모델 응용 기법 등 실무 중심 커리큘럼을 중심으로 구성되었다. 특히 이미지 생성과 편집은 물론 프롬프트 구조화, 노드 기반 모델의 이해, 자동화 워크플로 구축까지 실제 업무에 즉시 적용 가능한 내용을 깊이 있게 다뤘다.

이번 과정을 통해 생성형 AI가 ‘막연한 가능성’을 가진 도구에서 실무에 도움이 되는 ‘실용적 도구’로 다가왔다는 점을 체감했다. 이번 기사에서는 AI ART 캠프에 참여한 구성원이 들려주는 실제 이야기를 통해, 이러한 변화가 현장에서 어떻게 나타났는지 살펴보고자 한다.
Part 1. 참여 계기


“툴 실습이 아닌, 내 일에 진짜로 써보고 싶었어요.”
참가자들은 각자의 업무에서 겪는 ‘반복 작업의 피로’와 ‘리소스의 한계’를 AI 기술로 해소하고자 했다. 이들은 개인의 성장을 넘어 팀 전체의 효율성을 높이겠다는 명확한 목표를 가지고 교육에 임했다.
| 닉네임 | 직무 |
| 아르르 | AD |
| 의지 | 배경 모델러 |
| 햄토리 | 디자인 |
| 햄 | 원화 |
아르르: 저는 GF제작본부에서 근무하며 미드저니 1세대부터 AI를 적극적으로 활용해 왔고, 소이랩 온라인 강의까지 수강할 정도로 관심이 많았습니다. 다만 협업하는 팀원들에게 이 기술을 전파하는 데에는 다소 한계를 느꼈습니다. 이번 캠프에서는 AI 활용의 정확도와 활용도를 높여 팀 전체의 작업 효율을 극대화하는 것을 최우선 목표로 삼았습니다. 결국 AI를 개발 파이프라인에 최대한 자연스럽게 녹여내어 효율성을 높이는 방안을 모색하는 것이 중요하다고 생각했습니다.”
햄: 저는 평소에도 ComfyUI나 나노바나나 같은 툴을 자주 사용해 왔지만, 업계 현황이나 2세대 모델의 응용법, 그리고 API 관련 지식 등은 더 보완하고 싶었습니다. 특히 그래픽 직군 동료들이 AI에 대해 막연한 장벽을 느끼지 않도록, 제가 먼저 경험하고 지식을 나누고 싶은 마음이 컸습니다. AI를 어떻게 응용해야 더 효율적으로 사용할 수 있을지 그 방법을 찾는 것이 이번 교육의 목표였습니다.
햄토리: 저는 마케팅 소재나 운영 배너 디자인을 담당하고 있습니다. AI를 사용하더라도 원하는 이미지를 정확히 구현하기가 어려웠고, 소위 ‘AI 티’가 나는 결과물 때문에 후가공에 많은 공수를 들여야 하는 한계가 있었습니다. 그래서 전문가의 프롬프트 작성법과 세팅 노하우를 참고해, 원하는 비주얼을 효율적으로 도출하는 방법을 배우고 싶었습니다.
의지: 저는 배경 모델링 팀에서 라이팅과 후처리 작업을 맡고 있는데, 산맥이나 구름 같은 간단한 리소스조차 매번 팀원에게 요청해야 하는 비효율적인 상황이 있었습니다. 그래서 AI를 통해 머릿속 이미지를 즉시 레퍼런스로 생성해 활용하고, 적합한 자료를 찾느라 하루 이상 걸리던 시간을 획기적으로 줄이는 것이 목표였습니다. 이렇게 되면 팀원들과의 커뮤니케이션 속도 또한 한층 높아질 것이라 기대했습니다.
Part 2. 체감된 변화

“하루 반나절 걸리던 작업이 30분 만에 끝났어요.”
“작업 공정이 70% 이상 줄었습니다.”
캠프 수강 이후, AI 툴 활용은 단순 실습을 넘어 실제 업무 자동화로 이어졌다. 서베이 결과에 따르면, 이미지·영상 생성 평균 작업 시간은 30% 이상 단축되었고, AI 결과물 활용 빈도는 월 기준 50% 이상 증가했다.
의지: 이전에는 레퍼런스 탐색에만 하루 반나절이 넘게 걸렸고, 심지어 스테이블 디퓨전 모델과 로라(LoRA)를 찾는 데 꼬박 하루가 소요되기도 했습니다. 하지만 교육 이후에는 레퍼런스 시안 작업을 30분 내외로 마칠 수 있게 되었습니다. 이러한 긍정적인 변화를 확인한 팀에서도 ‘실무 사용 가치가 충분하다’고 판단하여, 이번 달부터 미드저니 팀 결제를 도입하기로 결정했습니다.
햄토리: 예전에는 야구공이 터지는 장면처럼 복잡한 이미지를 만들 때, 스톡 이미지를 찾고 합성한 뒤 라이팅을 다시 잡는 데 네다섯 시간은 걸렸습니다. 이제 2세대 AI 모델과 노드 설정을 활용하니 10~15분이면 원하는 결과물이 바로 나옵니다. 불필요하게 반복해야 했던 합성 작업이 사라진 셈이죠.
아르르: AI 도입 후 생성에 소요되는 시간이 체감상 50% 이상 줄었습니다. 개선된 워크플로를 팀에 공유하면서 기존 대비 전체 일정의 70~80% 정도를 절약하고 있습니다. 실제로 20일이 소요되던 일러스트 작업을 10일 만에 마친 사례도 나왔습니다. 최근에는 AI를 활용해 어떻게 더 높은 효율을 낼 수 있을지 계속 고민하고 있습니다.
햄: 앞서 다른 분들이 말씀하신 툴 사용 속도 개선, 스타일 일관성 유지, 실무 적용 아이디어 등에 깊이 공감합니다. 저는 그동안 API 관련 지식이나 동영상 생성 작업에 어떻게 접근해야 할지 막막했는데, 교육을 통해 나노바나나도 API를 이용하면 효율적으로 통제하며 사용할 수 있다는 점을 알게 되었습니다. 앞으로 AI 스튜디오를 활용할 때 큰 도움이 될 것 같습니다.
이러한 변화는 개인의 효율 향상을 넘어, 팀과 부서 단위로 AI 활용 문화를 빠르게 확산시키는 결과로 이어졌다. 실제로 여러 팀에서 수강생들의 성공 사례를 지켜보며 AI 도입을 검토하거나 팀 결제를 진행하는 등, 조직 전체의 인식 전환과 확산 효과가 뚜렷하게 나타나고 있다.
Part 3. 기술적 장벽 극복

“구조를 눈으로 보니 원리를 알겠더라고요.”
“100% 이해는 어렵지만, 어떻게 접근할지는 알게 됐습니다.”
ComfyUI의 노드 방식은 수강생들이 가장 어렵게 느꼈던 부분 중 하나였다. 노드 기반 인터페이스는 초반에는 큰 장벽처럼 다가왔지만, 이번 과정을 통해 단순한 툴 사용법을 넘어 AI가 작동하는 흐름을 설계하는 법을 이해하는 데 결정적인 역할을 했다.
햄토리: 솔직히 ComfyUI는 처음에 정말 낯설고 어려웠습니다. 노드 방식의 툴이 처음이라 어디에 무엇을 연결해야 할지부터 막막했죠. 하지만 노드를 통해 이미지 생성 과정을 시각화해 보니, 단순히 결과물만 얻는 것을 넘어 AI가 이미지를 구현하는 흐름을 구조적으로 이해할 수 있었습니다. 어떤 입력값이 결과에 어떤 영향을 주는지에 대한 감각이 길러진 셈이죠. 그래서 가장 인상적인 파트였습니다.
아르르: 저는 이전에 포터블 버전으로 ComfyUI 강의를 들은 경험이 있어 개인적인 장벽은 낮았지만, 처음 접하는 동료들에게는 노드가 큰 부담이 되는 것을 목격했습니다. 후반부의 노드 기반 교육이 특히 인상 깊었는데, 강사님께서 업스케일, 디테일러, 인페인트처럼 활용도 높은 노드들을 차근차근 설명해 주셨습니다. 그 모습을 보며 ‘나도 팀원들에게 저런 방식으로 설명해야겠다’는 힌트를 얻었습니다. 문서를 작성할 때도 ‘이 노드의 역할과 구동 원리’를 함께 설명해야 사람들이 잘 따라올 수 있겠다는 확신이 들었습니다.
햄: 저는 2세대 모델의 프롬프트 작성 방식에 대한 설명이 가장 유익했습니다. 강사님께서 나노바나나의 프롬프팅을 ‘어린아이에게 설명하듯 자세히 이야기해 줄수록 결과물이 좋아진다’고 비유하셨는데, 그 말씀을 듣고 나니 ‘왜 안 되는지, 혹은 왜 가능한지’에 대한 기준이 섰습니다. 이전에는 막연하게만 느껴졌던 부분들이 교육 후 꽤 명확해졌습니다.
의지: 저는 오히려 노드 방식이 더 반가웠습니다. 기존의 대화형 프롬프팅은 마치 계기판도 없는 곳에서 말로만 지시하는 듯한 ‘뜬구름 잡는’ 기분이었거든요. 반면 노드 방식은 버튼과 흐름이 눈에 보이니, 제가 어떤 기능을 가져와 어디에 연결해야 할지가 명확해서 좋았습니다. 특히 ‘AI 기술이 곧 3D 영역까지 확장될 것’이라는 이야기를 들었을 때, 제 작업과 AI의 미래가 ‘딸깍’하고 연결되는 듯한 감각을 느꼈습니다.



Part 4. 향후 계획 및 조언


“이젠 ‘일을 빼앗는 존재’가 아니라, ‘함께 일하는 파트너’로 느껴집니다.”
참가자들은 AI를 ‘대체의 위협’이 아닌 ‘역량을 확장해 주는 동료’로 재정의했다. 반복 작업은 AI에게 맡기고, 창의적 판단에 집중할 수 있게 되면서 업무의 질이 달라졌다.
아르르: 저는 AI를 내 일을 대체하는 ‘위협’이 아니라, 아이언맨의 인공지능 비서 ‘자비스’ 같은 존재라고 생각합니다. 결국 AI를 얼마나 효과적으로, 적재적소에 사용하느냐에 따라 업무 효율과 결과물의 퀄리티가 크게 달라질 수 있다고 봅니다. 또한 ComfyUI가 가진 워크플로 공유·확장·수정·관리의 이점을 잘 활용한다면, 한 사람의 노하우가 팀 전체에 긍정적인 영향을 줄 수 있을 것이라 기대하고 있습니다.
햄: 제 업무는 그래픽 직군이 AI 기술에 좀 더 쉽게 접근하고 사용할 수 있도록 연구하고, 결과물이 필요한 팀의 니즈에 맞춰 작업을 지원하는 일입니다. 이번에 배운 내용을 토대로 이전보다 더 광범위한 R&D에 적용할 수 있을 것 같습니다. 혼자 정보를 습득해야 할 때 학습 방향을 잡게 된 점도 매우 컸습니다.
특히 예전에는 막연했던 부분들, 즉 ‘왜 안 되는지, 왜 가능한지’에 대한 기본적인 기준이 생겨서 시간을 더 효율적으로 쓰고 빠르게 작업할 수 있다는 확신이 듭니다. 아직 AI에 대해 막연한 어려움이나 장벽을 느끼는 분들이 계신다면 이번 교육이 분명 도움이 될 것입니다. 관심 있는 분들이라면 지원 전에 툴의 기본 사용법 정도만 익히고 오셔도, 훨씬 쉽고 재미있게 많은 것을 얻어 가실 수 있을 것 같아요.
햄토리: 지금까지는 디자인에 필요한 이미지 리소스를 생성하는 정도로만 AI를 활용했다면, 앞으로는 초기 아이데이션 단계부터 적극적으로 도입해 볼 계획입니다. 단순 사이즈 변형이나 템플릿 형태로 반복 제작되는 디자인물에도 AI를 활용해, 작업 시간은 줄이면서 퀄리티를 유지할 수 있는 워크플로를 구축해 보고 싶습니다.
처음에는 ‘AI’라는 단어가 낯설고 복잡하게 느껴질 수 있지만, 막상 다뤄보면 생각보다 쉽고 친근하며 재미있습니다. 한 번 배워두면 작업 효율뿐 아니라 아이디어 확장에도 확실히 도움이 됩니다. 실제로 다른 수강생분들의 실습 예제를 보면서 ‘보는 눈이 있는 사람이 AI도 잘 쓴다’는 사실을 체감했습니다. AI에게 일자리를 빼앗길까 걱정하기보다, AI를 어떻게 잘 조종해서 내 업무에 녹여낼지 고민하는 것이 더 현명한 태도라고 생각합니다!
의지: 앞으로 비주얼 레벨 디자인과 라이팅 레퍼런스 제작에 적극적으로 활용할 계획입니다. 프랍(Prop) 원화나 형태 참고 이미지를 생성해 현재 팀에서 필요한 내용을 빠르고 직관적으로 타 팀에게 전달한다면, 전체적인 아트 프로세스, 그중에서도 커뮤니케이션 속도를 높이는 데 큰 도움이 될 것 같습니다.
Part 5. 지표로 본 AI ART 캠프의 성과

숫자가 증명하는 성장: 응용력 8.43점, 속도 30% 향상

인터뷰뿐만 아니라 서베이 지표에서도 교육의 성과는 뚜렷하게 나타났다.
① 다양한 이미지 정보 조합·응용력 향상: 8.43점
수강생들은 단일 툴 사용을 넘어 여러 모델과 노드를 조합해 원하는 결과물을 만들어 내는 능력이 가장 크게 성장했다고 답했다. 이 과정에서는 강사의 전문성(9.00점)과 참여를 이끌어내는 수업 운영 방식(9.24점)이 중요한 역할을 했다. 특히 ComfyUI처럼 진입 장벽이 높은 노드 기반 툴은 강사의 전달력이 필수적인데, 실무 경험이 풍부한 강사의 명확한 설명과 적절한 속도 조절 덕분에 수강생들은 복잡한 구조를 끝까지 따라가며 응용력을 쌓을 수 있었다. 난이도 편차와 빠른 진행 속도에도 불구하고 높은 성장을 보였다는 점은, 전문성 있는 강사와 참여 기반의 학습 환경이 시너지를 냈음을 의미한다.
② 실습 내용의 업무 활용도 만족도: 8.29점
8.29점은 ‘교육에서 다룬 툴과 실습 내용이 실제 업무에 도움이 되었는지’를 평가한 결과다. 이는 수업에서 제공된 실습 자체가 본인의 업무에 직접적으로 연결될 만큼 실무 밀착형이었다는 방증이다. 커리큘럼은 Midjourney, 나노바나나, ComfyUI, AI 기반 보정·편집, API 활용 등 현장에서 즉시 활용 가능한 핵심 툴과 개념을 중심으로 구성되었다. 덕분에 수강생들은 단순히 이미지를 만드는 것을 넘어, AI를 활용해 업무 흐름을 재정비하는 시야를 확보할 수 있었다. 이는 교육이 단순한 기능 학습을 넘어 AI를 ‘실무 효율화 도구’로 인식하게 만들었다는 점에서 의의가 크다.
③ 실제 업무 적용 역량 강화: 응용력 8.43점 / 일관성 유지 8.19점
단순한 기능 습득에 그치지 않고, 여러 모델을 조합하는 방식이나 이미지의 일관성을 유지하는 프롬프트 활용법 등 실전 응용 능력이 전반적으로 향상된 것으로 나타났다.
④ 업무 속도 개선: 참여자 과반수가 업무 속도 30% 이상 향상 경험
참여자 10명 중 8명 이상이 AI 도입 후 업무 속도가 눈에 띄게 빨라졌다고 응답했으며, 일부 참가자는 2시간이 걸리던 이미지 수정 작업을 5분 만에 끝낸 사례를 소개하기도 했다. 또한 AI 기반 시안 제작 빈도(52%)와 회의 자료에 AI 결과물을 활용하는 비율(62%)도 증가해, 실무 내 적용 범위가 넓어지고 있음을 보여주었다.
물론 개선이 필요한 부분도 있었다. 특히 ComfyUI의 노드 기반 실습에서 개인별 숙련도 차이가 컸던 점, 기초부터 심화까지 충분히 실습하기에는 시간이 부족했다는 의견, 그리고 더 높은 난이도를 원하는 수강생들의 요구도 공존했다. 하지만 이는 역설적으로 구성원들이 생성형 AI를 더 깊이 활용하고자 하는 니즈가 높다는 것을 의미하기도 한다. 이번 캠프는 이러한 성장 경험을 바탕으로, 참가자들이 AI를 실무에서 활용 가능한 ‘창작 파트너’로 받아들이는 중요한 계기가 되었다.
Part 6. 다음 캠프를 향해

컴투스는 급변하는 업계 흐름에 발맞춰 직무별 AI 전문 역량 교육을 선제적으로 추진하고 있다. 이번 AI ART 캠프 역시 그 일환으로, 단순한 툴 실습을 넘어 ‘생성형 AI를 실무의 언어로 사용하기 위한 사고방식과 흐름’을 익히는 과정이었다. 참가자들은 이미지 생성 및 영상 제작 등 실제 업무에서 원하는 결과물을 도출하기 위해 프로세스별 AI 툴을 복합적으로 활용하는 방법을 익혔으며, 이를 통해 AI를 단순한 도구가 아닌 ‘파트너’로 인식하는 전환점을 맞이했다.
앞으로도 컴투스는 다양한 직무 캠프를 지속적으로 개최하여, 구성원들이 업무 생산성과 효율성을 향상시키는 데 필요한 지식과 기술 등을 보다 체계적으로 학습할 수 있도록 지원할 예정이다.
※ 본 기사는 AI ART 캠프에 참여한 수료자들을 대상으로 설문/인터뷰를 바탕으로 작성되었습니다.
솔직히 고민이 좀 됐다.
시간이 조금 지나긴 했지만, 워낙 화제성이 높은 게임이라 선정에 망설임이 있었다. 그럼에도 이 게임을 선택한 이유는 필자가 게임 개발 구성원이자 오랜 RPG 매니아로서 ‘클레르 옵스퀴르: 33 원정대’의 그래픽이 궁금했기 때문이다. (나는야 아티스트~!) 아티스트의 시선으로 본 이 게임의 ‘질감·조명·연출’이 실제 플레이에서 어떻게 구현되었을지, 기대와 설렘을 안고 ‘33 원정대’를 접하게 되었다.
’33원정대’는 전 세계 게이머들을 놀라게 한 작품이다. 높은 완성도와 매력적인 아트워크, 그리고 독특한 세계관으로 주목을 받았고 출시 5개월 만에 500만 장을 판매했다. 2025년 많은 상을 받으며 흥행과 비평 모두에서 성공한 게임이 되고 있다. 게임에 수록된 오리지널 사운드트랙은 3억 3천만 이상의 스트리밍 횟수를 기록하고 있기도 하다(필자도 해당 시간을 보태고 있다). 이러한 어마어마한 기록들을 불과 30여 명의 인력으로 완성했다는 것이 무척이나 놀랍다. 핵심 개발진의 규모가 작았음에도 외주 협력을 통해 높은 완성도를 이끌어낸 점은 주목할 만하다. 이는 개발비 상승 압박을 겪는 국내 게임 업계에 새로운 방향성과 시사점을 던져준다.

게임 정보
- 개발사: Sandfall Interactive
- 유통: Kepler Interactive
- 플랫폼: PS5, Xbox Series X|S, Windows PC (Steam / Epic / GOG)
- 발매일: 2025년 4월 24일
33이라는 숫자가 주는 의미
’33’은 인류의 33세 인구의 마지막 해를 뜻한다. ’34’라는 숫자가 지워지고 ’33’이 새겨지는 순간, 34세 이상의 인간은 모두 ‘재’가 되어 사라진다.

’33’이 쓰인 순간 34세였던 구스타프의 연인은 재가 되어 사라진다. 내 눈앞에서 사랑하는 연인이 사라지는 비극이라니…


주인공은 연인에 대한 복수와 인류 구원을 위해 인류의 적 ‘페인트리스’를 쓰러뜨리고자 여정에 오른다. 그러나 출발점부터 동료들이 학살당하는 참상을 간신히 빠져나온 뒤, 곧 ‘압도적인 강적’ 앞에서 자신의 무력함을 깨닫고 권총을 자신에게 겨누는 장면에 이른다.


필자는 이 두 장면에서 강한 서사와 공감이 생겼다. 연인이 재가 되는 장면에서는 ‘내 가족이라면?’이라는 근본적인 질문을 던지며 강한 공감을 유발했다. 주인공 구스타프의 극한 절망은 단순한 감탄을 넘어, 이 게임의 강한 서사적 깊이를 느끼게 하는 핵심이었다.
이후 펼쳐지는 스토리 역시 훌륭하다. 자세한 내용은 스포일러 방지를 위해 직접 경험해 보시기를 추천한다. ’33’이라는 숫자는 플레이어에게 언제나 ‘마지막’이라는 긴장감을 깔아둔다. 이제 스토리가 주는 강한 동기와 경험을 바탕으로 ’33원정대’를 더 들여다보자.
턴제인데 손맛이 난다: 턴제 + 실시간 액션
’33원정대’는 턴제지만 액션 같은 긴장감이 있다. 기존 턴제 RPG는 보통 명령만 내리고 구경한다는 인상이 강한데, 이 게임은 다르다. JRPG의 대표격인 ‘파이널 판타지’도 오랜 시간 턴제의 굴레에서 벗어나려 노력해왔는데, 33원정대는 턴제와 액션을 융합하는 또 다른 해법을 제시했다. 턴제의 전략성을 유지하면서 피하기/패링으로 리듬·판정·난이도를 섬세하게 튜닝했다. 그 결과 “내 차례”와 “상대 차례” 사이에 빈틈이 없다. 입력 타이밍이 정확할수록 리워드가 커지는 구조라 액션 게임의 몰입감이 자연스럽게 스며든다.



초반엔 한두 번 쓰러지며 타이밍을 익힌다. 하지만 ‘감’을 잡는 순간, 방금 전까지만 해도 벽처럼 어려웠던 적을 ‘읽어서’ 이기는 경험을 한다. 어려운 적도 몇 번 죽으면서 피하기와 패링의 타이밍을 체득하다 보면 어느 순간 어려운 적을 물리치는 쾌감도 느끼게 된다. 죽는 과정이 학습인 소울류 ‘다크 소울/엘든 링(Elden Ring)’의 ‘경험’이 떠오르기도 한다.
‘패링’과 ‘피하기’를 잘하면 아무리 어려운 적도 공략할 수는 있다. 다만 그 경우 캐릭터가 주는 대미지의 영향이 극히 낮아 전투가 매우 길어지고, 한 번의 실수로 플레이어가 그대로 쓰러질 수 있는 숨 막히는 긴장감을 감수해야 한다(플레이어는 한 방에 죽을 수 있다;;;).
‘허들’을 넘는 순간이 온다: 학습 곡선 & 시스템
게임에 공부가 필요할까? 대부분의 게임은 비슷한 패턴이 있어 크게 고민하지 않아도 플레이할 수 있다. 하지만 33 원정대는 다르다. 확실한 허들 구간이 존재한다.
나의 경우 1막 보스가 그 허들이었는데, 지금까지의 전투 경험과 회피 타이밍만으론 물리적으로 뚫기 힘들었다. 반복되는 패배 앞에서 선택지는 두 가지! 단순 반복 사냥(노가다)을 해서 캐릭터를 성장시키거나, 시스템을 공부하거나.

이때부터 시스템을 파고들기 시작했다. 스킬 시스템은 어떻게 구성되어 있는지, ‘픽토스’와 ‘루미나’ 시스템은 어떻게 활용하는지, 능력치와 스킬 트리는 어떻게 배분해야 하며 캐릭터 간 시너지는 무엇인지. 하나씩 뜯어보니 전투가 다르게 보이고 게임이 달라 보였다.
공부한 만큼 캐릭터가 강해짐을 느꼈고, 이는 곧 ‘재미’로 연결되었다. 그렇게 성장한 나의 캐릭터에게 1막 보스는 더 이상 허들이 아닌 성장의 터닝 포인트가 되었다. 나의 캐릭터가 강해진 만큼 게임이 읽혔고, ‘재미’라는 스탯이 올랐다. 만약 1막 보스라는 허들이 게임 디자이너의 ‘치밀한 설계’라면 소름이 돋을 정도다.
허들을 학습으로 바꾸는 구조: 시스템 및 방식
전체적으로 템포가 빠르다. 맵을 달리고 마법을 통한 공간 점프를 활용할 때의 이동 템포가 쾌적하게 느껴진다. 전투 템포 또한 경쾌하고 로딩·효과 연출이 과장되지 않아 반복 전투가 피로하지 않다.

게임 구성
- 비밀 공간·숨겨진 아이템·숨은 경로 등 발견형 보상이 풍부하다.
- 이해도가 오를수록 동선이 효율적으로 느껴져 밀도 높은 탐험이 된다.
캐릭터 전투의 개성
- 캐릭터마다 전투 스타일이 다르다.
- ‘픽토스’,‘루미나’, 능력치/스킬 트리 배분, 파티 시너지를 연구할수록 체감 화력이 상승한다.
- 공부를 하면 할수록 강해지는 나의 캐릭터! 이것이야말로 RPG의 정석이 아니겠는가!
종합적으로 턴제 + 실시간 입력 + 캐릭터 빌드 전략이 플레이어에게 끊임없이 고민하고 공부해야 하는 RPG 게임의 재미를 만들었다.
그래픽(ART)
‘33 원정대’는 게임 속에 완벽하게 녹아든 뛰어난 그래픽을 선보이며, 그 자체로 하나의 ‘예술 작품’처럼 느껴진다. 유화적인 느낌과 개성 있는 몬스터 디자인은 스토리의 결말과도 이어지면서 이미지가 플롯을 이끌고, 플롯이 이미지를 견인한다.
33 원정대는 벨 에포크(19세기 말~20세기 초) 프랑스를 모티브로 한 세계관에 맞춰, 그 시대 감수성을 반영한 캐릭터 복식을 선보인다. 특히 캐릭터 복장의 퀄리티가 매우 높다. 이는 복장을 획득하기 위한 숨은 장소 탐색 및 사이드 미션으로 자연스럽게 이어지며, 플레이어가 더욱 꼼꼼하게 게임을 탐험하도록 유도한다. 복장으로 인한 시각적 즐거움은 덤이다.



애니메이션의 타이밍
앞서 언급한 ‘피하기’와 ‘패링’ 시스템 때문에 애니메이션의 타이밍은 전투의 핵심 요소가 된다. 개발진의 의도가 느껴지는 ‘애간장 녹이는 애니메이션 타이밍’은 유저에게 순간 ‘아차’ 하게 만드는 긴장감을 유발한다. 필자가 지금까지 게임을 하면서 몬스터의 동작을 이토록 유심히 본 적이 없는 것 같다.
UI 디자인


전투 UI는 사선 배치를 통해 정형화되지 않은 스타일리시함과 역동적인 느낌을 준다.

일반 전투 화면에서는 일반적인 가로 UI 배치를 사용하지만, 승리 화면에서는 사선의 각도로 틀어줌으로써 이전 전투 화면의 역동적인 느낌을 계승한다. 이는 평범하지 않은 연출이며 화면 구성의 멋짐을 더한다.

33 원정대는 ART 전반의 영역에서 치밀한 계산과 고민의 흔적이 느껴진다.
음악 (Sound)
필자는 음악에 대한 전문적인 평가는 어렵지만, ’33원정대’의 사운드트랙은 스토리와 캐릭터의 감정선에 너무나도 완벽히 녹아들어 있다. 음악은 필자의 마음을 녹이는 듯하며, 특히 ‘이야기 서사의 추진력’을 지니고 있다. 선율이 장면마다 다채롭게 변주되며 감정선과 플롯을 앞으로 이끌어 나간다. 엔딩을 본 후에도 ’33원정대’의 음악을 찾아 듣고 있는 필자를 볼 때마다 큰 감동을 느꼈음을 알 수 있다. 음악을 듣고 있노라면 장면들이 손끝에 남아 웬지 모르게 마음이 조금 짠해진다.
끝으로
‘33 원정대’는 턴제의 전략·액션의 손맛·아트의 밀도·음악의 감정선이라는 네 가지 요소가 완벽하게 하나로 묶여 있다. 신생 회사의 첫 작품임에도 불구하고, 게임 속에 녹아든 요소들은 결코 초보들의 합이 아닌 베테랑 장인들의 치밀한 협업과 경험을 플레이어에게 제공한다.
RPG 장르를 좋아하는 분들이라면 꼭 한번 ‘클레르 옵스퀴르 : 33원정대’를 경험해 보시기를 추천한다.

