loading

나만의 프로그램을 만들고 싶을 때, 알아두면 좋은 것들

요즘은 개인적으로 필요한 프로그램을 직접 만들어 쓰거나, 사업에 필요한 맞춤형 시스템을 구축하는 경우가 많아지고 있습니다. 전문 개발자가 아니더라도 ‘노코드’나 ‘로우코드’ 같은 도구를 활용하면 어느 정도까지는 직접 다뤄볼 수 있고요. 저도 예전에 간단한 매출 관리나 일정 관리 프로그램을 직접 만들어 본 경험이 있어서, 이런 과정에서 좀 신경 써야 하는 부분들이나 현실적으로 마주하게 되는 점들을 이야기해 볼까 합니다.

프로그램 개발, 어디서부터 시작해야 할까?

가장 먼저 떠올릴 수 있는 건 ‘어떤 프로그램을 만들 것인가’ 하는 목적 설정입니다. 단순히 개인적인 메모장 수준인지, 아니면 여러 사람이 함께 쓸 수 있는 공유 시스템인지, 혹은 회사 운영에 필요한 데이터베이스(DB) 구축과 연동되는 복잡한 시스템인지에 따라 접근 방식이 완전히 달라져요. 만약 ‘어플 제작 회사’나 ‘키오스크 업체’ 같은 곳에 외주를 맡기기로 결정했다면, 여기서부터는 요구사항을 명확하게 전달하는 게 중요합니다. 예를 들어 ‘매출 관리 프로그램’이라고 해도, 어떤 항목을 기록하고 싶은지, 어떤 보고서 형식이 필요한지 구체적으로 정해둬야 나중에 “이게 아닌데…” 하는 상황을 줄일 수 있어요. 제가 예전에 간단한 재고 관리 프로그램을 만들 때, 처음에는 필요한 기능만 넣었는데 나중에 보니 상품별 판매 추이 분석이나 예상 재고 알림 같은 기능이 추가로 필요하더라고요. 그때 처음부터 다 고려하지 못했던 걸 좀 아쉬워했죠.

프로그램 개발 방식의 종류

크게 나눠보면 직접 코딩을 해서 만드는 방식, 그리고 코딩 없이 프로그램을 만들 수 있게 도와주는 ‘노코드’나 ‘로우코드’ 플랫폼을 이용하는 방식이 있습니다. 코딩을 직접 하는 방식은 당연히 자유도가 높고 복잡한 기능 구현이 가능합니다. 하지만 시간과 비용이 많이 들고, 개발자가 직접 참여해야 하는 경우가 많죠. 반면에 노코드/로우코드 플랫폼은 사용하기 쉽다는 장점이 있지만, 구현할 수 있는 기능에 제약이 있을 수 있습니다. 예를 들어, ‘AI 알고리즘’을 활용한 복잡한 예측 모델을 만들고 싶다면 노코드 플랫폼만으로는 한계가 있을 수 있어요. 그래도 간단한 데이터 입력, 조회, 수정, 삭제 (CRUD) 기능을 갖춘 웹사이트나 앱 정도는 충분히 만들 수 있습니다. 제가 봤던 어떤 업체는 약국 전용 치약 관리 시스템 같은 것을 구축할 때, 핵심적인 기능은 전문 개발팀에 맡기고, 간단한 직원 교육용 자료나 내부 공지사항을 올리는 용도의 인터페이스는 노코드 툴로 직접 만들어서 사용하기도 했습니다.

프로그램 개발 시 고려해야 할 현실적인 제약

프로그램을 개발할 때는 기술적인 부분 외에도 현실적인 제약 사항을 꼭 고려해야 합니다. 가장 대표적인 것이 ‘비용’과 ‘시간’이죠. 특히 규모가 있는 ‘전산 시스템’을 개발할 때는 수천만 원에서 수억 원까지도 예산이 들 수 있습니다. 어떤 기능을 넣느냐, 얼마나 많은 데이터를 처리하느냐에 따라 개발 기간도 몇 개월에서 1년 이상 걸리기도 하고요. 제가 아는 분은 ‘러닝 코치’ 시스템을 개발했는데, 12분의 달리기 테스트를 통해 운동 능력을 측정하고 160여 개의 전문 프로그램을 제공하는 방식이었어요. 이걸 개발하는 데 꽤 오랜 시간과 노력이 필요했다고 합니다. 또한, 유지보수 비용도 간과할 수 없습니다. 프로그램은 한번 만들고 끝나는 게 아니라, 운영하면서 발생하는 오류를 수정하고, 새로운 기능이 필요하거나, 운영체제 업데이트에 맞춰 개선해야 하는 경우가 많거든요. 이런 부분까지 고려해서 전체적인 ‘총 소유 비용(TCO)’을 생각해야 합니다.

데이터베이스(DB) 구축의 중요성

대부분의 프로그램은 데이터를 저장하고 관리하는 DB를 필요로 합니다. 이 DB를 어떻게 설계하느냐에 따라 프로그램의 성능과 안정성이 크게 좌우됩니다. 예를 들어, ‘임신 중 인플루엔자 감염과 소아 발달’ 같은 연구에서 데이터를 분석하려면, 관련된 여러 정보를 효율적으로 저장하고 검색할 수 있는 DB 구조가 중요하겠죠. 만약 DB 설계가 잘못되면, 나중에 데이터를 찾거나 수정하는 데 시간이 오래 걸리거나, 데이터가 꼬이는 문제가 발생할 수 있습니다. 특히 ‘경북TP’ 같은 곳에서 ‘지역혁신 선도기업’ 육성을 위해 미래차 전장부품, 이차전지, AI 기반 제조검사 시스템 등 다양한 분야의 핵심 기술 개발에 국비 262억을 투입하는 사업을 진행할 때도, 이러한 기술 개발의 근간이 되는 데이터 관리 시스템이 얼마나 잘 구축되어 있느냐가 성패를 가를 수 있습니다.

프로그램 개발 후의 관리와 업데이트

프로그램 개발이 완료되었다고 해서 모든 것이 끝나는 것은 아닙니다. 오히려 개발 이후의 관리가 더 중요할 수도 있습니다. 사용자들이 예상치 못한 방식으로 프로그램을 사용하거나, 새로운 운영체제 버전이 나올 때마다 호환성 문제가 발생할 수 있습니다. ‘스마일라식’ 같은 시력 교정술도 처음 개발된 이후 계속해서 3세대, 4세대 등으로 업그레이드되면서 난시 교정 효과 등이 개선된 것처럼, 프로그램도 지속적인 업데이트가 필요합니다. 특히 ‘항노화 개발’, ‘인공지능 기반 업무 전환’과 같이 기술 변화가 빠른 분야라면 더욱 그렇습니다. 따라서 개발 단계부터 향후 업데이트나 유지보수 계획을 고려하는 것이 좋습니다. 혹시라도 발생할 수 있는 ‘시력 저하’와 같은 문제에 대해 재수술이 가능한지 알아보는 것처럼, 프로그램도 마찬가지로 문제가 생겼을 때 어떻게 대처할 것인지에 대한 계획이 필요합니다. 아무리 ‘도킹 시스템’이 안정적이라고 해도 예상치 못한 상황은 늘 발생할 수 있으니까요.

“나만의 프로그램을 만들고 싶을 때, 알아두면 좋은 것들”에 대한 2개의 생각

  1. 데이터베이스 설계 정말 중요하네요. 제가 만들었던 간단한 프로그램에서도 데이터가 엉망이 돼서 삽질했던 경험이 있어서, DB 구조를 꼼꼼하게 짜는 게 얼마나 중요한지 알 것 같아요.

    응답

댓글 남기기