니즈랩

We design, build & ship.

웹·앱 제품을 기획부터 배포까지 혼자 만듭니다.

01 — Live

지금 열리는 주소

만들었다고 말하는 대신 ��러서 확인하실 수 있는 것만 올렸습니다. 본문까지 열어 2026-08-26에 확인했습니다.

02 — Scope

무엇을 맡길 수 있나

화면 한 장이 아니라 운영되는 제품을 만듭니다.

관리자와 권한 분기

역할마다 다른 화면과 접근 제어. 회원이 다섯 종류로 갈리는 플랫폼을 만들어 운영 중입니다.

예약·신청·정산

신청을 받는 데서 끝나지 않고 돈이 오가는 흐름까지. 충전, 수수료 차감, 출금을 화면으로 구현합니다.

결제·알림·외부 연동

국내외 결제, 알림톡·SMS·푸시, 지도와 시트. 남의 API가 바뀌어도 조용히 실패하지 않게 붙입니다.

사내 업무 자동화

사람이 매일 손으로 하던 확인을 없앱니다. 수집·정규화·이상 감지·보고를 무인으로 돌립니다.

아래는 케이스로 싣지 못하는 작업입니다. 계약이 프로젝트 공개를 막고 있어 기술만 적어 둡니다.

  • 데스크톱 게임 클라이언트(LÖVE2D) 및 임베디드 하드웨어 시리얼 연동(ESP32·릴레이 제어)
  • 멀티 LLM 오케스트레이션 파이프라인 · 데스크톱 GUI 애플리케이션
  • 오픈마켓 연동 커머스 · PG·간편결제 연동
03 — Work

작업

무엇을 만들었는지와 함께, 만들면서 무엇이 까다���웠는지를 적었습니다.

아래 사례 대부분은 고객사명을 밝히지 않았습니다. 각 계약의 비밀유지 조항 때문이고, 화면을 걸지 못한 건도 같은 이유입니다. 귀사 프로젝트에도 같은 기준을 적용합니다.

01

건설장비 배차 플랫폼

건설장비 중개 플랫폼 운영사 · 고객사 비공개

건설 현장에서 굴삭기나 크레인이 필요할 때, 그 요청을 누구에게 보낼지 정하는 시스템입니다. 회원이 다섯 종류입니다. 건설사, 중장비 사장, 기사, 가맹 콜센터, 본사. 다섯이 서로 다른 화면을 쓰고 권한도 다릅니다. 요청이 들어오면 앱을 분양한 사장에게 먼저 60초, 응답이 없으면 본사로, 다음은 같은 콜센터 소속의 동종 업종 사장, 마지막은 현장에서 가장 가까운 다른 콜센터. 네 단계가 각각 60초씩 돌아갑니다.

까다로웠던 것. 콜센터를 지우면 복구가 안 됐습니다. 콜센터는 이 시스템에서 유일하게 완전히 삭제되는 대상인데, 지우고 나면 소속 계정이 어디에도 속하지 않는 상태로 남습니다. 다시 초대하면 될 것 같지만 같은 전화번호로는 두 번 가입이 안 되니, 초대 링크를 받아도 가입 단계에서 막힙니다. 빠져나갈 구멍이 없는 교착이었습니다. 운영 중인 DB를 열어보니 콜센터 계정 넷 중 둘이 이미 그 상태였습니다. 고객은 모르고 있었습니다.

Scope
5역할 · 단계별 자동 배차 · 지갑·수수료 자동 정산 · 전자서명
Status
10주 본개발 완료 후 운영 중 · 추가 개발 계속
Next.jsTypeScriptSupabasePostgreSQLTailwind CSSWeb PushSMS
본사 관제 콘솔 — 가입 승인 대기열과 배차 티어 분포
본사 관제 콘솔 — 가입 승인 대기열과 배차 티어 분포 · 화면의 수치와 명단은 시연용 데모 데이터입니다.
02Live

SNS 마케팅 중개 플랫폼

주식회사 플렉스로얄소프트

판매자가 SNS 마케팅 서비스를 등록하고 구매자가 내부 포인트로 사는 중개 플랫폼입니다. 거래는 채팅 안에서 이뤄지고, 충전에서 구매, 정산, 출금까지 관리자 화면에서 처리합니다. 같은 코드베이스를 환경변수만 바꿔 두 개의 독립 서비스로 배포했습니다 — 회원도 데이터베이스도 서로 분리돼 있습니다.

까다로웠던 것. 하나의 코드로 두 서비스를 돌리면, 한쪽에서 고친 것이 다른 쪽을 깨뜨릴 수 있습니다. 테넌트별로 갈라지는 지점을 환경변수 한 겹으로 모으고 나머지는 전부 공유하도록 잡았습니다. 넘길 때 이 구조를 문서로 남겨야 했던 이유이기도 합니다.

Scope
모노레포 2테넌트 · 역할 기반 접근제어 · 포인트 충전·정산 · 실시간 채팅
Status
납품 완료 · 2026-07-14 인수인계 문서와 함께 타 개발자에게 유지보수 이관
Next.jsReact 19TypeScriptTurborepoPrismaSupabaseToss Payments카카오 알림톡
SNS 마케팅 중개 플랫폼 홈 화면
SNS 마케팅 중개 플랫폼 홈 화면
03

UNIONE

주식회사 이클립스코어

카드·네트워크 결제 서비스의 브랜드 사이트입니다. Three.js로 만든 유체 배경, GSAP 모션, Lottie를 얹고 한국어와 영어를 씁니다. 페이지마다 히어로 연출이 다릅니다.

까다로웠던 것. 가로 스크롤을 막으려고 모든 요소에 max-width를 걸었더니 hydration 에러가 났습니다. 서버가 그린 것과 브라우저가 그린 것이 어긋난 겁니다. html, body, main에만 overflow-x를 거는 쪽으로 좁혔습니다. 유체 배경은 WebGL 피드백 루프에 빠졌습니다. 같은 텍스처를 읽으면서 동시에 쓰고 있었습니다. 읽기용과 쓰기용 버퍼를 나눠 번갈아 쓰게 고쳤습니다. 스크롤하면 애니메이션이 멈추는 문제도 있었는데, 화면 밖에서도 계속 그리느라 프레임을 잡아먹고 있었습니다. 보일 때만 돌도록 바꿨습니다.

Scope
브랜드 사이트 · 한·영 2개 언어 · WebGL 배경 · 페이지별 히어로 연출
Status
납품 완료
Next.js 15React 19TypeScriptThree.jsGSAPLottiei18n
UNIONE 브랜드 사이트 히어로
UNIONE 브랜드 사이트 히어로
04Live

PH1603 분양 사이트

부동산 분양 대행 · 고객사 비공개

서초 도시형생활주택의 분양 사이트입니다. 방문 예약을 받아 시트로 넘기고 카카오 메시지로 알리며, 검색 노출 세팅까지 포함했습니다.

까다로웠던 것. 로고 주변에 점선 유령이 떴습니다. 로고를 명함 PDF에서 뜯었는데, 잘라낸 영역에 카드 테두리의 옅은 분홍 픽셀이 섞여 있었습니다. 흰색으로 반전해 어두운 배경에 올리니 점선처럼 드러났습니다. PDF를 벡터로 렌더해서 다시 뜯었더니 이번엔 다른 데서 후광이 생겼습니다. 이미지 최적화가 PNG를 WebP로 바꾸면서 알파 경계에 크로마 서브샘플링 흔적을 남기고 있었습니다. potrace로 SVG를 뜨고 최적화를 우회해 그냥 img로 서빙했습니다.

Scope
원페이지 · 방문예약 폼 · SEO 풀세팅 · 성능 최적화
Status
라이브 운영 중
Next.js 16Tailwind CSS 4TypeScriptGoogle Sheets APIKakaovitest
PH1603 분양 사이트 히어로
PH1603 분양 사이트 히어로
05

LMS 강의실 리뉴얼

주식회사 알파에듀

직업훈련 교육기관 학습관리시스템에서 로그인 이후 화면을 리뉴얼했습니다. 수강생의 나의 강의실·학습창·시험/레포트 흐름과 튜터의 채점 화면들을 모바일·태블릿·PC 반응형으로 재구축했습니다. 회사 사이트 전체가 아니라 로그인 뒤의 강의실이 작업 범위였습니다.

Scope
강의실 12화면 · 반응형 퍼블리싱 · API 연동
Status
검수 완료 · 정산 종결
React 18TypeScriptViteMUITanStack QueryZustand
LMS 모바일 학습창 — 차시 영상 플레이어와 학습완료 기준
LMS 모바일 학습창 — 차시 영상 플레이어와 학습완료 기준
06Live

EasyClaw

자체 제품 (오픈소스)

제가 만들어 공개한 데스크톱 앱입니다. 터미널을 쓰지 못하는 사람이 AI 에이전트를 설치하고 로그인까지 끝낼 수 있게 만든 설치기입니다. macOS와 윈도우를 지원하고 네 개 언어로 되어 있습니다. 고객사 코드는 비밀유지 때문에 보여드릴 수 없지만 이건 GitHub에 열려 있습니다. 실력을 확인하실 거라면 이쪽이 제일 빠릅니다.

까다로웠던 것. 윈도우가 어려웠습니다. 개발은 맥에서 하는데 설치 대상은 대부분 윈도우이고, 경로 구분자부터 권한 모델까지 전부 다릅니다. 자동 업데이트와 코드 서명도 두 플랫폼에서 따로 굴러갑니다.

Scope
크로스플랫폼 데스크톱 · 4개 언어 · 자동 업데이트 · 랜딩
Status
공개 배포 중 · MIT
ElectronReact 19TypeScriptTailwind CSS 4i18nextelectron-updater
EasyClaw 랜딩 — macOS·Windows 다운로드
EasyClaw 랜딩 — macOS·Windows 다운로드
07

배달 기사 운영 자동화

배달 운영사 · 고객사 비공개

배달 플랫폼에서 기사 운영 데이터를 가져와 정리하는 사내 시스템입니다. 지사장이 매일 손으로 확인하던 일을 없앴습니다. 로그인 세션을 유지하는 크롬 확장이 5분마다 화면을 수집해 올리면 서버가 정규화하고, 거절률이 튀는 것 같은 이상 징후를 잡아 담당자에게 알립니다. 2025년 11월부터 지금까지 멈춘 적 없이 돌고 있습니다.

까다로웠던 것. 남의 화면을 가져오는 일이라 상대가 바뀌면 이쪽이 깨집니다. 레거시 엔드포인트가 닫혀 수집이 404로 죽은 적이 있고, 통계 페이지가 다른 도메인으로 넘어가면서 스크린샷 크롭이 엉뚱한 영역을 자른 적도 있습니다. 제일 나빴던 건 조용히 실패하는 경우였습니다. 크롭에 실패하면 전체 페이지��� 그냥 올려버려서, 화면에 뭔가 찍혀 있으니 정상으로 보였습니다. 실패하면 실패했다고 남기도록 바꿨습니다.

Scope
무인 수집 파이프라인 · 이상 징후 알림 · 관리자 대시보드
Status
9개월 무중단 운영 중 · 같은 고객이 4회 재발주
Next.jsReactTypeScriptSupabase Edge FunctionsPostgreSQLChrome Extension
More
08

해외 예약·결제 사이트

해외 오프라인 매장 · 고객사 비공개

해외에 있는 오프라인 매장의 예약·결제 사이트입니다. 세 개 언어를 쓰고, 카드 결제를 받으며, 실시간 문의 위젯과 관리자용 예약·채팅 관리 화면이 붙어 있습니다.

까다로웠던 것. 시간대에서 꽤 헤맸습니다. DB가 오프셋 없는 UTC 문자열을 돌려주는데 브라우저는 그걸 자기 로컬 시각으로 읽습니다. 채팅에 찍히는 시간이 현지보다 일곱 시간 이르게 나왔습니다. 예약 시간대의 '이미 지났음' 판정도 손님 기기의 시계를 따라가고 있었습니다. 전부 현지 기준으로 바꾸고 나니 이번엔 라스트오더가 걸렸습니다. 이 매장은 새벽 1시까지 받습니다. 현지 자정에서 1시 사이에는 '어제' 날짜를 고를 수 있어야 심야 예약이 들어옵니다. 날짜 선택의 최솟값을 그 시간대에만 하루 열어두는 예외를 넣었습니다.

Scope
3개 언어 · 예약 캘린더 · 다중통화 결제 · 실시간 상담
Status
납품 완료 · 라이브 운영 중 · 같은 고객이 2회 발주
Next.jsReactTypeScriptSupabase RealtimeStripeTailwind CSS
09

문제 은행 서비스

교육 서비스 운영사 · 고객사 비공개

교육 서비스의 문제 은행입니다. 카테고리별로 문제를 뽑아 PDF로 내려받습니다. 처음 받은 일은 인프라 이전이었습니다. AWS Elastic Beanstalk에서 돌던 것을 Supabase와 Vercel로 옮겼습니다. 그다음이 업로드 기능, 그다음이 서비스 업그레이드. 세 번에 걸쳐 금액을 키워가며 다시 맡긴 경우입니다.

적어둘 것. 넘긴 뒤에 고객이 직접 개발을 이어가고 있습니다. 저장소의 최근 커밋이 전부 고객 이름으로 찍혀 있고, PDF 수식 렌더링이나 문제 대량 업로드 같은 기능이 그 뒤로 붙었습니다. 제 손을 떠난 코드가 남의 손에서 굴러가려면 넘길 때 그렇게 만들어둬야 합니다. 이 건은 그게 됐다는 증거로 적어둡니다.

Scope
인프라 이전 · 대량 업로드 파이프라인 · 서비스 업그레이드
Status
납품·인계 완료 · 3회 재발주
Next.jsTypeScriptTurborepoSupabaseVercel
10

익명 커뮤니티 앱

개인 의뢰 · 고객사 비공개

회복 자조 모임을 위한 익명 커뮤니티 앱입니다. 라운지가 주제별로 나뉘어 있고 글과 댓글, 캘린더, 프로필이 있습니다. Expo와 React Native로 만들어 안드로이드로 배포했습니다. 계약은 3주였습니다.

까다로웠던 것. 로그인 없이 먼저 쓰고 나중에 계정을 붙이는 흐름이 필요했습니다. 익명 사용자인지 판별하는 것을 처음엔 provider 값으로 봤는데 신뢰할 수 없었습니다. is_anonymous를 쓰는 쪽으로 바꿨습니다. 그전까지는 계정 연동 배너가 엉뚱한 사람에게 떴습니다. 회원가입 에러 메시지가 아예 안 뜨던 것도 여기서 잡았습니다. 함수 호출은 응답이 2xx가 아니면 본문을 버리고 null을 돌려줍니다. '이미 가입된 이메일입니다' 같은 정상적인 실패 메시지가 그렇게 사라지고 있었습니다.

Scope
안드로이드 MVP · 익명 인증 · 주제별 라운지 · 3주
Status
납품 완료 · Google Play 배포
ExpoReact NativeReact 19TypeScriptSupabaseNativeWind
04 — Duration

얼마나 걸리나

실제 납품 기준입니다. 범위에 따라 달라집니다.

랜딩·브랜드 사이트
2 – 3주
예약·결제 사이트
4 – 6주
관리자 있는 플랫폼
8 – 12주
사내 업무 자동화
3 – 6주

금액은 요구사항을 들은 뒤 견적서로 드립니다. 범위가 정해지지 않은 상태에서 부르는 숫자는 서로에게 도움이 되지 않습니다.

05 — Process

문의하면 무슨 일이 일어나나

한 사람이 끝까지 책임지므로 소통과 일정이 단순합니다.

  1. 01

    상담

    무엇이 필요한지, 무엇이 범위 밖인지 먼저 맞춥니다.

  2. 02

    화면 설계

    역할별 흐름과 데이터 구조, 예외 케이스를 잡습니다.

  3. 03

    개발

    화면 단위로 만들고 주 단위로 진행을 공유합니다.

  4. 04

    검수·배포

    반응형·폼 검증·에러 케이스를 점검하고 올립니다.

  5. 05

    하자보수

    계약서에 적힌 기간 동안 무상으로 고칩니다.

전자계약으로 시작합니다. 모두싸인으로 계약서를 쓰고, 하자보수 기간을 계약서에 적습니다. 완료 후에는 세금계산서를 발행합니다.

규모를 숨기지 않습니다. 니즈랩은 대표 한 사람이 운영합니다. 여러 명이 붙어야 하는 일이면 그렇다고 먼저 말씀드립니다.

06 — Contact

무엇을 만들고 싶으신지 한 줄이면 됩니다.

기획서가 없어도 괜찮습니다. 필요한 화면과 예외 케이스부터 정리해서 시작합니다. 평일 24시간 안에 범위와 기간을 적어 답장드립니다.

Emailhello@needslab.aiPhone010-3825-5659

니즈랩 · 대표 권용범 · 사업자등록번호 825-16-02771