StewardAI

Eunice · StewardAI

· 16분 읽기

Aware: 소스코드까지 공개한 무료 정신건강 앱

Aware는 스웨덴 비영리재단 29k가 만든 무료 정신건강 앱으로, AGPL-3.0 라이선스로 코드를 전부 오픈소스 공개했습니다. 소개 페이지가 아니라 GitHub 저장소 자체로 검증했습니다.

오픈소스 정신건강 앱 Aware를 만든 스웨덴 비영리재단 29ki의 GitHub 조직 아바타

대부분의 무료 정신건강 앱은 개인정보처리방침과 "과학적 근거" 배지를 믿어달라고 요청하고, 거기서 검증의 흔적은 끝납니다. 스웨덴 비영리재단 29k가 만든 Aware는 대다수 경쟁 앱이 내놓지 않는 것을 내놓습니다 — 실제 소스코드입니다. README는 셀링 포인트를 직접 밝힙니다 — "Aware is a free app for mental health, wellbeing and inner development brought to you by the non-profit foundation 29k"(Aware는 비영리재단 29k가 제공하는 정신건강, 웰빙, 내면 성장을 위한 무료 앱입니다) — 그리고 마케팅 페이지와 달리, 누구나 한 줄씩 읽을 수 있는 공개된 AGPL-3.0 라이선스 저장소로 그 말을 뒷받침합니다.

그래서 그냥 믿고 넘길 게 아니라 직접 검증해볼 가치가 있는 주장입니다. 실제로 유지보수되는 오픈소스 프로젝트인가, 아니면 비영리단체가 한 번 코드를 던져놓고 더는 손대지 않는 형태인가? 커밋 히스토리, 라이선스 파일, 의존성 목록이 담긴 29ki/29k 저장소 자체가 바로 그 확인이 이뤄지는 곳입니다.

이 무료 오픈소스 정신건강 앱이 자신을 어떻게 설명하는가

README는 프로젝트의 계보를 명확히 밝힙니다 — "This is the 2.0 open-source version based on the learnings from the previous 29k: Mental Health App."(이것은 이전 29k: Mental Health App에서 얻은 배움을 바탕으로 만든 2.0 오픈소스 버전입니다.) 즉 Aware는 29k의 첫 시도가 아니라 리빌드이고, 소스 자체를 공개한 건 두 번째 시도부터입니다. README는 GitHub 안에 앱을 호스팅하는 대신 iOS App Store와 Google Play의 앱 링크로 연결합니다 — 이 저장소는 코드 자체이고, 배포 채널이 아닙니다.

29ki 조직 프로필은 단체의 미션을 직접적으로 적어뒀습니다 — "29 000 days in a lifetime. Make them count"(한 사람의 일생은 29,000일입니다. 그 하루하루를 의미 있게 만드세요). 거점은 스웨덴 스톡홀름으로 표기되어 있고, 팔로워 12명, 공개 저장소 26개가 있습니다 — 그중 고정(pinned)되어 있는 건 29k 저장소 하나뿐이며, 그곳 설명은 "the repository of the free, non-profit, open-source and co-created mental health app Aware"(무료·비영리·오픈소스이며 공동 제작된 정신건강 앱 Aware의 저장소)입니다.

라이선스가 갈려 있는데, 배지는 그것과 안 맞습니다

여기서 그냥 훑고 지나가지 말고 확인해볼 가치가 있는 첫 번째 지점이 있습니다 — README 자체의 License 섹션은 프로젝트의 서로 다른 두 부분에 서로 다른 조건을 명시합니다. "The computer software is licensed under the AGPL-3.0 license"(소프트웨어는 AGPL-3.0 라이선스로 제공됩니다)라고 쓰여 있는 동시에, "the content in the /content directory including its subdirectories are licensed under the CC-BY-SA-4.0 license"(/content 디렉터리와 그 하위 디렉터리의 콘텐츠는 CC-BY-SA-4.0 라이선스로 제공됩니다)라고 명시합니다 — 앱의 코드(카피레프트 라이선스라서, 수정한 공개 버전을 운영하는 사람은 그 변경 사항을 다시 공개해야 함)와 가이드 세션 콘텐츠(소프트웨어보다는 텍스트·미디어에 더 흔히 쓰이는 크리에이티브 커먼즈 동일조건변경허락 라이선스) 사이를 의도적으로 나눈 구조입니다.

그런데 README 상단의 라이선스 배지는 전혀 다른 내용을 말합니다 — 그 대체 텍스트(alt text)는 "29k is released under the Creative Commons Zero v1.0 Universal"(29k는 Creative Commons Zero v1.0 Universal로 공개되었습니다)라고 되어 있는데, 이는 모든 권리를 포기하는 퍼블릭 도메인 선언인 CC0이지, License 섹션이 실제로 명시한 AGPL-3.0이 아닙니다. 저장소의 raw LICENSE 파일을 보면 실제로 코드를 지배하는 라이선스가 무엇인지 확실해집니다 — "GNU AFFERO GENERAL PUBLIC LICENSE, Version 3, 19 November 2007"로 시작하는 GNU Affero General Public License입니다 — 즉 License 섹션의 설명이 맞고 배지가 틀렸다는 뜻입니다. 작은 불일치지만 시사하는 바는 있습니다 — 투명성을 내세우는 프로젝트라도, 클릭해서 직접 들어가 보지 않는 사람에게는 오래된 배지가 잘못된 라이선스를 가리키고 있을 수 있다는 점입니다.

실제로 무엇으로 만들어졌는가

Aware는 모노레포이고, 저장소 최상위 파일 트리에 그 구성이 드러납니다 — 모바일 앱을 위한 client 디렉터리, 백엔드 로직을 위한 functions, 콘텐츠 툴링을 위한 cms, 라이선스가 걸린 세션 자료 자체를 위한 content, 그리고 bigQuery/schemaViews와 나란히 있는 web 디렉터리입니다.

client의 package.json은 앱 이름을 29k-cupcake-client로 지정하고, react-native를 0.74.3 버전에 고정해두었으며, @react-navigation/native, @react-native-firebase/auth, 상태관리 라이브러리 zustand를 함께 쓰고 있습니다. 또한 @stripe/stripe-react-native에 대한 의존성도 목록에 올라 있습니다 — 추측이 아니라 의존성 목록에 실제로 있는 항목이지만, 이 글을 위해 확인한 저장소 범위 안에서는 그게 실제로 무엇에 연결되어 쓰이는지 문서화된 곳을 찾지 못했습니다.

client 폴더 자체는 React Native 빌드 구성을 직접 확인시켜줍니다 — ios와 android 플랫폼 폴더, 배포용 fastlane, metro.config.js가 있습니다. 별도의 cms 디렉터리는 그 자체로 독립된 TypeScript 프로젝트로, Vite로 빌드되고 Jest로 테스트되며 — 가이드 세션 콘텐츠를 관리하는 툴링으로, client 앱 코드베이스와는 분리되어 있습니다.

여전히 유지보수되고 있습니다 — 스타트업 속도가 아니라 비영리단체 속도로

몇 년간 아무도 손대지 않았다면 공개 저장소라는 사실만으로는 아무것도 증명되지 않습니다. main 브랜치의 커밋 히스토리를 보면 가장 최근 커밋은 2026년 9월 10일로 — 이 글을 검증한 시점 기준 약 5주 전입니다 — 새로운 서비스 스폰서십 크레딧을 추가하고 무관한 오타(링크가 "Daily.com"으로 되어 있던 걸 "Daily.co"로 고친 것)를 수정한 소규모 커밋 묶음이었습니다. 그 이전으로 가면 흔적이 점점 뜸해지는데, 머지된 풀 리퀘스트 기준으로 2026년 6월 2일, 4월 18일, 1월 7일에 활동이 있었습니다. 이 저장소는 분명 아직 살아 있지만, 매일 커밋이 올라오는 게 아니라 비영리단체 규모에 맞는 묶음 단위로 움직이고 있습니다 — 이 블로그가 보통 다루는 벤처 투자를 받은 프로젝트나 1인 해커의 프로젝트와는 리듬이 다르고, 이 점은 얼버무리지 말고 분명히 밝혀둘 가치가 있습니다.

백로그도 비슷한 이야기를 들려줍니다. 풀 리퀘스트 탭에는 열려 있는 PR이 68개로, 최근 머지 건수에 비하면 상대적으로 많은 편이고, 릴리스 페이지에는 태그된 릴리스가 전혀 없습니다 — 앱은 분명 앱스토어로 출시되고 있지만, GitHub의 릴리스 기능을 통해서는 아닙니다. 혼자 하는 사이드 프로젝트였다면 이건 경고 신호겠지만, 소규모에 대부분 자원봉사자로 구성된 팀이 모노레포를 운영하는 비영리단체라면, 방치된 백로그가 아니라 아직 열려 있는 백로그로 읽힙니다.

실제로 만드는 사람들

이 프로젝트는 all-contributors 컨벤션으로 기여자를 명시하는데, raw .all-contributorsrc 파일에는 코드, 디자인, 콘텐츠, 리서치, 프로젝트 관리 역할을 포함해 59개의 개별 항목이 올라 있습니다 — README가 그 표를 설명하는 방식 그대로입니다. 이는 2인 비영리 사이드 프로젝트보다 의미 있게 넓은 범위이지만, 앞서 본 커밋 주기를 보면 풀타임 엔지니어링 팀도 아니라는 점 역시 드러납니다.

이 글의 검증이 멈추는 지점

기억에 의존해서 메우기보다는 솔직하게 밝혀둘 게 몇 가지 있습니다.

첫째, 앱스토어 자체 — Apple App Store와 Google Play — 는 이 글을 검증하는 세션 동안 접속이 되지 않았습니다. 평점, 설치 수, 스토어 내 정확한 설명에 대해서는 검증된 내용으로 쓸 수 있는 게 전혀 없으며, 확인된 앱스토어 관련 사실은 README가 둘 다로 링크를 걸어뒀다는 것뿐입니다.

둘째, 이 세션에서 접근할 수 있었던 저장소 범위 안에서는 포함된 Stripe SDK가 앱 안에서 실제로 무엇에 쓰이는지 문서화된 곳이 없습니다. 추측이 아니라 실제 의존성 목록에 올라 있는 항목이지만, 그 용도 — 기부, 유료 티어, 혹은 다른 무언가 — 는 이 글에서 확인할 수 없었습니다.

셋째, 특히 정신건강 앱이라는 점에서 가장 중요한 지점인데, 이번 리서치 과정에서 Aware의 콘텐츠를 뒷받침하는 동료평가 연구나 발표된 임상시험을 찾지 못했습니다. 그게 존재하지 않는다는 뜻은 아니고, 여기서는 확인할 수 없었다는 뜻일 뿐입니다 — 그리고 이는 저장소를 직접 대조해서 확인한 "AGPL 라이선스, 기여자 59명, 활발한 커밋"과는 의미가 분명히 다른 종류의 주장입니다.

이 앱은 위기 대응 자원이 아닙니다. 저장소 어디에도 그런 식으로 소개되어 있지 않고, 즉각적인 정신건강 지원이 필요하다면 가이드 명상 앱은 — 오픈소스든 아니든 — 적절한 도구가 아닙니다. 위기 상담 전화나 자격을 갖춘 전문가를 찾는 것이 맞습니다.

이 사례가 일반화해서 알려주는 것

여기서 얻을 수 있는 유용한 습관은 정신건강 앱에만 한정되지 않습니다. "무료", "비영리", "과학적 근거" 같은 배지를 믿기 전에, 그 주장이 실제로 들여다볼 수 있는 무언가로 뒷받침되는지 확인하는 것입니다 — 이 블로그가 기부 플랫폼의 투명성 약속이 공개 장부로 뒷받침되는지, 아니면 그냥 슬로건에 불과한지, 영양 등급 공식이 읽을 수 있는 모듈인지 블랙박스인지, 분산 반복 학습 알고리즘이 영업 비밀이 아니라 공개된 코드인지 확인할 때와 똑같이 적용해온 기준입니다.

Aware는 대부분의 경쟁자보다 이 기준을 더 멀리까지 통과합니다 — 코드는 실제로 AGPL 라이선스이고, 라이선스 배지는 가짜가 아니라 단순히 틀린 것이며, 커밋 로그는 서두르진 않지만 실제로 이뤄지는 유지보수를 보여줍니다. 그런데 이 프로젝트가 통과하지 못하는 지점 — 사실 이 분야에서는 직접 캐묻지 않으면 거의 누구도 통과하지 못하는 지점 — 은 "과학적 근거"가 마케팅 문구가 아니라 검증 가능한 주장인가 하는 부분입니다. 다음에 어떤 웰빙 앱이 이름 옆에 연구를 연상시키는 단어를 붙여놓을 때, 이 간극을 떠올려볼 가치가 있습니다.

출처

아래 링크는 발행 전 직접 확인했습니다.

  1. 1.GitHub — 29ki/29k 저장소 · 확인일
  2. 2.GitHub raw — 29ki/29k README.md · 확인일
  3. 3.GitHub raw — 29ki/29k LICENSE (AGPL-3.0) · 확인일
  4. 4.GitHub — 29ki/29k LICENSE 파일 보기 · 확인일
  5. 5.GitHub — 29ki 조직 프로필 · 확인일
  6. 6.GitHub — 29ki/29k 커밋 히스토리 (main) · 확인일
  7. 7.GitHub — 29ki/29k 풀 리퀘스트 · 확인일
  8. 8.GitHub — 29ki/29k 릴리스 (태그된 릴리스 없음) · 확인일
  9. 9.GitHub raw — package.json (루트) · 확인일
  10. 10.GitHub raw — client/package.json · 확인일
  11. 11.GitHub — 29ki/29k 저장소 파일 트리 (main) · 확인일
  12. 12.GitHub — 29ki/29k client 디렉터리 · 확인일
  13. 13.GitHub — 29ki/29k cms 디렉터리 · 확인일
  14. 14.GitHub — 29ki/29k docs 디렉터리 · 확인일
  15. 15.GitHub raw — .all-contributorsrc · 확인일
  16. 16.GitHub avatar — 29ki organization (heroImage) · 확인일

Read in English →