CLOUD & AI · 팀플럿(주) 사업부

우리가 쓰는 인프라를
그대로 빌려드립니다

팀플럿은 40여 개의 서비스를 직접 짓고, 직접 굴립니다.

한 대 · 54개 프로세스

이 랙 안에서
40여 개가 동시에 돕니다

교실의 학습 도구도, 사장님의 서류함도, 결제도 전부 여기 있습니다.

직접 굴려 본 것만

팔기 전에
우리가 먼저 씁니다

고장도 우리가 먼저 맞습니다. 그래서 무엇이 진짜 문제인지 압니다.

운영 실적

소개서가 아니라
지금 돌아가는 숫자입니다

아래 값은 이 글을 쓰는 시점에 저희 서버에서 직접 읽은 것입니다. 늘려 적지 않았고, 계획값도 섞지 않았습니다.

0
동시 가동 프로세스
서비스 하나가 여럿을 쓰기도 합니다
0
서비스 도메인
전부 한 대에서 갈라 씁니다
0
TLS 인증서
자동 갱신, 만료로 끊긴 적 없음
0
연속 무중단
마지막 재부팅 이후

서버를 빌려주는 회사는 많습니다.

그중에 그 서버 위에서
자기 제품을 파는 회사
는 드뭅니다.

우리는 직접 운영해 보지 않은 것을
팔지 않습니다.

한 대 위에서

이만큼이 동시에 돌고 있습니다

01 · 위트 클라우드

한 대를 여럿이 쓰되
서로 보이지 않게

cloud.witcorp.co.kr — 콘솔
계정wh_orchard
요금제서버호스팅 · 2 vCPU
저장 공간18.4 / 40 GB
상태정상
격리 방식전용 파티션
자동 갱신매월 14일

계정 하나에 파티션 하나

이웃이 폴더를 거슬러 올라가 남의 파일을 보는 일이 호스팅에서 가장 흔한 사고입니다. 그래서 계정마다 독립된 파일시스템을 만들어 붙이고, 접속하면 그 안에 갇히게 했습니다.

한 계정이 디스크를 다 써도 옆 계정이 멈추지 않습니다.

만드는 서버와 굴리는 서버를 나눴습니다

결제를 받는 서버와 실제로 손님 사이트가 도는 서버가 다른 기계입니다. 결제 쪽이 공격을 받아도 돌아가던 사이트는 그대로 돕니다.

두 서버 사이는 «정해진 작업만 부를 수 있는» 통로 하나로만 이어져 있습니다.

만들다 실패하면 되돌리고, 돈도 돌려드립니다

서버를 만드는 도중 어딘가에서 틀어지면 중간 상태로 남기지 않고 전부 되돌립니다. 그 결제는 자동으로 환불됩니다.

«만들어지긴 했는데 안 되는 서버»를 남기지 않기 위한 규칙입니다.

02 · AI API 게이트웨이

주소 한 줄만 바꾸면
그대로 돕니다

기존 코드에서 바꾸는 곳
# 라이브러리도, 코드 구조도 그대로 둡니다 client = OpenAI( base_url="https://witcorp.co.kr/ai/v1", api_key="wa-••••••••", )
나가기 전 검사켜짐
차단됨주민등록번호 1건
가려짐휴대폰 2건 · 이메일 1건

OpenAI 와 같은 규격을 씁니다

쓰시던 SDK, 쓰시던 함수 이름 그대로입니다. 바꾸는 것은 접속 주소 한 줄뿐이라, 마음에 안 들면 되돌리는 것도 한 줄입니다.

묶어 두지 않는 것이 저희가 자신 있다는 표시입니다.

보내기 전에 한 번 읽습니다

직원이 무심코 붙여 넣은 주민등록번호가 그대로 모델에 실려 나가는 일을 막습니다. 모양이 비슷하다고 막지 않고, 검증식을 통과한 번호만 잡습니다.

모양만 보고 막으면 멀쩡한 주문번호·상품코드가 매번 걸려 결국 검사를 꺼 버리게 됩니다.

막을 것과 가릴 것을 나눕니다

주민등록번호·카드번호·여권번호처럼 새어 나가면 되돌릴 수 없는 것은 요청을 세웁니다. 휴대폰·이메일처럼 문맥에 필요할 수 있는 것은 가린 채로 보냅니다.

전부 막으면 쓸 수 없고, 전부 보내면 위험합니다.

실제로 이렇게 걸러집니다

모델에 닿기 전
이 문장은 이렇게 바뀝니다

아래는 실제 검사 규칙을 그대로 옮긴 예시입니다. 숫자는 모두 가짜입니다.

보내려는 문장

차단 — 검증식을 통과한 주민등록번호·카드번호·여권번호 가림 — 휴대폰·이메일·계좌·사업자번호

03 · AI 위에서 생기는 일

AI가 우리를 말하는지 재고,
AI를 썼다면 밝힙니다

salience.teamplut.com — 게이트 점검
OAI-SearchBot읽을 수 있음
PerplexityBot읽을 수 있음
Claude-SearchBot읽을 수 있음
Google-Extended막혀 있음
게이트 점수74 / 100

판정 근거: robots.txt 의 User-agent: Google-Extended → Disallow: /

먼저 문이 열려 있는지 봅니다

아무리 좋은 글을 써도 크롤러가 못 들어오면 AI 답변에 나올 수 없습니다. 봇 일곱 종을 각각 판정하고, 왜 그렇게 판정했는지 근거 줄을 함께 보여 드립니다.

일곱 줄이 똑같이 보이면 검사를 안 한 것처럼 읽히기 때문입니다.

재는 일과 고치는 일을 이어 붙였습니다

브랜드 이름을 뺀 질문을 던져 답에 우리가 나오는지 세고, 안 나오면 그 이유를 네 갈래로 나눕니다. 갈래마다 처방이 다릅니다.

순위를 보장하지는 않습니다. 보장한다고 말하는 순간 제품이 아니라 광고가 됩니다.

AI를 썼다면 밝히는 일도 제품입니다

2026년부터 AI가 만든 결과물에는 그 사실을 알려야 합니다. 고지 배너와 표시를 서비스에 붙이고, 남긴 기록을 모아 둡니다.

법이 바뀌어서가 아니라, 밝히지 않으면 결국 손님이 먼저 알아채기 때문입니다.

고치며 배운 것

사고가 가르쳐 준 규칙들

전부 저희가 실제로 한 번씩 밟아 본 것입니다. 남의 사례가 아닙니다.

01

잠금은 «쓰기»가 아니라
«읽기»부터 막아야 한다

서류 링크에 본인 확인을 걸어 두고도 조회 경로에 가드가 없어 그대로 새어 나갔습니다. 지금은 공개 경로 전부에 같은 가드가 걸립니다.

02

모양만 보고 막으면
결국 검사를 꺼 버린다

«숫자 13자리»를 전부 주민번호로 보면 주문번호가 매번 걸립니다. 검증식이 있는 번호는 식을 통과한 것만 잡습니다.

03

조회에 실패했다고
마지막 상태를 덮어쓰지 않는다

외부 기관이 잠깐 조용한 날마다 전 고객에게 가짜 «상태 변경» 경보가 나갑니다. 실패는 실패로 남겨 둡니다.

04

같은 파서를
두 군데 두지 않는다

서버와 브라우저에 같은 해석기를 두었더니 두 벌이 갈라졌고, 갈라진 날 거래처가 조용히 사라졌습니다.

05

답을 못 받은 일은
성공으로 치지 않는다

결제를 부르기 전에 먼저 기록하고, 응답이 없으면 «모름»으로 남깁니다. 성공으로 치는 순간 돈이 샙니다.

06

소금을 바꾸면
모든 고객이 경보를 맞는다

계좌 지문과 고객 키가 소금에서 나옵니다. 옮겨야 하면 재계산 마이그레이션이 먼저입니다.

제품

지금 쓰실 수 있는 것들

전부 저희가 매일 쓰고 있는 제품입니다.

무엇으로 짓는가

유행이 아니라
고칠 수 있는 것으로

두 사람이 40여 개를 굴리려면, 새벽에 깨어나 30초 안에 읽히는 코드여야 합니다.

서버Node.jsnginxpm2systemd
저장MySQLSQLite암호화 파일 보관자동 파기
결제토스페이먼츠자동결제(빌링키)지급대행중앙 원장
AIOpenAI 호환나가기 전 검사임베딩 측정고지·표시

일하는 방식

우리가 지키는 세 가지

01

받지 않는 것이
가장 안전한 보관입니다

필요 없는 정보는 처음부터 받지 않습니다. 계좌번호는 원본 대신 지문만 두고, 비밀번호는 되돌릴 수 없게 저장합니다. 없는 것은 샐 수 없습니다.

02

고칠 수 없는 실패는
만들지 않습니다

결제·프로비저닝처럼 되돌리기 어려운 일은 시작하기 전에 먼저 기록하고, 중간에 틀어지면 전부 되돌립니다. 답을 못 받은 일은 성공으로 치지 않습니다.

03

지킬 수 없는 약속은
팔지 않습니다

검색 순위는 보장할 수 없고, 속도는 대개 같습니다. 그래서 그 말을 안 씁니다. 대신 잴 수 있는 것만 재서 보여 드립니다.

묻고 답하기

자주 받는 질문

사람을 늘리는 대신 «사람이 해야만 하는 일»을 줄였습니다. 결제 승인·독촉·보관기간 파기·인증서 갱신처럼 매번 같은 판단을 하는 일은 전부 코드가 합니다. 사람은 판단이 갈리는 곳에만 들어갑니다.

맞습니다. 그래서 서비스마다 프로세스를 따로 두어 하나가 죽어도 나머지가 살아 있게 했고, 호스팅처럼 남의 서비스가 도는 것은 아예 다른 기계로 뺐습니다. 다만 «한 대이므로 생기는 위험»이 없다고는 말하지 않겠습니다. 규모가 필요한 곳에는 분리를 먼저 제안합니다.

요금제에 따라 다릅니다. 그래서 어느 쪽이든 «보내기 전에 거르는» 장치를 기본으로 켜 둡니다. 주민등록번호·카드번호·여권번호는 검증식을 통과하면 요청 자체를 세우고, 휴대폰·이메일은 가린 채 보냅니다.

보장하지 않습니다. 순위를 보장한다고 말하는 회사는 대개 측정을 안 합니다. 저희가 하는 것은 «지금 AI가 당신을 부르는지»를 반복해서 재고, 안 불리는 이유를 갈래로 나눠 고치는 일입니다. 결과는 숫자로 보여 드리고, 못 올린 달은 못 올렸다고 적습니다.

대부분 가능합니다. AI API 는 접속 주소 한 줄만 바꾸면 되고, 호스팅은 파일과 데이터베이스를 그대로 옮깁니다. 옮기기 어려운 구조라면 그 이유를 먼저 말씀드립니다 — 억지로 옮기면 옮긴 쪽이 고생합니다.

한 대에서 40여 개를 굴려 본
경험이 필요하시다면

호스팅 이전, AI 도입, 사내 데이터가 모델로 새지 않게 막는 일 — 어느 쪽이든 먼저 들어 보겠습니다.