안녕하세요. Rabbit입니다! 🐰
SAP의 세계에 오신 여러분, 진심으로 환영합니다! 이제 막 SAP와 친해지기 시작한 분들이나, 현업에서 “이거 Z로 개발해야 해요!”라는 말을 들었을 때 동공 지진을 경험한 분들을 위해 오늘 저 Rabbit이 나섰습니다.
오늘의 주제는 바로 SAP 개발의 영원한 친구이자 애증의 존재, SAP CBO 프로그램입니다!
많은 분들이 CBO, 혹은 Z-프로그램이라고 불리는 이 녀석 때문에 웃고 울곤 하는데요. SAP가 제공하는 기본 기능만으로는 우리 회사의 특이한(?) 업무를 다 처리할 수 없을 때, 구세주처럼 등장하는 것이 바로 CBO 프로그램이죠. 하지만 이 구세주가 때로는 시스템을 무겁게 만드는 주범이 되기도 한다는 사실!
오늘 저 Rabbit과 함께 SAP CBO 프로그램의 정체부터 장단점, 그리고 현업의 현실적인 딜레마까지 속 시원하게 파헤쳐 보겠습니다!
SAP CBO 프로그램? 그거 먹는 건가요?
SAP CBO 프로그램, 이름은 좀 거창하죠? CBO는 ‘Customer Bolt-On’의 약자로, 쉽게 말해 ‘고객(Customer)이 직접 추가(Bolt-On)한 프로그램’이라는 뜻입니다. 마치 가구에 새로운 선반을 직접 달거나, 자전거에 바구니를 추가하는 것처럼요!
CBO와 Z-프로그램, 쌍둥이 이름의 비밀
실무에서는 CBO라는 말보다 ‘Z-프로그램’이라는 말을 훨씬 더 많이 사용해요. 왜냐고요? SAP 시스템에는 재미있는 약속이 하나 있거든요. 바로 고객사(우리 회사)가 직접 개발하는 모든 개발 객체는 이름이 ‘Z’ 또는 ‘Y’로 시작해야 한다는 규칙입니다.
이는 SAP가 원래 제공하는 수많은 표준 프로그램들과 우리 회사가 만든 프로그램을 쉽게 구분하기 위한 장치예요. 마치 도서관에서 한국 소설은 ‘가’ 섹션에, 외국 소설은 ‘나’ 섹션에 모아두는 것처럼요. 덕분에 “아, 이건 우리 회사가 만든 거구나!”하고 한눈에 알아볼 수 있죠. 그래서 CBO 프로그램을 Z-프로그램이라고 부르는 거랍니다.
알기 쉬운 비유: 맞춤 정장과 CBO
더 쉽게 이해하기 위해 비유를 하나 들어볼게요. 여러분이 아주 멋진 명품 기성복 정장을 샀다고 상상해 보세요. 디자인도, 색상도, 원단도 다 마음에 드는데, 딱 하나! 팔 길이가 살짝 길거나, 내 스마트폰이 쏙 들어갈 만한 안주머니가 없는 거예요.
이때 우리는 몇 가지 선택을 할 수 있습니다.
- 수정 (Modification): 정장의 팔 부분을 아예 뜯어서 길이를 줄이고 다시 꿰매는 것. 이건 SAP의 표준(Standard) 프로그램을 직접 수정하는 것과 같아요. 매우 위험하고, 나중에 정장 브랜드에서 새로운 디자인이 나와도 A/S 받기 어려워지죠. (SAP 업그레이드 시 충돌 위험!)
- CBO 개발: 원래 정장은 그대로 두고, 내 몸에 딱 맞게 아주 멋진 행커치프를 추가하거나, 원하는 위치에 세련된 안주머니를 새로 만들어 다는 것. 이것이 바로 CBO(Z-프로그램) 개발입니다!

CBO 개발은 SAP의 순정(?) 상태를 해치지 않으면서 우리 회사만의 특별한 기능을 맘껏 누릴 수 있게 해주는 아주 유용한 방식입니다.
SAP CBO 프로그램의 빛과 그림자: 장점 vs 단점
모든 것에는 빛과 그림자가 있듯, SAP CBO 프로그램도 마찬가지입니다. 우리 회사의 업무 효율을 극대화하는 효자 노릇을 하다가도, 어느 순간 시스템을 느리게 만드는 골칫덩어리가 될 수 있죠. 핵심만 간단히 짚어볼까요?

장점: 우리 회사에 딱 맞는 맞춤형 옷!
- 높은 유연성과 맞춤화: CBO의 가장 큰 매력은 뭐니 뭐니 해도 유연성입니다. 전 세계 수많은 기업이 사용하는 SAP 표준 기능이 우리 회사의 독특한 업무 프로세스와 100% 일치하기는 어렵습니다. “우리 회사는 결재 라인이 5단계인데 너무 복잡해요.”, “A 데이터랑 B 데이터를 합쳐서 한 번에 보는 리포트가 꼭 필요한데…”와 같은 요구사항이 생길 때, CBO는 가뭄의 단비 같은 존재가 됩니다.
- 시스템 안정성 확보 및 업그레이드 용이성: 앞서 말했듯, CBO는 표준 프로그램을 직접 건드리지 않고 독립된 공간(‘Z’ 또는 ‘Y’ 네임스페이스)에 만듭니다. 덕분에 자칫 표준 기능을 잘못 건드려 시스템 전체가 멈추는 대참사(?)를 막을 수 있죠. 또한 SAP가 주기적으로 업그레이드될 때, 표준 프로그램을 직접 수정한 것보다 충돌 가능성이 훨씬 적어 유지보수 부담을 줄여줍니다.
단점: 그 옷, 관리하기는 너무 힘들어!
- 유지보수의 늪과 블랙박스화: CBO는 한번 만들고 끝이 아닙니다. 관련 법규나 회사 업무 프로세스가 바뀌면 계속해서 수정하고 관리해 줘야 하죠. 문제는 이런 CBO들이 하나둘씩 쌓이다 보면, 나중에는 누가, 왜, 어떻게 만들었는지 아무도 모르는 ‘블랙박스’가 될 수 있다는 겁니다. 담당자가 퇴사라도 하면… 으악! 정말 상상하기도 싫은 상황이 펼쳐지죠.
- 시스템 과부하와 성능 저하: “필요하니까 만들자!”라는 생각으로 CBO를 남발하다 보면, SAP 시스템은 점점 무거워지고 느려집니다. 특히 잘못 설계된 CBO 프로그램은 시스템 성능에 치명적인 영향을 줄 수 있습니다. 스파게티 면처럼 복잡하게 얽히고설킨 CBO 코드들은 결국 시스템 전체의 성능 저하라는 부메랑으로 돌아오게 됩니다.
현실 세계의 딜레마: 표준 T-코드 vs. Z-코드
이론적인 장단점을 살펴봤지만, 현실의 회사들은 어떨까요? 아마 많은 SAP 담당자분들이 비슷한 고민을 하고 있을 거예요.
“PI 담당자로서 현업 직원들에게 표준 T-코드를 교육해야 할지 고민될 때가 많습니다. 대부분의 업무는 Z-코드로 충분히 처리되는데다, Z-코드는 회사 규칙이 잘 반영되어 있어 통제가 쉽거든요. 반면 표준 T-코드는 강력하긴 하지만, 통제가 어렵고 사용자마다 다르게 써버리면 프로세스가 엉킬 수 있다는 부담이 있습니다.”
이건 정말 중요한 포인트입니다! 바로 ‘편의성’과 ‘통제’ 사이의 딜레마죠.
Z-코드: 친절한 개인 비서
현업 사용자 입장에서 Z-코드(CBO 프로그램)는 최고의 개인 비서와 같습니다. 우리 회사만의 규칙(예: 특정 조건에서는 특정 값을 못 넣게 막기, 필수 값 자동 입력)이 프로그램에 모두 녹아있어서, 사용자는 복잡하게 생각할 필요 없이 순서대로 입력만 하면 됩니다. 실수할 확률이 줄어들고 업무가 매우 편해지죠.
표준 T-코드: 강력한 만능 공구
반면 표준 T-코드는 강력한 만능 공구 세트와 같습니다. 기능도 엄청나게 많고 잘만 쓰면 빠르고 효율적이지만, 사용법을 제대로 모르면 다칠 수 있죠. 즉, 회사의 세세한 규칙까지 일일이 막아주지는 않기 때문에, 사용자가 실수로 데이터를 잘못 입력할 가능성이 Z-코드보다 높습니다. 운전면허 막 딴 사람에게 F1 경주용 차 키를 주는 것과 비슷하달까요?
무엇이 정답일까? 끝나지 않는 고민
그럼 모든 사용자가 표준 T-코드만 사용하는 게 정답일까요? 아마 아닐 겁니다.
만약 모든 사용자가 표준 T-코드만 쓴다면, Z-코드에 녹아있던 회사의 중요한 업무 규칙(Business Logic)들이 무시될 수 있습니다. 이는 데이터의 정합성을 해치고, 월말 결산이나 연말 보고 때 원인 모를 데이터 불일치로 나타나 더 큰 문제로 돌아올 수 있습니다.
결국 이 딜레마는 “어느 한쪽이 무조건 옳다”가 아니라, “어떻게 하면 양쪽의 장점을 모두 취하면서 단점을 보완할 수 있을까?”라는 지혜로운 고민으로 이어져야 합니다.
정리: CBO, 현명하게 사용하는 방법은?
자, 오늘 SAP CBO 프로그램에 대해 정말 많은 이야기를 나눴네요! Rabbit이 마지막으로 깔끔하게 정리해 드릴게요.
CBO 프로그램(Z-프로그램)은 우리 회사에 꼭 맞는 기능을 제공해 주는 아주 유용한 도구임이 틀림없습니다. 하지만 제대로 된 계획과 관리 원칙 없이 남발하면, 시스템을 망가뜨리는 주범이 될 수도 있는 양날의 검과 같습니다.
특히 현업의 편의성을 위해 만들어진 수많은 Z-코드와 시스템의 안정성 및 데이터 정합성을 중시하는 표준 기능 사이의 딜레마는 모든 SAP 운영 환경의 숙제와도 같습니다.
따라서 우리는 CBO를 개발하기 전에 항상 신중하게 고민해야 합니다.
- “이 기능, 정말 CBO로 만들어야만 할까?”
- “SAP 표준 기능이나 다른 설정으로 대체할 수는 없을까?”
- “지금 만들면, 미래의 우리는 이걸 잘 관리하고 유지보수할 수 있을까?”
- “명확한 개발 표준과 문서화 계획은 준비되었는가?”
꼭 필요한 CBO는 만들되, 철저한 개발 표준과 문서화, 거버넌스 체계를 갖추는 것이 무엇보다 중요합니다. 그것이 바로 애증의 Z-프로그램을 애정으로만 가득 채울 수 있는 유일한 방법일 테니까요!
오늘은 조금 현실적인 주제라 무거웠을까요? 하지만 SAP와 함께 성장하기 위해서는 꼭 한번 짚고 넘어가야 할 이야기였답니다. 다음 시간에는 더 재미있고 알찬 주제로 돌아올게요! 그때까지 모두들 안녕! 😎