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
0
78
잘 일하는 조직 만들기
2022년 2월 4일 NFT 뱅크에서 진행한 사내 조직문화 세미나의 발표자료 입니다. 실험과 테크스펙 문화에 대해 다루었습니다.
Seungmin 마량
February 04, 2022
Tweet
Share
More Decks by Seungmin 마량
See All by Seungmin 마량
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
180
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
670
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
200
프론트엔드 개발자가 실제로 하는 일과 취업 준비 팁
maryang
0
79
나는 좋은 상사일까? 팀장은 꼭 봐야 할 리더십 공식
maryang
0
80
미국 교환학생 가서 무료 홈스테이 살면서 인턴 취업하기
maryang
0
160
글로벌 기업은 홈페이지에서 영어 번역을 어떻게 제공할까?
maryang
0
110
30살에 구글이 인정한 개발자가 될 수 있었던 공부법
maryang
0
220
좋은 서비스를 만들기 위한 제품팀 문화 이해하기
maryang
0
94
Other Decks in Programming
See All in Programming
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
420
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
240
技術検証結果の整理と解析をAIに任せよう!
keisukeikeda
0
130
Ruby and LLM Ecosystem 2nd
koic
1
1k
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
190
The free-lunch guide to idea circularity
hollycummins
0
270
SourceGeneratorのマーカー属性問題について
htkym
0
200
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
280
[SF Ruby Feb'26] The Silicon Heel
palkan
0
110
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
270
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
210
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
740
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Balancing Empowerment & Direction
lara
5
950
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
[SF Ruby Conf 2025] Rails X
palkan
2
840
Exploring anti-patterns in Rails
aemeredith
2
290
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
180
Are puppies a ranking factor?
jonoalderson
1
3.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.5k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
220
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]
хࢎפ