Airo 제작기 8화 — 직원과 같이 쓰려면, 대표·매니저·직원 3단계 권한과 회사 사이 자료 누수 막기
- 맡긴 일
- 「마케팅은 직원이 하니 어느 등급이나 쓰게」 (6월 17일, 마케팅 캘린더를 직원에게 열며)
- 결과
- 6월 12일 대표·매니저·직원 3단계 역할을 만들고 서버에서도 한 번 더 막았습니다. 6월 13일 전체 점검으로 다른 회사 초대 정보가 보일 수 있던 구멍 2곳을 막았고, 6월 17일 매니저 화면에서 나던 오류를 정리하고 마케팅 캘린더는 전 직원에게 열었습니다.
- 전 → 후
- 누구나 대표 화면 그대로 → 대표·매니저·직원 3단계
- 확인한 날
- 2026년 10월 23일 기준
7화에서 광고비를 «실제로 산 사람» 기준으로 다시 계산한 이야기를 했습니다. 숫자가 정확해지자 이번에는 다른 걱정이 생겼습니다. «이 화면을 직원도 같이 봐야 하는데, 원가와 마진까지 다 보여도 되나?» 8화는 6월 12일부터 17일까지, Airo를 혼자 쓰는 도구에서 직원과 같이 쓰는 도구로 바꾼 기록입니다.
왜 권한을 나눠야 했나요?
같이 일하는 사람이 생겼는데, 모든 사람이 대표와 똑같은 화면을 보고 있었기 때문입니다.
처음 Airo는 노션 대신 팀이 같이 쓰려고 만들었습니다(1화). 그런데 5~6월 사이 매출·원가·마진·광고비가 한 화면에 모이면서 성격이 바뀌었습니다. 문서·칸반·캘린더는 다 같이 봐야 하지만, 상품마다 얼마 남는지나 광고에 얼마를 쓰는지는 대표가 판단할 숫자입니다. 6월 12일 작업일지 첫머리에 클로드가 이번 일의 이름을 «직원용 역할 구분»이라고 적었습니다.
역할은 어떻게 나눴나요?
대표·매니저·직원, 세 단계로 나눴습니다.
| 역할 | 볼 수 있는 것 | 못 보는 것 |
|---|---|---|
| 대표 | 전부 | 없음 |
| 매니저 | 매출 현황(축소판)·발주 예측, 배송·리뷰·견적·소싱·상품 등록 같은 운영 메뉴 | 원가·마진·광고비·경영 리포트·성장 루프 |
| 직원 | 칸반·프로젝트·캘린더·회의록·개인 페이지 같은 협업 메뉴 | 매출·광고·마진 화면 전부 |
매니저용 매출 화면은 따로 만들었습니다. 매출·취소·순매출·상품별 매출만 보여 주고, 광고비·원가·이익 칸은 아예 비워서 보냅니다. 원래 매출 분석 화면은 탭이 8개였는데, 매니저에게는 «매출 현황»과 «발주 예측» 2개만 보이게 했습니다.
애매한 것은 하나씩 정했습니다. 예를 들어 예전에 «관리자»로 불리던 대표 계정은 그대로 대표로, «구성원»으로 등록된 사람은 직원으로 읽게 했습니다. 알 수 없는 값이 들어오면 가장 적게 보는 «직원»으로 처리합니다. 실수로 권한이 비어 있을 때 다 열리는 것보다, 다 닫히는 편이 안전하니까요.
메뉴만 숨기면 안 되나요?
안 됩니다. 이번 작업에서 가장 중요하게 배운 점입니다.
클로드가 계획 단계에서 먼저 짚은 말이 작업일지에 그대로 있습니다.
핵심 원칙: UI 숨김만으론 부족 — API에서 role 재검사 필수.
쉽게 말하면 이렇습니다. 사이드바에서 «광고» 메뉴를 숨겨도, 주소창에 그 화면 주소를 직접 치거나 프로그램 안쪽의 자료 창구를 바로 부르면 숫자가 나올 수 있습니다. 문만 안 보이게 칠했지, 잠그지는 않은 셈입니다.
그래서 세 겹으로 막았습니다.
- 메뉴 숨김 — 역할에 맞지 않는 메뉴는 사이드바에서 빼기
- 주소로 들어오는 길 막기 — 숨긴 화면 주소를 직접 쳐도 «대표만 볼 수 있습니다» 화면이 뜨게
- 서버에서 다시 검사 — 매출·광고·마진 자료를 내주는 창구 앞에서 «이 사람이 대표인가?»를 한 번 더 물어보고, 아니면 거절(403)
세 번째가 진짜 자물쇠입니다. 앞의 두 개는 보기 좋게 하는 것이고요.
AI 비서에게 «마진 얼마야?»라고 물으면요?
처음부터 마진 숫자를 AI에게 건네지 않는 방식으로 막았습니다.
4화에서 소개한 AI 비서 «대신이»는 대화할 때 회사 자료를 참고합니다. 화면을 아무리 잘 숨겨도, 직원이 AI에게 «이번 달 마진율 알려 줘»라고 물으면 대답해 버릴 수 있었습니다. 6월 12일 오후, 클로드는 이걸 «AI 누수»라고 부르고 바로 막았습니다.
- 대표가 물을 때만 광고비·원가·순이익 자료를 AI에게 넘깁니다. 다른 사람이 물으면 자료 자체가 AI에게 가지 않습니다.
- 그래도 혹시 다른 문서에 섞여 있는 숫자가 있을 수 있어서, 대표가 아닌 사람과 대화할 때는 «마진·원가·광고비·손익은 대표님만 볼 수 있다고 안내하라»는 지침을 한 번 더 넣었습니다.
작업일지에는 이 방법의 한계도 솔직하게 적혀 있습니다. 대표가 지식 문서에 원가표를 직접 올려 두면, 그건 지침으로만 막는 것이라 완벽한 차단은 아니라고요. 저는 이 메모가 좋았습니다. «다 막았다»보다 «여기까지 막았고 여기는 남았다»가 훨씬 쓸모 있는 보고입니다.
팀원 역할은 누가 어떻게 바꾸나요?
설정 화면에 «팀원» 탭을 만들어 대표만 바꿀 수 있게 했습니다.
팀원 목록에서 이름 옆 칸을 대표·매니저·직원 중 하나로 고르면 됩니다. 여기에도 안전장치를 두 개 넣었습니다. 자기 역할은 스스로 못 바꾸고, 마지막 남은 대표는 내릴 수 없습니다. 대표가 실수로 자기 권한을 내려서 아무도 설정을 못 여는 일을 막기 위해서입니다.
같은 날 아무나 가입하는 문도 닫았습니다. 가입 화면은 초대 링크를 받은 사람에게만 열립니다. 이때 2단계 인증(휴대폰 인증 앱 6자리)도 붙였습니다. 한 번 인증한 컴퓨터는 90일 동안 다시 묻지 않게 했습니다.
특정 직원에게만 메뉴를 열어 줄 수는 없나요?
열 수 있게 설계했지만, 민감한 메뉴는 예외로도 못 열게 했습니다.
배송을 맡은 직원이 있으면 «배송·송장» 메뉴는 보여야 합니다. 역할은 직원인데 메뉴 하나만 더 필요한 경우죠. 그래서 «사람별 메뉴 예외»를 설계했습니다. 이때 제가 정한 원칙 두 가지가 설계서에 남아 있습니다.
- 비민감 메뉴만 허용 — 상품 등록 가이드·리뷰·견적서·소싱·배송처럼 돈 숫자가 없는 메뉴만 개별로 열 수 있습니다. 매출·광고·마진 메뉴는 예외 목록에 아예 나오지 않습니다.
- 처음엔 메뉴 표시만 — 서버 자물쇠는 건드리지 않고 화면에서 보이고 안 보이고만 바꿉니다. 그래서 예외를 잘못 켜도 민감한 자료는 서버에서 여전히 막힙니다.
반대로 «이 사람에게서만 이 메뉴를 숨기기»는 모든 메뉴에 걸 수 있게 했고, 대표는 어떤 예외와도 상관없이 늘 전체를 보게 했습니다.
전체 점검에서 무엇이 나왔나요?
초대와 공유 링크 쪽에서 «다른 회사 정보가 보일 수 있는» 구멍 2곳이 나왔습니다.
6월 13일, 클로드가 저장 공간 전체를 하나하나 확인했습니다. 회사마다 자기 자료만 보이게 하는 규칙이 제대로 걸려 있는지 표마다 따져 본 겁니다. 대부분은 정상이었는데 두 곳이 문제였습니다.
- 초대 정보 — 아직 유효한 초대 링크라면 누구나 목록을 볼 수 있게 열려 있었습니다. 작업일지 표현 그대로 «아무 회사나 합류 가능». 가장 위험한 문제로 분류됐습니다.
- 공유 링크 — 공유 링크 목록도 로그인 없이 볼 수 있게 열려 있었습니다.
둘 다 «누구나 읽기» 규칙을 지우고, 같은 회사 사람만 보게 바꿨습니다. 공유 링크로 문서를 여는 화면은 서버가 그 링크에 딸린 문서 1건만 꺼내 오도록 고쳤습니다. 고치고 보니 덤도 있었습니다. 원래 로그인 안 한 사람이 공유 링크를 열면 본문이 비어 보이던 숨은 버그가 있었는데, 이 수정으로 같이 풀렸습니다.
같은 날 점검에서는 «직원 계정으로도 구글 드라이브 연결 정보를 읽을 수 있다»는 것도 나와서 가장 먼저 고칠 일로 올렸습니다. 회사 밖으로 새는 건 아니지만, 직원에게까지 보일 이유가 없는 정보였습니다.
매니저 화면에서 난 오류는 무엇이었나요?
메뉴는 열렸는데 안쪽 자료는 «대표 전용»이라 오류가 나던 것입니다.
6월 17일 점검에서 매니저가 매출 분석의 «분석·인사이트·물어보기·리포트» 탭을 누르면 서버가 거절(403)하면서 빈 화면이 뜨는 걸 찾았습니다. 서버 자물쇠는 제대로 걸려 있었는데, 화면이 그 탭을 매니저에게도 보여 주고 있었던 겁니다. 탭을 대표에게만 보이게 맞추고, 설정에 있던 «매출 엑셀 내보내기» 링크도 대표에게만 보이게 했습니다. 자물쇠와 문 표시가 서로 다른 말을 하면 쓰는 사람만 헷갈립니다.
직원에게 일부러 열어 준 것도 있나요?
있습니다. 마케팅 캘린더입니다. 6월 17일에 제가 클로드에게 이렇게 말했습니다.
「마케팅은 직원이 하니 어느 등급이나 쓰게」
그런데 마케팅 캘린더는 «성장 루프»라는 대표 전용 기능 안에 붙어 있었습니다. 통째로 열면 마진·가격 진단까지 같이 열립니다. 그래서 클로드는 같은 창구 안에서도 «콘텐츠 기록하기·콘텐츠 일정 보기» 두 가지만 직원에게 허용하고, 진단·가격·키워드 같은 나머지는 계속 대표 전용으로 남겼습니다. 열 것과 닫을 것을 기능 단위로 쪼갠 겁니다.
이 시기에서 따라 할 만한 것은 무엇인가요?
- 역할을 먼저 표로 적으세요. «누가, 무엇을 보고, 무엇을 못 보나»를 표 한 장으로 정하고 클로드에게 넘기면 일이 빨라집니다.
- 메뉴 숨김은 자물쇠가 아닙니다. 클로드에게 «서버에서도 다시 검사해 줘»를 꼭 같이 말하세요.
- 모르는 값은 가장 좁게. 권한이 비어 있거나 이상하면 «다 막힘»이 기본이어야 합니다.
- AI 비서도 한 명의 직원으로 보세요. 화면을 숨겨도 AI가 대답하면 소용없습니다. AI에게 넘기는 자료부터 역할로 나누세요.
- 직원을 들이기 전에 한 번 전체 점검을 시키세요. 저도 «다 됐다»고 생각한 다음 날 초대 링크 구멍이 나왔습니다.
직원과 같이 쓰는 프로그램에서 제일 무서운 건 «보이면 안 되는 숫자가 조용히 보이는 것»이었습니다. 화면은 멀쩡하니까 아무도 모릅니다. 그래서 이 시기 이후로 클로드에게 새 기능을 맡길 때마다 «이건 누가 봐야 하는 화면이야?»를 먼저 정하고 시작합니다.
다음 화 예고: 9화에서는 Airo를 다른 회사에도 팔아 보려다 멈춘 이야기를 씁니다. 6월 12일에 세운 «여러 회사에 파는 제품» 계획, 7월 말 외부 가입 9곳의 실제 사용 결과, 그리고 9월 23일 사내 전용으로 되돌린 이유입니다.
같은 주제의 다른 글
- 고침클로드 예약 작업이 전부 두 번씩 돌고 있었다 — 56개 중복을 찾아서 끈 순서
어느 날 보니 예약 작업이 전부 두 개씩 보였습니다. PC 예약이 클라우드로 옮겨지면서 원본이 꺼지지 않아 같은 작업이 하루에 두 번 돌고 있었습니다. 어느 쪽을 남겼는지, 왜 한 번에 안 꺼졌는지, 확인한 방법을 정리했습니다.
- 고침「배포 성공」인데 사이트가 안 바뀌었다 — 하루 동안 고친 것이 전부 손님 화면에 안 나가던 이유
클로드가 고쳐서 배포했고 «성공»이라고 떴는데, 정작 사이트는 그대로였습니다. 캐시 문제처럼 보였지만 원인은 전날 썼던 «되돌리기» 때문에 주소가 옛날 버전에 묶여 있던 것이었습니다. 알아낸 방법과 점검표를 정리했습니다.
- 고침매일 받던 쿠팡 판매 자료가 닷새째 안 들어왔다 — 원인은 로그인이 아니라 «메뉴 글자 하나»였습니다
쿠팡 판매 리포트 자동 수집이 4일 동안 멈췄습니다. 로그인 문제인 줄 알았는데, 판매자 화면의 메뉴 이름이 살짝 바뀐 게 원인이었습니다. 알아챈 방법, 고친 것, 빠진 날을 채운 순서와 점검표를 정리했습니다.
매일 쓰는 이야기는 네이버 블로그에도 올립니다.