권과장의 블로그
직접 비용을 지불하고 경험한 후기입니다.
개발

사내 수발주 프로그램, 시놀로지 NAS로 직접 만들기

카카오톡으로 주고받던 수주와 발주를 프로그램으로 옮겼습니다. 서버는 사지 않고 회사에 있던 시놀로지 NAS를 켰습니다. 2주 걸린 첫 개발의 기록입니다.

4분 읽기
사내 수발주 프로그램, 시놀로지 NAS로 직접 만들기 썸네일
사내 수발주 프로그램, 시놀로지 NAS로 직접 만들기 썸네일
권과장

낮에는 회사에서 일하고, 밤에는 코드를 만지고, 주말에는 부엌에 있습니다. 겪은 것을 정리해 두는 곳입니다.

목차

회사에 이미 있던 시놀로지 NAS를 서버로 켜서, 사내 수발주 프로그램을 2주 만에 만들었습니다. 서버를 새로 사지도, 클라우드 요금을 결제하지도 않았습니다. 2025년 12월에 퇴근하고 나서 하루 몇 시간씩 붙잡은 결과입니다. 2026년 9월인 지금까지 15~20명이 매일 이 프로그램으로 수주와 발주를 넣고 있습니다. 개발이 본업이 아닌 제가 처음으로 끝까지 만들어 본 프로그램이기도 합니다.

스크린샷 2026-09-06 오후 10.12.06

카카오톡으로 발주하면 정확히 어디서 문제가 생기나

주문 자체는 잘 전달됩니다. 문제는 그 다음입니다. 발주 내용이 점심 메뉴 이야기와 같은 창에 쌓이기 때문에, 며칠 전 수량을 확인하려면 스크롤을 한참 올려야 합니다. 수정 요청이 원래 주문과 떨어진 자리에 붙으면 어느 것이 최종인지 헷갈립니다.

읽음 표시는 누가 봤는지 알려 주지만 누가 처리했는지는 알려 주지 않습니다. 그래서 "그거 들어갔나요"라는 확인 메시지가 한 번 더 오갑니다. 담당자가 바뀌거나 대화방을 나가면 그동안의 기록이 통째로 사라지는 것도 불안했습니다.

한 줄 요약 카카오톡은 전달에는 강하지만 조회와 기록에는 약합니다.

스프레드시트를 데이터베이스로 쓰려다 PostgreSQL로 바꾼 이유

처음 계획은 스프레드시트였습니다. 제주대학교 라이즈사업에서 들은 바이브코딩 수업에서 스프레드시트를 데이터베이스처럼 쓰는 방법을 배웠고, 혼자 쓰는 도구라면 그것으로 충분했을 겁니다. 설치할 것도 없고 값이 어떻게 들어갔는지 눈으로 바로 볼 수 있다는 점이 좋았습니다.

계획을 바꾼 건 코드를 쓰기 전에 사람들과 이야기를 나누면서였습니다. 요구가 두 가지 나왔습니다. 하나는 조회가 느리면 안 된다는 것, 다른 하나는 현장에서는 휴대폰으로 사무실에서는 PC로 같은 화면을 봐야 한다는 것이었습니다. 여기에 한 번에 15~20명이 동시에 붙는다는 조건이 붙자, 시트 한 장을 여러 명이 동시에 읽고 쓰는 구조로는 감당이 안 되겠다는 판단이 섰습니다.

그래서 데이터베이스는 PostgreSQL로 정했습니다. 사실 이때까지도 이게 될지 안 될지 확신이 없었습니다. 다만 나중에 규모가 커졌을 때 갈아엎지 않아도 되는 쪽을 골랐습니다. 개발은 제미나이 유료 결제를 해 두고 물어 가며 진행했습니다. 그때는 도움이 꽤 됐는데, 지금 다시 쓰면 그 정도로 만족스럽지는 않습니다.

서버가 없어서 회사 시놀로지 NAS를 서버로 만들었다

데이터베이스를 정하고 나니 다음 벽이 바로 나왔습니다. 이걸 어디에 올리느냐입니다. 회사에는 ERP용 자체 서버가 있지만 외주 업체가 관리하는 장비라 제가 손댈 수 없고, 사내에 전산팀도 없습니다. 될지 안 될지 모르는 프로그램 때문에 서버를 사 달라고 하기도 어려웠습니다.

그러다 사무실 한쪽에 있는 시놀로지 NAS가 떠올랐습니다. 파일 공유용으로만 쓰던 장비인데, 24시간 켜져 있고 사내망 안에 있으니 조건은 맞았습니다. 여기에 PostgreSQL과 프로그램을 올려서 서버처럼 쓰기로 했습니다.

운이 좋았던 부분이 하나 있습니다. ERP 서버 때문에 포트포워딩과 외부 접속 경로가 이미 설정되어 있었습니다. 네트워크 장비를 처음부터 만지는 상황이었다면 시작도 못 했을 겁니다. 이미 뚫려 있는 길에 제 프로그램 하나를 얹은 셈입니다.

사내 수발주 프로그램 서버로 사용 중인 시놀로지 NAS

제일 오래 막힌 건 코드가 아니라 배포였다

만드는 동안 예상한 어려움은 기능이었습니다. 실제로 저를 붙잡은 건 배포였습니다. 제 노트북에서 잘 돌던 화면이 NAS에 올리자 열리지 않았고, 원인을 찾는 데 며칠을 썼습니다. 코드를 짜는 일과 그 코드를 남이 접속하는 곳에 올려 두는 일은 완전히 다른 작업이었습니다.

기능 하나가 안 되면 그 기능만 못 쓰지만, 배포가 안 되면 아무것도 보여 줄 수 없습니다. 그래서 "다 만들었는데 아직 못 보여 드립니다"라는 말을 며칠 반복했습니다. 그 며칠이 2주 중에 제일 길게 느껴졌습니다. 다음에 비슷한 걸 만든다면 화면을 완성하기 전에 빈 페이지 하나부터 먼저 올려 보겠습니다. [확인 필요: 배포에서 막혔던 구체적인 원인과 해결 방법]

만들고 나서 더 힘들었던 건 사람들의 불만이었다

프로그램이 열린 첫 주에는 아무도 잘 쓰지 않았습니다. 불만도 꽤 나왔습니다. 당연한 반응이었다고 생각합니다. 카카오톡은 이미 열려 있는 창에 한 줄 쓰면 끝인데, 새 프로그램은 접속해서 항목을 채워야 하니 손이 더 가는 것처럼 느껴집니다.

바뀐 계기는 조회였습니다. 지난주에 뭘 얼마나 보냈는지 확인해야 하는 상황이 생겼을 때, 대화방을 뒤지는 것보다 목록을 여는 쪽이 빨랐습니다. 그런 일이 몇 번 반복되면서 사용이 자리를 잡았습니다.

지금은 불만 없이 잘 돌아가고 있습니다. 만들 때 들인 2주보다, 쓰게 만드는 데 걸린 시간이 더 길었습니다. [확인 필요: 현재 하루 평균 처리 건수]

수발주 프로그램의 발주 내역 조회 화면

이게 제 개발의 시작이었던 것 같다

만들기 전에는 개발이 코드를 쓰는 일이라고 생각했습니다. 끝내고 보니 절반은 무엇을 안 만들지 정하는 일이었고, 나머지 절반은 배포와 설득이었습니다. 시놀로지 NAS는 9개월째 잘 버텨 주었지만 정전이나 고장에 대비된 구조는 아니라서, 이제 진짜 서버로 옮기려고 준비 중입니다. [확인 필요: 이전 대상 클라우드와 예정 시기] 사내에 서버도 전산팀도 없어서 못 만든다고 미뤄 두신 게 있다면, 이미 켜져 있는 장비부터 한 번 살펴보시길 권하고 싶습니다.