본격 '길 잃은 글' 주의 안내문
오늘은 프로그램을 구동하는 원리에 대한 개념을 이해하기 위해 <인스타그램>을 예시로 글을 작성합니다. 해당 글은 개발에 대한 지식이 전무한 상태에서 약간의 개념만을 익힌 직후에 작성한 글이며, 따라서 작성한 내용이 아예 틀렸을 수도 있습니다. 부정적인/긍정적인 피드백을 모두 달게 듣고있습니다. 게시글에 대해 해주실 말씀이 있으시다면 아래 댓글 또는 방명록을 남겨주시기 바랍니다🙏
1. 인스타그램에서 유저가 할 수 있는 행동을 플로우 차트(Flow Chart)로 간단하게 나타내보자.
인스타그램(Instagram)은 사용자가 소비자이자 공급자이기도 한 SNS 플랫폼입니다. 일반 사용자는 기록 또는 소통을 하기 위해 인스타그램에 콘텐츠를 제작합니다. 콘텐츠는 게시물, 스토리, 릴스, 라이브방송으로 크게 4가지로 구분할 수 있습니다. 아래에는 사용자가 '앱을 실행하고 새로운 게시물을 업로드 하기'까지 보여질 수 있는 행동을 플로우 차트(Flow Chart)로 간단히 작성해 보았습니다.
새로운 게시물 추가 Flow 속 특징
- '사진 선택' 단계로 처음 진입시 서버는 클라이언트의 미디어 파일에 접근하기 위한 권한을 요청합니다. 사용자가 이 요청을 수락하면, 서버는 클라이언트의 저장공간에 접근할 수 있게 되고 사용자는 사진이 삽입된 게시물을 작성할 수 있게 됩니다. 그 외에 '사진 촬영' 시에도 카메라와 마이크 권한에 대한 허용이 필요합니다. 또, '위치 추가' 시에도 내 기기 위치에 대한 권한 허용이 필요합니다. 이에 관련된 내용은 애플이나 안드로이드의 개발 지원페이지에서 확인할 수 있습니다.
- 사용자가 게시물을 작성하면서 입력하는 '사진', '텍스트', '위치' 그외 다른 정보들은 서버에 저장됩니다.
- 작성을 완료하면 정상적으로 업로드된 게시물이 나의 피드와 홈화면(전체 피드)에 노출됩니다.
2. 인스타그램의 UI, 클라이언트, 서버, DB는 각각 어떻게 보이고 작동할지 예상해보자.
2-1. 인스타그램의 UI를 통해 시스템 겉훑기
인스타그램 애플리케이션을 실행하면 위에 나오는 첫번째 사진처럼 홈 화면에 도달하게 됩니다. 이 화면에서 사용자는 내가 팔로우한 계정의 스토리와 게시글, 그리고 짧은 길이의 영상 릴스와 광고를 스크롤해서 볼 수 있습니다.
- 홈 화면은 실시간으로 올라온 게시물이 표시되는 등 지속적인 업데이트가 이뤄지는 부분이기 때문에 데이터를 서버에서 불러옵니다. 다만 콘텐츠를 사용자에게 로딩없이 빠르게 보이기 위해 일부 데이터를 캐시파일로 클라이언트 DB에 임시 저장합니다.
- 화면을 아래로 스크롤 하는 것이 아니라 가장 상위 콘텐츠에서 위에서 아래로 당기면 피드가 '새로고침' 됩니다. 이 기능을 통해 사용자는 서버에 새로운 게시물을 요청합니다. 서버는 유저에게 보여지기에 알맞는 콘텐츠를 데이터 베이스에서 가져와 사용자(클라이언트)에 전달합니다.
네비게이션 바의 두 번째, 세 번째, 네 번째에 위치한 '검색' 'Reels' 'Shop'도 홈 화면의 피드와 기능이 비슷합니다. 콘텐츠를 서버에서 불러 오기 때문에 인터넷 네트워크 연결이 필요합니다. 위나 아래로 스크롤을 하며 사용자는 서버에 새로운 콘텐츠를 요청합니다.
- 사용자가 오랜 시간 머무르며 좋아요를 누른 콘텐츠, 직접 터치해 자세한 내용을 확인한 기록, 사용자가 남긴 댓글 등은 인스타그램의 데이터로 저장됩니다. 인스타그램의 수익은 대부분 '광고'에서 생기기 때문에 이러한 사용자의 활동 데이터는 인스타그램의 경쟁력이 됩니다. 사용자 데이터를 바탕으로 전환이 이뤄질 가능성이 높은 이용자에게 알맞은 광고를 노출합니다.
마지막으로 내비게이션 바의 다섯 번째, 사용자의 프로필 사진을 터치하면 내 피드에 진입할 수 있습니다. 이곳에서는 그동안 사용자 본인이 올렸던 콘텐츠를 확인할 수 있습니다.
- 프로필 사진, 팔로워/팔로잉 수, 게시물, 릴스, 스토리, 댓글, 좋아요 등 다양한 데이터를 필요로 합니다.
- 위에 작성했던 flow chart에서 게시물 업로드에 성공하면 '내 피드'에 최신순으로 기록됩니다. 이 피드에는 다른 유저도 접근할 수 있습니다. 다만, 사용자가 계정을 비공개로 설정했을 경우 팔로우를 허락한 사람에게만 피드가 공개됩니다.
2-2. 정리해보자
이렇게 겉으로 훑어봤을 때, 인스타그램이 요청받고 요청하는 데이터는 크게 세가지로 볼 수 있을 것 같습니다.
- 인스타그램 콘텐츠 관련 데이터 (사진, 글, 위치 등)
- 인스타그램 사용자 정보 데이터 (계정, 이름, 이메일, 성별 등)
- 인스타그램 사용자 간의 관계 또는 활동 데이터 (사용자가 콘텐츠에 머무른 시간, 사용자간에 교류했던 시간 등)
뭐랄까 오늘 과제는 내가 된통 당한 느낌이다. 글을 작성하면서 배운게 명확해지기 보다는 오히려 혼란스러워졌다. 서버, 클라이언트 그리고 데이터베이스 과연 내가 이해한 개념이 맞을까??? 내가 지금 분석하고 있는 방향이 맞나??? 사실 이 고민도 부끄러운 건 분석에 들인 시간에 비해 그 깊이가 얕다. 아잇 여러모로 많이 아쉽다. 더 많은 공부가 필요하다.
'📂 케이스 수집하기 > 프로덕트 수집' 카테고리의 다른 글
<서핏> 홈 피드를 분석해보자 (0) | 2022.06.22 |
---|---|
<알라미>를 린-분석 해보자 (0) | 2022.06.17 |
<비욘드> 랜딩페이지는 어떻게 구성되어있을까 (0) | 2022.06.10 |
<배달의 민족> 배민1과 배달 카테고리를 합해보자: 페이퍼 프로토타입편 (0) | 2022.06.03 |
UX 디자인의 대가, <토스> (0) | 2022.05.31 |