본문으로 건너뛰기

MVP (Minimum Viable Product)와 기술 부채에 대처하는 자세

· 약 3분
조준철
HandStack 개발자

기존에 잘 돌아가는 코드를 수정해야 하는 경우가 생겼습니다.

가급적 기존 코드를 수정 만큼은... 특히 구조나 아키텍처까지 건드려야 하는 상황은 정말로 피해야 하는게 당연한데도 다른 사람은 몰라도 개인적으로는 충분히 문제가 예상되기 때문입니다.

오픈 소스를 Github에 올리기로 마음 먹었을 때 제일 걱정인 부분이 이거 였다는 것을 다시 상기하게 됩니다.

소스 코드를 외부에 공개하지 않아도 되는 경우 개발자 만드는 프로그래밍 소스에 대해 자유도나 팀원들 또는 담당자들과 합의 할 여지가 많습니다. 이것은 기업내 프로젝트든 SI든, SaaS든 어떠한 분야에서든 마찬가지 입니다.

간단한 예를 들면 프로그램 실행시 상용 라이선스 정보나 데이터베이스 연결문자열 등 키 정보를 수급하기 위한 정보 관리를 내부 소스 제어 관리를 이용하거나 비밀 키를 관리하는 시스템을 통해서 가져오도록 하는 부분을 모두가 동일하게 공유 해야 하는 공개 소스로 만드려면 어떻게 해야 할까요?

이러한 딜레마는 정말 일부에 불과합니다

  • 업계에 널리 알려진 범용적인 아이디와 패스워드로 변경하여 공개한다
  • 상용 라이선스 키를 마스킹하여 공개한다
  • 키를 수급하기 위한 프로그램을 추가로 만들어 공개한다
  • 민감한 부분은 아예 공개를 안하고 기술 문서로 남겨둔다
  • 공개되더라도 내부 시스템에 적용되지 않으면 문제되지 않으니 그냥 공개한다

물론 정답은 없으며 적정선에서 타협은 봐야겠지만 기본적으로 프로젝트의 성과는 돈을 더 많이 벌게 하거나 (1순위), 일을 편하게 하거나 (2순위), 제품의 가치를 올릴 수 있을때 (3순위) 나타납니다. 즉 지속적인 비즈니스를 운영 해야 하는 관점에서 성과의 기준을 벗어나는 기술 부채에 고민이 드는 것은 어쩔수 없습니다. 사실 누가 알아주는 경우도 많지 않거든요.

품질은 양심인데 하며 손을 대는 상황에서 일이 해결되는 것이 아니라 문제가 점점 커지거나 답이 안나오는 경우에 따라 이런 심리가 반복적으로 생기는 것 같습니다.

  • 어차피 기능적인 결과는 동일한 것을 내가 무슨 영달을 얻으려고 잘 돌아가는 코드를 수정하고 있는지... 번아웃도 가끔 옵니다
  • 구조나 아키텍처까지 건드리면 예상 되어지거나 예상 못했던 사이드 이펙트에 시간이 지연되고 계획해 두었던 일정이 깨지는 스트레스가 옵니다

그럼에도 불구하고 기술 부채들에 대해서 현실적인 고민을 하고 손을 대어 보는 건 충분한 가치가 있습니다.

  • 프로그램 소스 코드에 대한 품질이 높아집니다. 라면 한두개 끓이는 경험과 백개, 천개, 만개를 끓이는 경험은 레시피를 만들때 수준과 깊이가 달라지니까요.
  • 적정선에서 만족스러운 결과를 만들어 냈을때의 성취감은 어제보다 나은 오늘의 나를 만들었다는 자부심을 만듭니다.
  • 어느 순간 나와 비슷한 고민을 해봤던 사람들을 만나게 될때 좀 더 상대방의 겪었던 고충과 이면을 이해하게 되는 시야가 생깁니다.

이번 주에 HandStack 내에서 태넌트 기능을 처리하기 위한 부분을 개선하기 위해 문득 들었던 생각입니다. 읽어 주셔서 감사합니다.

한 주간의 여정 (2024-01-08 ~ 2024-01-12)

  • 회원가입 및 로그인시 UserWorkID, TenantAppRequestPath 사용자 정보 추가하기
  • contract, view 화면을 빌드 디렉토리로 복사하는 스크립트 추가
  • applicationID 를 전달하는 /handsup/api/tenant-app 요청을 수행하는 클라이언트에 UserWorkID를 전달하도록 변경
  • 파일 업로드/다운로드시 설정 파일 위치에 따라 호스트, 태넌트 파일 경로를 구분하도록 개선
  • 프로젝트 참조 패키지 버전 업데이트
  • 파일 업로드시 절대 링크 경로 버그 수정
  • 참조 프로젝트 목록에서 내가 만든 프로젝트가 아닌 경우만 조회되도록 개선
  • 빈 경로에 대한 디렉토리 생성 기능 추가
  • syn.js measureSize(text, fontSize) 기능 개선
  • 태넌트 앱 요청을 수행하는 서버리스 함수(featureMeta.json, featureMain.cs)에 UserWorkID를 하도록 대응 개발
  • handsup 확장 모듈 메뉴 표시, 순서 정리
  • 태넌트 앱 UI Assets 디렉토리 조회 기능 개선
  • UI Assets 관리 화면 파일 관리 기능 개선

개발자와 엔지니어를 위한 앱 개발 환경인 HandStack을 오픈 소스로 공개합니다

· 약 2분
조준철
HandStack 개발자

안녕하세요. 저는 SI/SM, 자체 개발 그룹웨어 SaaS 서비스 전문 기업 큐씨엔에서 개발 업무와 HandStack의 전반을 담당하고 있는 조준철 부장입니다.

지금까지 크고 작은 프로젝트들을 진행 하면서 오픈 소스의 도움을 많이 받아 왔는데, 저도 개발 지식과 경험을 공유 할 수 있는 오픈 소스를 만드는 것을 고민하다가 작년 중순부터 조금씩 준비하여, 이제 공개 가능한 MVP (Minimum Viable Product) 수준이 되어서 부족한 게 많더라도 일단 선 공개 후 지속적으로 개선하려고 합니다.

아무래도 제가 개발 업무를 주로 하고 있다 보니 자연스레 HandStack에 관심을 가질 만한 주요 사용자는 "개발자와 엔지니어"로 집중하여 코드와 문서로 필요한 내용을 전달하는 데 노력하려 합니다.

HandStack을 한 줄로 표현 하면 이렇습니다.

"앱 개발과 운영 과정을 최대한 간소화하고 개인화된 개발 경험을 제공함으로써 개발자와 엔지니어가 칼 퇴근이 가능하도록 돕습니다." 좀 더 기술적으로 표현하면 "HAND (HTML5 + ASP.NET Core + Node.js + Docker) 기술 스택으로 당신의 비즈니스에 최적화된 앱을 신속하게 만들고 유지합니다."

누가 HandStack를 관심 가져야 하나요?

기업이 필요한 정보 시스템을 기획에서 개발과 구축, 운영까지의 모든 프로세스와 서비스를 제작하는 일련의 과정을 주관사와 수행사, 운영사가 책임을 지고 역할을 명확하게 구분하여 프로젝트를 진행하는 것을 SI (System Integration)이라고 합니다.

제조업과 IT의 결합이라고 불리는 4차 산업 시대에 디지털 전환이라는 이름으로 전통적인 SI 개발 방식에 + 클라우드 기반과 다양한 서비스형 소프트웨어(SaaS)를 API 방식으로 연계 하는 개발 방법으로 운영 상황에서 마주할 수 있는 복합적인 문제들을 대응 하는 설계에 초점을 맞춰 전환 중이고 점차 개발과 운영의 경계가 희미해져가고 있습니다.

다행인 건 비즈니스 앱을 개발하고 운영하기 위한 기술과 지식은 이제 충분히 상향 평준화가 되었다는 겁니다. 업계 표준 기술들은 성숙되었고 구글 검색 + AI (ChatGPT, Copliot 등) 의 도움만으로도 개인의 비즈니스에 대한 이해와 적절한 질문 방법을 고민하여 학습을 통해서 대부분의 요구 사항이나 이슈를 해결 가능한 시대로 진행 중이니까요.

문제는 이러한 비즈니스 시스템을 만들어가는 과정에서 나와 비슷한 고민을 나누고 도움을 주고 받을 수 있는 공통적인 관심사가 있는 실무적인 동료가 부족하다는 겁니다. 그래서 적은 인력으로 비즈니스 앱 개발과 운영을 해야 하는 담당자들을 위한 솔루션을 만들어 가고 있습니다. 다음 키워드에 관심이 생기신다면 조금 더 시간을 내주세요.

  • 적은 비용으로 자사 비즈니스 앱 구축
  • 유연한 개발 업무 인수인계 또는 분업을 할 수 있는 개발 환경
  • Windows, macOS, Linux, Docker, 클라우드 기반 운영 가능
  • 확장 가능한 모듈러 모놀리식 아키텍처 프로그램
  • 표준화된 체계적인 인하우스 개발 업무 시스템 도입
  • 전통적인 자사 S/W 제품을 클라우드 네이티브 앱으로 전환

HandStack을 사용 해야 하는 이유

· 약 3분
조준철
HandStack 개발자

비즈니스 앱은 무엇인가요?

이익을 얻거나 비용을 절감하는 기업 활동에 필요한 업무 지식을 관리하는 소프트웨어를 의미합니다.

비즈니스 앱

디지털 전환 이슈가 확대되며 기업의 비즈니스 모델을 통합 관리를 하기 위해 전략, 프로세스, 시스템, 조직 문화에도 변화가 다가오고 있습니다. 개발 지식이 없더라도 업무 담당자가 앱을 개발 할 수 있는 솔루션이 2022년 SW산업 10대 이슈 전망에 포함 되었습니다.

이것은 프로그램, 앱 개발이 보편화되는 사회적인 효과와 SW 전공자 및 비전공자간의 전문성 격차가 줄어드는 계기로 작용 예상됩니다. 하지만 그 기능 기업에 고유 업무에 통합하기 위한 적합한 개발 및 운영 솔루션이 추가적으로 필요합니다.

문제는 시스템 구축에 필요한 기술과 지식이 너무 많아지고, 복잡하며, 이에 따라 설계/구현/운영에 필요한 비용이 증가하고 있어 대부분의 기업에서 고객 요청과 업무에 필요한 대응을 적절하게 못하고 있는 것이 현실입니다.

이제 기업 조직 내 비즈니스 모델에 대응하는 효과적인 개발 및 운영 역량을 내재화 하는 것이 기업 활동 경쟁력을 갖추기 위한 기준이 되고 있습니다.

HandStack은 디지털 전환의 핵심인 기업의 고유 개발 프로세스와 비용을 효과적으로 절감 할 수 있는 솔루션과 방안을 제공하는 것입니다.

개발 프로세스 개선 및 유지보수 비용 절감 방안

기업의 업무 프로젝트들은 논리적으로 보면 어플리케이션에서 이뤄지는 거래(요청/응답) 과정이 데이터베이스 CRUD(입력, 조회, 수정, 삭제)가 전체 거래의 90%를 차지하는 경우가 대부분이며, 다양한 고객 요구사항과 유지보수가 많은 소프트웨어 아키텍처의 비즈니스 로직이 거의 비슷하게 구성되면서 SQL에 매개변수를 전달하는 부분을 다르게 처리하는 걸 반복적으로 개발됩니다.

HandStack은 업계 표준 기술을 기반으로 기업의 비즈니스 앱 개발 및 운영 환경을 단순화, 표준화 하여 최소한의 학습비용으로 업무분석가, 개발자, 운영자 3명으로 지속가능한 서비스를 할 수 있도록 다음과 같은 주요 솔루션을 제공합니다.

개발 및 배포 프로세스 개선

AS-ISTO-BE
화면 개발화면 개발
업무 개발 (인터페이스, 데이터 변환)쿼리 개발
쿼리 개발언제든 즉시 배포
컴파일 & 빌드업무 담당자 즉시 확인
사용자가 적은 시간대 정기 배포
프로그램 다운 타임후 서비스 실행
배포 다음날 업무 담당자 확인

비즈니스 로직 추가 및 변경

  • 계약 중심 설정 및 개발
  • 데이터베이스 CRUD 요청에 대한 SQL을 작성하면 API 서비스로 제공
  • Serverless Function(Node.js, C#)을 작성하여 API 서비스로 제공
  • Forbes 확장 모듈로 기능 제공
  • 빠른 장애 원인 확인

HandStack은 기업의 비즈니스 모델을 통합 하기 위해 검증된 개발 프로세스, 도구, 문서, 교육을 단순화하여 초급 개발자가 1주 안에 기업의 앱의 기본적인 유지 보수 개발 및 운영을 시작 할 수 있도록 설계, 개발, 테스트, 배포, 운영 업무가 가능한 단일 솔루션을 상업적으로 사용 가능한 제한이 없는 오픈 소스로 공개함으로서 기업의 비즈니스 서비스와 제품에 필요한 앱을 만들기 위한 IT 도입 비용을 낮출 수 있다고 생각합니다.

HandStack에 대한 자세한 내용은 아래의 프레젠테이션 슬라이드를 통해 확인하실 수 있습니다.

환영합니다

· 약 1분
조준철
HandStack 개발자

오늘 HandStack 1.0을 발표하게 되어 기쁘게 생각합니다 ! 🥳

HandStack은 적은 비용으로 프로젝트 개발 및 운영을 가능하도록 주니어와 시니어를 대상으로 하는 전문 개발자를 위한 앱 개발 플랫폼입니다.

IT의 발달로 어느새 제조업과 바이오와 물리학, AI 및 IT 기술의 융합의 시대를 맞이하고 있습니다. 2016년 세계 경제 다보스 포럼에서 발표된 디지털 전환 이슈는 기업에서 만들어지는 제품과 서비스에 대한 업무, 소통 방식, 판매 및 서비스 제공 방식이 상호 연결되고 지능화 된 방식으로 변화하고 있다는 것입니다.

HandStack은 디지털 전환의 핵심인 기업의 고유 개발 프로세스와 비용을 효과적으로 절감 할 수 있는 솔루션과 방안을 제공하는 것입니다.

우리는 HandStack이 1인 기업에서 부터 글로벌 서비스가 가능한 엔터프라이즈 급에서도 활용 가능한 도구로서 비즈니스에 정말로 중요한 가치에 집중 할 수 있도록 도와줄 것이라고 믿습니다.