SlideShare une entreprise Scribd logo
1  sur  36
저장하고 쌓이기만 하는 아티클을
잘 읽고 관리하는 시스템
허규영(@bbvch13531)
발표 내용 소개
매일 많은 글을 보고 나중에 읽기 위해 저장하지만
저장만 하고 다시 읽지 않게 됩니다.
결국 읽지 않은 아티클이 쌓여만 가는데요.
이 문제를 해결하기 위한 저만의 방법을 소개합니다.
Preview
함수형 프로그래밍을 더 잘 하고 싶은 iOS 개발자.
가장 좋아하는 위스키는 아란 쉐리 CS
• 문제의식: 만들게 된 이유
• 해결하고 싶은 두 개의 목표
• 앱 소개
• 해결방법
• Challenge
• Work
fl
ow
• 개인적인 글 추천
• 결론
목차
Contents
어떤 채널에서 아티클을 처음 보게 되나요?
• RSS Feed
• Newsletters(Geek News, iOS Weekly)
• HackerNews
• 트위터
• 슬랙/디스코드/카톡
어디에 저장하시나요?
• Safari Read Later
• 북마크
• 노션
• Pocket
• Evernote
• 카카오톡 나에게 보내기
첫번째 문제의식
• 읽을 만한 글을 발견한 즉시 읽는 경우는 드물다.
• 나중에 다시 읽기 위해 어딘가에 저장한다.
• 그리고 다시 읽지 않는다.
• 읽을 만한 글을 발견한 즉시 읽는다고 해도
• 일부 내용을 다시 읽기 위해 찾으려고 검색하지만
• 찾지 못한다.
두번째 문제의식
해결하고 싶은 두 개의 목표
• 나중에 읽기 위해 저장한 글을 다시 읽는다.
• 읽을 만한 글을 나중에 다시 찾기 쉽게 만든다.
초기버전
• Shell에 로그인할 때마다 랜덤한 글 3개를 추천하는 shell script
• 링크는 text
fi
le로 관리
• 하루에 적어도 한 번은 터미널을 열게되는 상황에서 아주 효과적이었음
Make it work, make it right, make it fast
Kent Beck
wiki: https://wiki.c2.com/?MakeItWorkMakeItRightMakeItFast
Make it work, make it right, make it fast, make it better
Cerchi
구현
아티클을 저장하는
아티클을 추천하는
아티클을 읽고 평가하는
Share Extension
Widget
iOS App
􀭞
Main App Share Extension Widget
문제의식
• 첫번째 문제의식: 다시 읽지 않는다.
• 두번째 문제의식: 나중에 찾지 못한다.
• 첫번째 문제의식: 다시 읽지 않는다.
• 두번째 문제의식: 나중에 찾지 못한다.
하루에 한 번, 랜덤하게 노출시킨다.
점수를 매겨서 저장한다.
해결방법
유저들은 하루에 평균 90번 이상 iOS의 홈 스크린을 보게 됩니다.
Over 90 times a day.
WWDC 2020: Meet WidgetKit
첫 번째 해결방법: Widget
Spaced Repetition을 이용
에빙하우스의 망각 곡선
첫 번째 해결방법: Widget
iOS Widget
􀭞
Home Screen을 활용하고
눈에 잘 띄는 곳에 노출하기 위해
Widget을 이용
iOS Widget
Timeline에 따라서 하루에 한 번 랜덤한 글을 보여줌
Day 1 Day 2 Day 3
New Article New Article New Article
Refresh Refresh
Widget을 추가
두 번째 해결방법
• 시간이 지남에 따라 중요한 글만 남길 수 있게
• 점수를 매기고 Sort
• latest, oldest, highest Score
iOS Share Extension
링크를 저장할 때 접근성을 높이기 위함
Components
Cerchi App Cerchi
Main App
Share
Extension
Widget
Service Recommender
Local DataSource
Core Module
􀈂􀭞
Share Widget
iOS App
CoreData
Challenges
• SwiftUI + TCA
• Interprocess debugging
• App Sanbox
I LOVE TCA But I HATE TCA
Sandbox Policy
• Data Access Restriction
• Share data only within sandbox boundary
• Access data only through
CoreData: Local Disk
iCloud: Remote Storage
Cerchi App
􀈂􀭞
Share
Widget
iOS App
CoreData
Work
fl
ow
• 아티클을 발견한다.
• 아티클을 저장한다.
• Widget으로 랜덤하게 추천받는다.
• 아티클을 읽는다.
• 아티클을 평가한다.
• 정리한다.
You and Your Research
Richard. W. Hamming, 이광근
개인적인 글 추천
Cargo Cult Science
Richard. P. Feynman
Patterns Enhance Craft
Kent Beck
기술 업계의 독성 말투 문제, 고칩시다!
April Wensel, Edward Kim
탐색과 활용
결론
Conclusion
Max Value
Exploration (탐색)
Exploitation (활용)
time
진짜 결론
Conclusion
저장하고 쌓이기만 하는 아티클을
잘 읽고 관리하는 시스템
진짜 결론
Conclusion
저장하고 쌓이기만 하는 아티클을
잘 읽고 관리하는 시스템
어떻게 읽을 것인가?
진짜 결론
Conclusion
왜 아티클을 읽으려고 하는가?
어떻게 활용할 것인가?
저장하고 쌓이기만 하는 아티클을
잘 읽고 관리하는 시스템
어떻게 읽을 것인가?
허규영(@bbvch13531)
질문과 답변
Cerchi
Questions
• 인상깊게 읽은 글 중 추천할만한 글이 있나요?
• 본인만의 시스템이나 work
fl
ow를 소개해줄 수 있나요?
• 앱에 어떤 기능을 더 추가하면 좋을까요?
• 이 앱은 어떤 비즈니스 모델을 만들어야 할까요?
• 아란 쉐리 CS를 좋아하는 사람에게 추천할 위스키가 있을까요?
Appendix

Contenu connexe

Similaire à 저장하고 쌓이기만 하는 아티클을 잘 읽고 관리하는 시스템 by 허규영

(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
Jeongsang Baek
 
track2 01. 서버리스 아키텍처 소셜미디어 개발기인데요. React를 썼어요/ 삼성SDS, 도경태 & 양선호
track2 01. 서버리스 아키텍처 소셜미디어 개발기인데요. React를 썼어요/ 삼성SDS, 도경태 & 양선호 track2 01. 서버리스 아키텍처 소셜미디어 개발기인데요. React를 썼어요/ 삼성SDS, 도경태 & 양선호
track2 01. 서버리스 아키텍처 소셜미디어 개발기인데요. React를 썼어요/ 삼성SDS, 도경태 & 양선호
양 한빛
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
devCAT Studio, NEXON
 
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
Sewon Ann
 
Game programming patterns 2
Game programming patterns 2Game programming patterns 2
Game programming patterns 2
QooJuice
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
NAVER D2
 

Similaire à 저장하고 쌓이기만 하는 아티클을 잘 읽고 관리하는 시스템 by 허규영 (20)

(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
 
track2 01. 서버리스 아키텍처 소셜미디어 개발기인데요. React를 썼어요/ 삼성SDS, 도경태 & 양선호
track2 01. 서버리스 아키텍처 소셜미디어 개발기인데요. React를 썼어요/ 삼성SDS, 도경태 & 양선호 track2 01. 서버리스 아키텍처 소셜미디어 개발기인데요. React를 썼어요/ 삼성SDS, 도경태 & 양선호
track2 01. 서버리스 아키텍처 소셜미디어 개발기인데요. React를 썼어요/ 삼성SDS, 도경태 & 양선호
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
 
12books
12books12books
12books
 
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)
 
iCloud 튜토리얼(2013.6 스마트앱개발자포럼 발표)
iCloud 튜토리얼(2013.6 스마트앱개발자포럼 발표)iCloud 튜토리얼(2013.6 스마트앱개발자포럼 발표)
iCloud 튜토리얼(2013.6 스마트앱개발자포럼 발표)
 
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
 
R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁
R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁
R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁
 
서버리스(Serverless)를 위한 Zombie Microservices Workshop 실습 가이드 :: 윤석찬 (AWS 테크에반젤...
서버리스(Serverless)를 위한 Zombie Microservices Workshop 실습  가이드 ::  윤석찬 (AWS 테크에반젤...서버리스(Serverless)를 위한 Zombie Microservices Workshop 실습  가이드 ::  윤석찬 (AWS 테크에반젤...
서버리스(Serverless)를 위한 Zombie Microservices Workshop 실습 가이드 :: 윤석찬 (AWS 테크에반젤...
 
React native development
React native developmentReact native development
React native development
 
Game programming patterns 2
Game programming patterns 2Game programming patterns 2
Game programming patterns 2
 
블로터 특강 - 워드프레스 잘 쓰고 계신가요?
블로터 특강 - 워드프레스 잘 쓰고 계신가요?블로터 특강 - 워드프레스 잘 쓰고 계신가요?
블로터 특강 - 워드프레스 잘 쓰고 계신가요?
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]
 
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
스마일게이트 서버개발캠프 - HGHSS - 합격하소서스마일게이트 서버개발캠프 - HGHSS - 합격하소서
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
 
Podium - Private SNS for developer
Podium - Private SNS for developerPodium - Private SNS for developer
Podium - Private SNS for developer
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 

Plus de Excelcon

Plus de Excelcon (6)

사이드 프로젝트 빠르게 시작하기 by 제이제이
사이드 프로젝트 빠르게 시작하기 by 제이제이사이드 프로젝트 빠르게 시작하기 by 제이제이
사이드 프로젝트 빠르게 시작하기 by 제이제이
 
Git 커멘드와 있으면 편리한 Alias/Funciton by KangDroid
Git 커멘드와 있으면 편리한 Alias/Funciton by KangDroidGit 커멘드와 있으면 편리한 Alias/Funciton by KangDroid
Git 커멘드와 있으면 편리한 Alias/Funciton by KangDroid
 
주니어가 회사에서 기회를 얻는 방법 by 1호
주니어가 회사에서 기회를 얻는 방법 by 1호주니어가 회사에서 기회를 얻는 방법 by 1호
주니어가 회사에서 기회를 얻는 방법 by 1호
 
'다꾸장인' 개발자의 '다꾸' 하는 법 by 뚜루리
'다꾸장인' 개발자의 '다꾸' 하는 법 by 뚜루리'다꾸장인' 개발자의 '다꾸' 하는 법 by 뚜루리
'다꾸장인' 개발자의 '다꾸' 하는 법 by 뚜루리
 
Neovim으로 생산성 퀀텀점프하기 by 이재열
Neovim으로 생산성 퀀텀점프하기 by 이재열Neovim으로 생산성 퀀텀점프하기 by 이재열
Neovim으로 생산성 퀀텀점프하기 by 이재열
 
프론트엔드 개발자가 1년 동안 쌓아온 꿀팁 소문 내기 by 헬리아
프론트엔드 개발자가 1년 동안 쌓아온 꿀팁 소문 내기 by 헬리아프론트엔드 개발자가 1년 동안 쌓아온 꿀팁 소문 내기 by 헬리아
프론트엔드 개발자가 1년 동안 쌓아온 꿀팁 소문 내기 by 헬리아
 

저장하고 쌓이기만 하는 아티클을 잘 읽고 관리하는 시스템 by 허규영