Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
잘 일하는 조직 만들기
Search
Seungmin 마량
February 04, 2022
Programming
94
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
잘 일하는 조직 만들기
2022년 2월 4일 NFT 뱅크에서 진행한 사내 조직문화 세미나의 발표자료 입니다. 실험과 테크스펙 문화에 대해 다루었습니다.
Seungmin 마량
February 04, 2022
More Decks by Seungmin 마량
See All by Seungmin 마량
혼자 바이브코딩으로 꾸준히 돈 벌기
maryang
0
62
AI로 서비스 만들어 1년 이상 수익 내는 방법
maryang
0
150
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
240
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
720
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
240
프론트엔드 개발자가 실제로 하는 일과 취업 준비 팁
maryang
0
130
나는 좋은 상사일까? 팀장은 꼭 봐야 할 리더십 공식
maryang
0
110
미국 교환학생 가서 무료 홈스테이 살면서 인턴 취업하기
maryang
0
200
글로벌 기업은 홈페이지에서 영어 번역을 어떻게 제공할까?
maryang
0
140
Other Decks in Programming
See All in Programming
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
4
620
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
新卒PdEのリアル
ryu1013
1
430
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
680
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
640
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
460
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
580
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
340
Deep dive into the select statement (GopherCon UK)
jespino
0
170
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
110
フロントエンドUIフレームワークのこれまでとこれから
ssssota
1
770
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
410
A Modern Web Designer's Workflow
chriscoyier
698
190k
The SEO Collaboration Effect
kristinabergwall1
1
550
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
680
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Music & Morning Musume
bryan
47
7.4k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Utilizing Notion as your number one productivity tool
mfonobong
4
580
Become a Pro
speakerdeck
PRO
31
6.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
How to make the Groovebox
asonas
2
2.4k
Transcript
थ ߛ࢟۞٘ UX Strategy Product Manager GDE Android Korea
[email protected]
ੜ ੌೞח ઑ ٜ݅ӝ
ח… ߛ࢟۞٘ UX Strategy Product Manager Google Developers Experts
Android Korea
ੜੌೞח䞾ۆ
ੜੌೞח䞾ۆ بݽܰѷযਃ
ੜੌೞח䞾ۆ ઁ҃উী䞵 ݻо䟉Ҋࢤпೞחߑ䢲ٜਸҕਬ
प పझಖ
01 प
ӝദ -> ٣ੋ -> ѐߊ ࢲ࠺झ ѐߊ ࢎ
ӝദ -> ٣ੋ -> ѐߊ ࢲ࠺झ ѐߊ ࢎ
ࢲ࠺झ ѐߊ ࢎ ӝഥ ߊҷ -> оࢸ ࢸ -> प
-> ؘఠ ࠙ࢳ -> Ѿ
ࢲ࠺झ ѐߊ ࢎ ӝഥ ߊҷ -> оࢸ ࢸ -> प
-> ؘఠ ࠙ࢳ -> Ѿ
ࢲ࠺झ ѐߊ… ӏݽо ח ࢲ࠺झח ޖ Ҋ ѐࢶ೧ঠ ೞח ঌӝ
য۵णפ. Ӓېࢲ ؘఠܳ ࠁҊ ੋࢎܳ য ӝദ ഛبܳ ֫ৈঠ פ. ӏݽо ח ࢲ࠺झח ݅ٚ ӝמ ࢎਊо ਗೞח Ѫੋ ঌӝ য۵णפ. Ӓېࢲ पਵ۽ ࢎਊ ೯زਸ ஏೞҊ ഛܫ ֫ Ѿਸ ೧ঠ פ. ӏݽо ח ઑ ইޖܻ о ҙ જইب ݽٚ Ѫਸ Ѿೡ ࣻ হणפ. Ӓېࢲ ࣁࠗ ب ഛೠ ࢎѾਸ ೡ ࣻ ب۾ प೧ঠ פ.
0CTFSWBCJMJUZ 'FBUVSF'MBH &YQFSJNFOU
Observability
ؘఠܳ যڌѱ ݽਸ ࣻ ਸө ӝഥ ߊҷ -> оࢸ ࢸ
-> प -> ؘఠ ࠙ࢳ -> Ѿ ۽Ӧ (߮ ѐߊ)
۽Ӧۆ ࢎਊ ೯زਸ ӝ۾ ۽Ӧ೧ঠ ࢎਊ ೯ز ࠙ࢳ оמ
ࢎਊ ೯زۆ ࢎਊо ࢲ࠺झীࢲ ೞח ݽٚ ೯ز ചݶز, ܼ, ߑޙ,
ਖ਼ઓ, Ѿઁ, ஶబஎ ࢤࢿ ١
ࢎਊ ೯زۆ ࢎਊо ࢲ࠺झীࢲ ೞח ݽٚ ೯ز ࢎਊ ೯زਸ ࠙ࢳ
оמೠ ഋక۽ ೞݶ, ߮
߮ ѐߊ ࢎ ߮ -> ٘ बӝ
߮ ೞӝ ߮ -> ٘ बӝ ஏೞ۰ח ࢎਊ ೯زਸ
߮ ҳࢿ ചݶ ೯ز ఋ߁ য٣ীࢲ ೯زೞחо যڃ ೯زਸ ೞחо
ઁ ۽Ӧਸ ೡ Ѫੋо ܴ ചݶ, ೯ز, ఋ߁ਸ ೞա ܴਵ۽ അ ࣘࢿ э ೯زযب ܳ ࣻ ח ࢎਊ / ߮ ࢚ടਸ അ
߮ द No, ചݶ ࢎਊ ೯زҗ ఋ߁ ܴ ࣘࢿܴ
/ ч 1 ചݶ ੑ enter__assets_home 2 - زӝച ࢿҕ success__sync_assets 3 ٘୶ୌ ࢚ಿ ܼ click__product_card ܴ: id / ч: ࢚ಿ ই٣ ч द: 3425, 1829 ܴ: company / ч: ӝҙ ܴ ч द: नೠ٘, Ҵ٘ 4 ݽٚ ചݶ জ द ನӒۄ٘ ചݶ 0ѐীࢲ 1ѐо غח द open_app ܴ: os ч द: android, ios, web
߮ ؘఠ ࣠ೞӝ ߮ -> ٘ बӝ ߮ ߊࢤ
द ؘఠ ࣠
߮ ؘఠܳ ऺח ۖಬ
binding.contactButton.setOnClickListener { view -> analyticsManager.logEvent(EventDefinitions.clickContactHouseDetail()) startActivity( Intent(Intent.ACTION_DIAL, Uri.parse("tel:${houseLiveData.value.contact}")) ) }
fun logEvent(event: EventDefinition) { firebaseAnalytics.logEvent(event.eventName, Bundle()) amplitude.logEvent(event.eventName) } ߮ ٘ बӝ
binding.contactButton.setOnClickListener { view -> analyticsManager.logEvent(EventDefinitions.clickContactHouseDetail()) startActivity( Intent(Intent.ACTION_DIAL, Uri.parse("tel:${houseLiveData.value.contact}")) ) }
fun logEvent(event: EventDefinition) { firebaseAnalytics.logEvent(event.eventName, Bundle()) amplitude.logEvent(event.eventName) } ߮ ٘ बӝ ߡౡ ܼ द ߮ ࣠
binding.contactButton.setOnClickListener { view -> analyticsManager.logEvent(EventDefinitions.clickContactHouseDetail()) startActivity( Intent(Intent.ACTION_DIAL, Uri.parse("tel:${houseLiveData.value.contact}")) ) }
fun logEvent(event: EventDefinition) { firebaseAnalytics.logEvent(event.eventName, Bundle()) amplitude.logEvent(event.eventName) } ߮ ٘ बӝ Firebase, Amplitudeী ߮ ࣠
߮ ؘఠ ࣻೞӝ ೠ ߮о ߊࢤೞݶ, ब ٘о زೞݶ, ߮
ؘఠо ऺੑפ Firebase
ݽٚ ࢎਊ ೯زਸ ஏೡ ࣻח হ যڃ ߮ ؘఠܳ ࣻೡө?
2о ߮۽ ࢎਊ ೯ز ࠗ࠙ਸ ঌ ࣻ णפ Enter Click
Enter ߮ যڌѱ ҳഅೡө Base ചݶ ېझী ߮ ٘ ੑ
ചݶ߹۽ ߮ ܴ ചݶ ੑ ߮
Enter ߮ ٘ class BaseActivity : Activity() { protected open
var enterEvent: EventDefinition? = null override fun onResume() { super.onResume() if (enterEvent != null) { analyticsManager.logEvent(enterEvent!!) } } } class UploadTypeActivity : BaseActivity() { override var enterEvent: EventDefinition? = EnterEventDefinitions.uploadType() } class HouseListActivity : BaseActivity() { override var enterEvent: EventDefinition? = EnterEventDefinitions.houseList() }
Enter ߮ ٘ class BaseActivity : Activity() { protected open
var enterEvent: EventDefinition? = null override fun onResume() { super.onResume() if (enterEvent != null) { analyticsManager.logEvent(enterEvent!!) } } } class UploadTypeActivity : BaseActivity() { override var enterEvent: EventDefinition? = EnterEventDefinitions.uploadType() } class HouseListActivity : BaseActivity() { override var enterEvent: EventDefinition? = EnterEventDefinitions.houseList() } ചݶੑ ࢤݺӝী ߮ ٘ ੑ
Enter ߮ ٘ class BaseActivity : Activity() { protected open
var enterEvent: EventDefinition? = null override fun onResume() { super.onResume() if (enterEvent != null) { analyticsManager.logEvent(enterEvent!!) } } } class UploadTypeActivity : BaseActivity() { override var enterEvent: EventDefinition? = EnterEventDefinitions.uploadType() } class HouseListActivity : BaseActivity() { override var enterEvent: EventDefinition? = EnterEventDefinitions.houseList() } ചݶ݃ ܴ
Click ߮ যڌѱ ҳഅೡө UI ஹನքܳ ־ܰח ߮ Click Listenerী
߮ ٘ ੑ
binding.contactButton.setOnClickListener { view -> analyticsManager.logEvent(EventDefinitions.clickContactHouseDetail()) startActivity( Intent(Intent.ACTION_DIAL, Uri.parse("tel:${houseLiveData.value.contact}")) ) }
Click ߮ ٘
binding.contactButton.setOnClickListener { view -> analyticsManager.logEvent(EventDefinitions.clickContactHouseDetail()) startActivity( Intent(Intent.ACTION_DIAL, Uri.parse("tel:${houseLiveData.value.contact}")) ) }
ߡౡ ܼ द ߮ ࣠ Click ߮ ٘
Active User(AU) ӝળ ߮ ࢲ࠺झ ೨ब ߮ ‘জਸ ࢎਊೞҊ ח
ਬ’ܳ ౸ױೡ ࣻ ח ೯زਸ ೧ঠ פ. ࢲ࠺झо ਃೞѱ ࢤпೞח ೨ब ࢎਊ ೯زਸ ೧ঠ פ. ࢲ࠺झ ਃ ܳ ೞח ߮ܳ ೧ঠ פ
Active User(AU) ӝળ ߮ द झېद ചݶਸ ੑೞݶ AU۽ ನೣೠ
۽Ӓੋ റ ക ചݶী ੑೞݶ AU۽ ನೣೠ যڃ ചݶٚ ನӒۄ٘۽ ৢۄয়ݶ AU۽ ನೣೠ
ࢲ࠺झ ೨ब ߮ द ழݠझ ࢲ࠺झ۽ Ѿઁ ೯زਸ ਃ ߮۽
ஏೠ SNS۽ ஶబஎ ࢤࢿ ೯زਸ ਃ ߮۽ ஏೠ ࠗز ѐ ࢲ࠺झ۽ ࠗز োۅ ೯زਸ ਃ ߮۽ ஏೠ
ࢸ҅ೞҊ ѐߊೞৈ ߮ ؘఠܳ ऺও ߮ ؘఠܳ ࠙ࢳ೧ࢲ ࢲ࠺झ ੋࢎܳ
যࠇद
߮ ߊࢤ ࣻܳ ࠁח AU ࠙ࢳ enter - DAU 10݅ݺ
, 3݅ݺ Ѥъ ചݶী ٜযৡ user property - Ѥъ ചݶী ٜযয়ח 3݅ݺ 2݅ݺ ѤъѨ োز غয click - Ѥъ ചݶী ٜযয়ח 3݅ݺ , 1ୌݺ ߡౡਸ ׂ۞ ѤъѨ োزਸ दبೠ
AU ର द
߮ ߊࢤ ࣻܳ ࠁח AU ࠙ࢳ enter - DAU 10݅ݺ
, 3݅ݺ Ѥъ ചݶী ٜযৡ user property - Ѥъ ചݶী ٜযয়ח 3݅ݺ 2݅ݺ ѤъѨ োز غয click - Ѥъ ചݶী ٜযয়ח 3݅ݺ , 1ୌݺ ߡౡਸ ׂ۞ ѤъѨ োزਸ दبೠ Ѥъ ӝמ ਬ 30%о ࠁҊ, Ӓ 66%о োزغয োزغয ঋ ࢎਊ 10%о োزਸ दبೠ
ౠ ೯ز റ ੌ दр ٍ جইয়ח ܻబ࣌ ࠙ࢳ
োزਸ दب೮؍ ࢎۈ दبೞ ঋও؍ ࢎۈࠁ (Click) 7ੌ ղ জਸ ߑޙೞח ࠺ਯ (open_app) 10% ֫
ܻబ࣌ ର द
ౠ ೯ز റ ੌ दр ٍ جইয়ח ܻబ࣌ ࠙ࢳ
োزਸ दب೮؍ ࢎۈ दبೞ ঋও؍ ࢎۈࠁ (Click) 7ੌ ղ জਸ ߑޙೞח ࠺ਯ (open_app) 10% ֫ োزਸ औѱ दبೡ ࣻ ب۾ ѐࢶ೧ঠѷ
ױ҅߹۽ ఎܫਸ ࠁח ഐ ࠙ࢳ ഥਗоੑਸ ਤ೧ Ѣঠೞח 3ѐ ചݶ
ࠄੋੋૐਸ ೞח 2ߣ૩ ചݶীࢲ ఎ ݆
ഐ ର द
ഥਗоੑਸ ਤ೧ Ѣঠೞח 3ѐ ചݶ ࠄੋੋૐਸ ೞח 2ߣ૩ ചݶীࢲ
ఎ ݆ ࠄੋੋૐਸ औѱ ೡ ࣻ ب۾ ѐࢶ೧ঠѷ ױ҅߹۽ ఎܫਸ ࠁח ഐ ࠙ࢳ
ӝמՙܻ ਃ ࠺Ү জ AU AUח
80%, о҅ࠗ AUח 60%, زର AUח 10% ֢റח AUо ծ ঋ݅, ܻబ࣌ ݽٚ ӝמ ઁੌ ծ
ӝמ ࠺Ү ର द
ӝמՙܻ ਃ ࠺Ү জ AU AUח
80%, о҅ࠗ AUח 60%, زର AUח 10% ֢റח AUо ծ ঋ݅, ܻబ࣌ ݽٚ ӝמ ઁੌ ծ زର৬ ֢റח ࢲ࠺झ ਃ ӝמ ইפ
Feature Flag
߸҃ਸ द ߈ ߸҃ ҳഅ թ ঋই ഐജࢿਸ Ҋ۰ೞ
ঋইب ؽ ਬোೠ ࢲ࠺झۆ
߸҃ਸ द ߈ ߸҃ ҳഅ թ ঋই ഐജࢿਸ Ҋ۰ೞ
ঋইب ؽ ݽ߄ੌ ਬোೞ ঋ
ਬোೠ ࢲߡ۽ࠗఠ чਸ ߉ই৬ ഝਊೞ ݽ߄ੌ ਬোೞѱ ٜ݅ӝ Feature Flag
ࢲߡ۽ࠗఠ чਸ ߉ই৬ ഝਊ ࢲߡীࢲ чਸ ߸҃ೞݶ ߄۽ ਊ Feature
Flagۆ
Firebase Remote Config Remote Configী чਸ ೞҊ জীࢲ ਗѺਵ۽ ࢎਊ
ӝמ on / off Feature Flag ഝਊب
private fun setContactButton() { if (RemoteConfig.getBoolean(ConfigVariable.MoveContactButtonBottomToFloating)) { binding.contactButton.visibility = View.GONE
binding.contactButtonFab.visibility = View.VISIBLE } else { binding.contactButton.visibility = View.VISIBLE binding.contactButtonFab.visibility = View.GONE } } Feature Flag۽ ӝמ ఃҊ Սӝ
private fun setContactButton() { if (RemoteConfig.getBoolean(ConfigVariable.MoveContactButtonBottomToFloating)) { binding.contactButton.visibility = View.GONE
binding.contactButtonFab.visibility = View.VISIBLE } else { binding.contactButton.visibility = View.VISIBLE binding.contactButtonFab.visibility = View.GONE } } Feature Flag۽ ӝמ ఃҊ Սӝ
Experiment
ࢲ࠺झ ޖ જҊ ѐࢶ ਃೠ ؘఠܳ ా೧ ण оמೠ ࢲ࠺झ
߮ܳ ੜ ѐߊ೧ࢲ Observabilityо ֫ ࢲ࠺झ
ӝמਸ ߓನೞ؊פ о ৢۋযਃ زदী ܲ ӝמب ߓನೞחؘ ޖ ܳ
ৢܽѦөਃ?
زदী ݆ Ѫ ߸҃غח ݽ߄ੌ ࢲ࠺झ ղ স ೱبܳ ঌ۰ݶ
प ਃ ղ স ೱبо ҾӘ೧ਃ
प স ೱبܳ Ѩૐ : https://blog.banksalad.com/tech
A/B పझ ܻо ܙ प ߑߨ Aܳ ߓನೞҊ ӝઓ ӝמҗ
࠺Ү A,Bܳ ೣԋ ߓನೞҊ ࠺Ү
A/B పझ : https://blog.banksalad.com/tech
ࢎਊ Ӓܛ ա־ӝ Ӓܛ߹۽ ӝמਸ ܰѱ ҳഅ Ӓܛ߹۽ ؘఠܳ ࠙ࢳ
স ೱبܳ ഛ ঌӝਤೠ प ҳഅ
पਸ ҙܻೞח प ۖಬ
ࢎਊ Ӓܛ ա־ӝ Ӓܛ߹۽ ӝמਸ ܰѱ ҳഅ Ӓܛ߹۽ ؘఠܳ ࠙ࢳ
স ೱبܳ ഛ ঌӝਤೠ प ҳഅ
ઑҵ vs पҵ (Control vs Treatment) ࢎਊ Ӓܛ ա־ӝ
ઑҵ, पҵ ա־ӝ যڃ ઑѤਵ۽ ա־חо ݻݺঀ ա־חо
प ࢚ ےؒ যڃ ઑѤਵ۽ ա־חо
ࢎਊ ݻ%ܳ प ࢚ਸ ೡ Ѫੋо ݻݺঀ ա־חо
प ࢚ 50%о पҵ ݻݺঀ ա־חо ࢎਊ 100%
50%о पҵ ࢎਊ 50% 25%о पҵ
Firebaseীࢲ ࢎਊ Ӓܛ ա־ӝ
ࢎਊ Ӓܛ ա־ӝ Ӓܛ߹۽ ӝמਸ ܰѱ ҳഅ Ӓܛ߹۽ ؘఠܳ ࠙ࢳ
স ೱبܳ ഛ ঌӝਤೠ प ҳഅ
Feature Flagী ٮۄ ӝמ ࠙ӝೞҊ ߮ ѐߊ Ӓܛ߹۽ ӝמਸ ܰѱ
ҳഅ
Firebaseীࢲ प Feature Flag ٜ݅ӝ
private fun setContactButton() { if (RemoteConfig.getBoolean(ConfigVariable.MoveContactButtonBottomToFloating)) { binding.contactButton.visibility = View.GONE
binding.contactButtonFab.visibility = View.VISIBLE } else { binding.contactButton.visibility = View.VISIBLE binding.contactButtonFab.visibility = View.GONE } } Feature Flagী ٮۄ ӝמ ࠙ӝ
private fun setContactButton() { if (RemoteConfig.getBoolean(ConfigVariable.MoveContactButtonBottomToFloating)) { binding.contactButton.visibility = View.GONE
binding.contactButtonFab.visibility = View.VISIBLE } else { binding.contactButton.visibility = View.VISIBLE binding.contactButtonFab.visibility = View.GONE } } Feature Flagী ٮۄ ӝמ ࠙ӝ
Feature Flagী ٮۄ ߮ ѐߊ binding.contactButton.setOnClickListener { view -> analyticsManager.logEvent(EventDefinitions.clickContactHouseDetail())
startActivity( Intent(Intent.ACTION_DIAL, Uri.parse("tel:${contact}")) ) } binding.contactButtonFab.setOnClickListener { view -> analyticsManager.logEvent(EventDefinitions.clickContactHouseDetail()) startActivity( Intent(Intent.ACTION_DIAL, Uri.parse("tel:${contact}")) ) }
Feature Flagী ٮۄ ߮ ѐߊ binding.contactButton.setOnClickListener { view -> analyticsManager.logEvent(EventDefinitions.clickContactHouseDetail())
startActivity( Intent(Intent.ACTION_DIAL, Uri.parse("tel:${contact}")) ) } binding.contactButtonFab.setOnClickListener { view -> analyticsManager.logEvent(EventDefinitions.clickContactHouseDetail()) startActivity( Intent(Intent.ACTION_DIAL, Uri.parse("tel:${contact}")) ) } ೞա पীࢲ ࠙ӝغח ܲ ӝמٜীࢲ э ߮ܳ ࣠
ࢎਊ Ӓܛ ա־ӝ Ӓܛ߹۽ ӝמਸ ܰѱ ҳഅ Ӓܛ߹۽ ؘఠܳ ࠙ࢳ
স ೱبܳ ഛ ঌӝਤೠ प ҳഅ
Feature Flagী ٮۄ ߮ ؘఠ ࠙ࢳ Ӓܛ߹۽ ؘఠܳ ࠙ࢳ
݆ ߮ ؘఠ ޖਸ ࠺Үೡө प оࢸী ೞח Primary
Metric ೞա ܳ ࠺Ү Second Metric ଵҊ
प оࢸҗ Metric द оࢸ ಹद о҅ࠗ ࢸ ޙҳܳ ߸҃ೞ
ݶ, ࢸ ৮ܐࣻо ֫ই Ѫ. оࢸ ୶ୌచ ࢚ױ ߓցܳ ઁೞݶ ࢚ಿ ࣂ࣌ ਤ۽ ৢۄ৬, ࢚ಿ ܼࣻо ֫ই Ѫ. Primary Metric ࢸ ৮ܐ ࣻ Second Metric ࢸ ചݶ ߑޙ ࣻ Primary Metric ݽٚ ࢚ಿ ܼ ࣻ Second Metric ୶ୌచ ߑޙ ࣻ ٘, ࠁ, ١ п ࢚ಿٜ ܼ ࣻ प ࢸ҅ ױ҅ীࢲ оࢸҗ Metric
Firebaseীࢲ Primary Metric ١۾
Ӓܛ߹۽ ؘఠܳ ࠺Ү : https://blog.banksalad.com/tech
A/B పझ पۆ Aܳ ߓನೞҊ ӝઓ ӝמҗ ࠺Ү A,Bܳ ೣԋ
ߓನೞҊ ࠺Ү
Feature Flag + Observability ݽ߄ੌ ѐߊ ҙীࢲ पۆ
ܻ
ࢲ࠺झ ѐߊ ࢎ ӝഥ ߊҷ -> оࢸ ࢸ -> प
-> ؘఠ ࠙ࢳ -> Ѿ
ࢲ࠺झ ѐߊ ࢎ ӝഥ ߊҷ -> оࢸ ࢸ -> प
-> ؘఠ ࠙ࢳ -> Ѿ
ࢲ࠺झ ѐߊ… ӏݽо ח ࢲ࠺झח ޖ Ҋ ѐࢶ೧ঠ ೞח ঌӝ
য۵णפ. Ӓېࢲ ؘఠܳ ࠁҊ ੋࢎܳ য ӝദ ഛبܳ ֫ৈঠ פ. ӏݽо ח ࢲ࠺झח ݅ٚ ӝמ ࢎਊо ਗೞח Ѫੋ ঌӝ য۵णפ. Ӓېࢲ पਵ۽ ࢎਊ ೯زਸ ஏೞҊ ഛܫ ֫ Ѿਸ ೧ঠ פ. ӏݽо ח ઑ ইޖܻ о ҙ જইب ݽٚ Ѫਸ Ѿೡ ࣻ হणפ. Ӓېࢲ ࣁࠗ ب ഛೠ ࢎѾਸ ೡ ࣻ ب۾ प೧ঠ פ.
02 పझಖ
None
📝 ٬ೞӝীޙࢲܳࢿೞ䞶ਃ
ޙࢲ䤠ೡ ࠂبࢎ䥅ઁয 👫 )JTUPSZ 📖
None
ݽٚসޖীޙࢲоਵݶ ݽٚۄੋߓ҃ਸ୶ೡࣻ $PEF13+JSB5JDLFUޙࢲ
$PEF13+JSB5JDLFUޙࢲ
ޙࢲ䤠ೡ ࠂبࢎ䥅ઁয 👫 )JTUPSZ 📖
য䡣সޖੋо ਃড ৵ೞחо ߓ҃ য䡣䟽җܳ߄ۄࠁחо
ݾ ޖਸҊ۰ೞঋਸѪੋо ݾоইצѪ যڌѱӝࣿࢸ҅ܳೡѪੋо ҅ദ زܐܻ࠭
None
٬ࠗ࠙ ޙࢲী䞵ա
None
ӝദӝࣿࢸ҅࠼ਸ ܻח
ޙܳాೠ ഛपೠӝ۾ ࠺زӝழޭפா࣌ ழޭפா࣌࠺ਊх
ޙࢲ۽झషܻܳऺҊ ࠂبܳઁযೞ䞶ਃ
03 ݃ޖܻ
पਵ۽সоܳ 䟤ҙਵ۽ૐݺೞ䞶ਃ
ޙࢲ۽झషܻܳऺҊ ࠂبܳઁযೞ䞶ਃ
थ ߛ࢟۞٘ UX Strategy Product Manager GDE Android Korea
[email protected]
хࢎפ