[portfolio](https://geonwoo.kim/ko/portfolio) › 루쿠쿠

# space-l · 고객사 전용 OS

https://geonwoo.kim/ko/portfolio/lukuku-space-l

기간: 2026.10 — 현재

진행 상황을 문서와 메신저로 따로 전하던 일을 한곳에 모았습니다. 서버와 배포 체계를 맡았습니다.

해외 3개 시장의 광고 성과와 일별 매출을 한 화면에

팀: 4명 · 서버 담당, 프론트엔드 공동

역할: 구조 설계 · Go API 서버 · 배포 체계

Next.js · TypeScript · Go · Vercel · AWS EKS · AWS S3

- 고객사는 아이디·비밀번호, 사내는 슬랙 로그인으로 들어오는 두 경로
- 현지 통화 금액과 원화 참고액 함께 표시
- 일정 타임라인과 자료 공유
- 사내 CRM과 문의 접수

## 고객 데이터와 사내 데이터

문제: 고객사 화면과 사내 CRM을 한 앱에서 다루더라도 고객사 데이터는 서로 섞이면 안 됐습니다.

해결: 화면은 Next.js, 인증·DB·파일·메일은 Go API 서버로 나눴습니다. 고객사 담당자는 자기 회사 화면만 봅니다. 파일은 고객별 저장소와 그 저장소만 쓰는 권한으로 격리했습니다.

## 고객사마다 쌓이는 분기

문제: 고객사별 요구를 코드에 그대로 넣으면 고객사가 늘 때마다 분기가 쌓입니다.

해결: 공통 기능과 고객사별 업무 모듈을 나눴습니다. 데이터는 고객, 브랜드, 프로젝트·캠페인, 업무 순의 계층으로 묶고, 고객별 하드코딩은 규칙으로 막았습니다. 서버 업무를 공통 기능과 업무 모듈 11개로 나눴습니다.

## 개발자를 거쳐야 했던 화면 수정

문제: 화면 수정을 반영할 때마다 PM이 개발자에게 병합과 배포를 부탁해야 했습니다.

해결: 사내 배포기가 브랜치를 2분마다 확인해 검사 뒤 배포합니다. PM이 라벨을 붙이면 검사를 통과한 PR만 병합합니다. PM이 개발자 도움 없이 화면 수정을 반영하고, 배포 토큰은 저장소에서 걷어 냈습니다.


[미국 법인 Shopify B2B 스토어 구축 · B2B 백엔드](https://geonwoo.kim/ko/portfolio/lukuku-commerce-b2b)
