비즈니스/엔터프라이즈용 앱을 만들 때 고려해야 할 것이 뭘까요?
(news.ycombinator.com)HN에 올라온 질문과 추천을 많이 받은 답들
답변 1
- 구매자는 누군가? 일반적으로 제품의 사용자와 다르고, 그들이 원하는 게 무엇인지 파악해야 함
- SSO, SAML 기반
- 보안에 있어서 OWASP top-10 은 커버하고, app-sec(앱 보안)도 커버
- RBAC 구현. 관리자가 사용자 추가/관리 쉽게 할 것
- 데모 계정을 샌드박스로 구현하고 실제 데이터와 비슷한 걸로 채울 것. 세일 피치때 매우 쉽게 할 것. 당신 대신 제품이 말하게 할 것
- 처음부터 멀티 테넌시를 고려할 것. 나중에 추가하기 어려움
- 도메인별 컴플라이언스 요구사항을 처음부터 구축할 것. SOC 2와 같은 것은 힘들지 않음. 그러는 동안 괜찮은 보안 공급업체를 찾아서 테스트받고, 우선순위가 높거나 중간인 문제점들을 수정하고 인증서를 발급받을 것. 고객과의 신뢰를 구축하게 됨
- 보고서. 보통 관리자들은 다양한 보고서를 필요함. 그들에게 CSV/Excel 다운로드를 제공하고, 그들의 스프레드 시트 소프트웨어에서 잘라서 사용할 수 있게 만드는 것이 좋음
- 사용자들은 실수할 수 있으므로, 항상 Soft-delete를 이용할 것. 그리고 몇 달 후에 hard-delete 가능
답변 2
- 회사의 첫 번째 엔지니어로서 2개의 성공적인 엔터프라이즈 앱을 만들었음(하나는 팔았고, 하나는 현재 100M 이상 가치)
- 걱정해야 할 단 하나는 "고객이 당신의 앱을 정말로 원하고 필요로 하는지"임. 엔터프라이즈 SaaS 제품의 99%는 누락된 기능 때문이 아니라 이것 땜에 실패함
- SSO, Integration, 감사 추적(Audit Trail) 같은 엔터프라이즈 기능은 고객이 요청할 때 구축할 수 있음
이런 기능은 대부분 해결된 문제지만, 당신이 엔지니어이기 때문에 매력적인 문제처럼 보임 - 이런 것은 무시하고 비즈니스 문제에만 집중할 것 "내 앱이 내 고객의 절실한 요구를 해결하는가?"
이 질문에 대답하는 마인드셋을 가지려면 "The Mom Test"를 읽을 것. 그게 지금 가장 중요함
답변 3
- 내가 당신이라면 B2B/엔터프라이즈 제품의 기술적 측면은 나중을 위해 남겨둘 것
- 주요 문제는 판매 프로세스/GTM(Go To Market) 전략을 파악하는 것. 다른 사람들이 얘기했듯이, 문제/산업에 대해서 알고 기업에 판매해 본 경험이 있는 사람과 파트너십을 맺는 것이 도움이 됨. 이게 회사의 핵심 역량이 될 것이라는 것을 명심(돈을 많이 벌고 싶다면). 기술 리더로서의 업무는 단순히 제품을 만들고 배송하는 것보다 컨설팅에 더 가까움
- 혼자 진행한다면, 비즈니스 프로세스에 관련된 많은 사람들과 이야기해보고, 당신이 지금 고치려고 하는 문제를 왜 그들이 지금 그런 식으로 하고 있는지를 확인할 것. 종종 우리는 개발자로서 문제를 기술 문제로 보지만, 실제로는 조직/정치/사회 문제일 가능성이 높음. 먼저 많이 구축하지 말고, 보여주고 피칭할수 있는 비주얼 프로토타입을 먼저 만들고, 사용자가 직접 테스트할 수 있게 제공
답변 4
- 당신이 추구하는 비즈니스 유형에 따라 많은 것이 달라짐. 정부기관 또는 금융조직을 대상으로 한다면 요구사항이 일반 소프트웨어 회사보다 훨씬 많음
- 대기업의 경우는 판매 주기도 상당히 길 수 있지만, 이를 보완하듯 거래 규모가 상당히 클 수 있음
- 몇 년 간 기업고객에게 판매한 내가 줄 수 있는 최고의 조언은 "타겟 고객을 이해하라"임. 회사 자체뿐만 아니라 소프트웨어를 판매할 실제 사람들. 구축을 시작하기 전에 대상 고객과 대화하여 그들이 필요로 하는 것이 정확히 무엇인지 확인하고(그게 당신이 생각하는 것과 일치하는지도 확인하고), 그들이 당신의 소프트웨어 구입에 어떤 장애물이 있는지도 확인할 것. 요구사항을 미리 안다면 판매 과정에서 놀라지 않ㅅ을 것
- 내가 추천하는 책은 The Mom Test. 대상 고객으로부터 피드백을 얻기 위해 올바른 질문을 하는 방법을 배울 수 있을 것
답변 5
- API를 노출하도록 앱을 만들고, 웹클라이언트가 그 API를 이용해 렌더링하게 만들 것. 엔터프라이즈 공간에서는 SEO를 위해 서버측 렌더링을 수행할 필요는 없음
- 종종 기업에서 사람들이 당신의 앱을 사용한 뒤 스스로 자동화하거나 앱을 다른 시스템에 통합하기를 원함. 이때 API가 있다면 당신이 추가로 작업할 필요가 없다는 것. 그들이 앱에서 할 수 있는 모든 것은, 자동화할 수 있음
- 데이터베이스가 관련되어 있다면 당신의 사용자가 읽을 수 있는 읽기 전용 복제본이 있다면 모든 비즈니스 질문에 빠르게 답변이 가능. 많은 사업가, 보고서 작성자, 엔지니어들은 SQL에 매우 정통함.
답변 6
- 가장 중요한 것은 "기업이 해결을 위해 기꺼이 비용을 지불할 수 있는 문제를 찾는 것". 간단한 MVP를 설정하고 거기서부터 성장할 것
답변 7
- 스키마 단계부터 멀티테넌시를 위한 구축 및 설계
- ID와 로그인 메커니즘을 디커플링 할 것 - 사용자당 멀티 로그인 메커니즘을 계획(이메일/암호, SAML, OpenID Connect, Google)하고 멀티 인증 팩터도 고려(TOTP, Duo,..). 인증된 사용자를 어떻게 구분할지 및 이메일 주소를 어떻게 검증할지 주의할 것
- 데이터베이스 연결에도 TLS를 사용. 암호화를 사용할 것. 백업을 자동화하고, 전체 어플리케이션이 아닌 고객별 데이터를 복원/Export할수 있게 할 것
- 시계열 데이터베이스 또는 이벤트 로깅 시스템을 사용하고, 권한이 있는 사용자가 시스템에서 수행하는 모든 작업, 계정 또는 권한 변경, 파괴적인 작업등에 대한 Audit Trail을 생성할 것