brunch

You can make anything
by writing

C.S.Lewis

by 디이프 Oct 31. 2022

[Tools] 개인 맞춤 식품을 만드는 기술자들의 도구

그 두번 째 이야기 

EDITOR'S NOTE

이전 글 “[Tools] 디이프의 기술 스택 - 정밀한 개인 맞춤 식품을 찾아가는 기술자들의 도구들”에서는 데이터 분석팀에서 주로 사용하는 기술 스택에 대해 알아봤습니다. 이번에는 데이터 분석팀에서 개발한 알고리즘과 식품-바이오 콘텐츠를 어떤 기술들로 서비스하고 있는지에 대해 알아보겠습니다.




디이프의 개인 맞춤 추천 알고리즘은 API로 서비스하여 여러 헬스케어 서비스를 구축하는 기업들에게 공급하고 있습니다. 기본적으로 RESTful API로 설계하고자 노력하고 있으며, Django 프레임워크를 기반으로 서비스 기능들을 구현하고 있습니다. 



이때 Docker, Docker-compose로 배포하고 있으며, 현재는 레거시한 구조로 세트업 되어 있으나, AWS, AZURE, Naver cloud와 같은 클라우드로 옮겨갈 준비도 함께하고 있습니다. 레거시 환경에서 감당하기 어려운 규모의 요청을 감당할 수 있으면서 비용 문제도 적은 플랫폼을 찾고자 벤치마크 중입니다. 따라서 AWS의 EC2, S3, AML, API gateway, RDS, Lamda 같은 클라우드 플랫폼의 다양한 서비스에 대한 이해도 필요합니다.


추천 서비스를 운영하면서 축적되는 개인정보 및 민감 정보 중 정보 주체의 동의를 얻은 데이터는 비식별화 처리를 거친 후 iF Life DB라고 불리는 데이터베이스에 허용된 기간 동안 저장되고 분석됩니다. 여기에 저장된 민감 정보 즉 헬스케어 데이터는 그 성격상 다양한 카테고리와 레벨의 엔티티로 구성되어 독자적인 규격으로 구축하고 갈라파고스화 되어 활용이 어려울 수 있지만, 저희는 HL7(Health Level 7)에서 발전된 FHIR(Fast Healthcare Interoperability Resource) 규격에 따라 처리하고 있습니다. 구성원들 모두가 개인정보 및 민감정보 처리 관련 법률을 숙지하고 그 책임과 의무에 대해 무겁게 이해하고 있습니다. 이렇게 축적된 헬스케어 데이터는 식품, 바이오 분야의 데이터 전문가들이 분석하여 식품 바이오 복잡계 DB 구축과 맞춤 식품 추천 알고리즘 개발에 필요한 인사이트를 얻는 데 활용되고 있습니다.



이렇게 개발, 공급된 맞춤 추천 서비스를 앱 서비스로 제작하여 제공하고 있습니다. 모바일앱은 개발 효율을 높이기 위해 Dart 기반의 Flutter를 활용하여 iOS와 안드로이드 앱 모두를 개발하고 있습니다. 



더불어, 맞춤 식품 서비스는 개인의 민감 정보를 다루기 때문에 암호화와 인증 시스템에 대한 이해와 적용이 필요합니다. 인증은 얼마큼 사용자를 덜 귀찮게 해야 하는지에 대한 고민을 담아야 하는 문제이기도 합니다. 그 때문에 Firebase는 기본이고 구글, 네이버, 카카오, 애플, 페이스북 등 플랫폼 서비스에서 제공하는 소셜 로그인 API를 활용하기 위해 Oauth나 여러 플랫폼과 정보 공유를 위한 LDAP에 대한 이해도 필요합니다. 


스마트폰으로부터 헬스케어 데이터를 받아오기 위해 Google Health나 Apple Healthkit를 활용해본 경험이 있으면 많은 도움이 됩니다. UI/UX 팀에서 화면 단위의 설계는 Adobe의 XD로 디자인하여 Zeplin으로 개발자와 협업하고 있습니다.


그리고 모든 분석, 개발 태스크와 버전 관리는 GitLab을 통해 관리하고 있으며 GitFlow 전략에 따라 개발프로세스를 진행하려고 노력하고 있습니다. 커뮤니케이션 도구로 Mattermost를 구축하여 활용합니다. 개발환경은 각자 취향에 따라 활용하지만, 주로 VS code를 사용하는 파와 VIM을 사용하는 파로 나뉘는 것 같습니다. 데이터 분석팀은 Jupyter notebook으로 이력을 남기며 분석을 진행하기도 합니다.


얼마 전 데이터 분석팀에서는 Python의 decorator를 데이터 분석용 코드에 효과적으로 적용하는 방법에 대한 고민을 공유하고 백앤드 개발자가 조언해 주기도 했습니다.


복잡한 알고리즘을 개발하는 일과 서비스를 사용자들에게 쉽고 안정적으로 공급하는 일은 많은 차이가 있어서 아직은 많은 시행착오를 겪으며 맞춤 식품 추천 서비스를 개선해 나가고 있습니다. 이 글을 통해 디이프에서 어떻게 개인 맞춤 식품 추천 기술을 개발하고 있는지 궁금해하는 데이터 분석가 그리고 개발자분들의 궁금증이 많이 해소될 수 있으면 좋겠습니다. 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari