koncierge๐::๋ฆฌ๋ฒ ๋ฆฌ์ ๊ณ ๋ฆฌ๋๊ธ ๊ทธ๋ฃน
ํธ๋ผ์คํํ
En donde estoy trabajando, cada nuevo feature o idea, A/B ํ ์คํธ ํ๋ก๊ทธ๋จ.
๋ ธ๋จผํธ ํธํ
X
๋
, ๋ฐ๋ ํ์ฒด์ ์น๊ตฌ Y
๋
์
๋๋ค."Poblaciรณn์ ์ง๋ถ ์ค ํ ๋ถ์๊ฐ ์๋น์ค ์ ๊ณต์ ์ฑ ์์ง๋ค.์ด๊ฒ์ ์๋น์ค์ ์ธ ์กฐ์ง์ผ๋ก ์ผ์์ํ์ ๊ฐ ๋ถ๋ถ์ ์ ๋ณด ๊ต๋ฅ๋ฅผ ์ฑ ์์ง๋ค.
์ฝ๋ชจ ์ ๋ณด
El usuario
123
es de Madrid
para que luego, cuando queramos segmentar, podrรญamos segmentar solo usuarios de Madrid.
Este servicio externo, adicionalmente, solo nos provee acceso a las Varians(์ผ๋ฐ์ ์ผ๋ก ์ธ๊ทธ๋จผํธ, ์ ์ด ๋ถ๋ถ, ์ฐธ์ฌ ๋ถ๋ถ) mediante un SDK para usar en mรณviles(iOS y Android).
์ด๋ ค์ ์์:
๋ฌธ์ .
์ด๊ฒ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋จ๋ฝ ์ ๋ณด์ ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ ์์ ์ธ ์ธ๋ถ ์์ฅ, ์ ๋ณด ๋ง์ดํฌ๋ก ์๋น์ค ์ปจ์คํ ํ์ฌ ํฌํจ;๋ค, ์ ์น๊ตฌ๋ค์ ๋๋ค.
์ด๊ฒ์ ์๋ก์ด ์ ๋ณด ์๋๋ค.
๋น์ ์ ์ทจ๋ฏธ:
Como evitar que este micro-servicio crezca cada vez introduzcamos un nuevo micro-servicio que almacene alguna informaciรณn del usuario?
์๋ฅผ ๋ค์ด ์ฐ๋ฆฌ๋ ์ฑ ์์์ ์กฐ์ฉํ ๋ง์ดํฌ๋ก ์๋น์ค ์์์ด ํ์ํ๋ค.๋ด๊ฐ ๋์๊ฒ ๋งํ๊ณ ์ ํ๋ ๊ฒ์:
Dado el usuario
123
, de Madrid; a quรฉ variante pertenece?
๋๋ถ๋ถ์ ๊ฒฝ์ฐ, ๊ทธ๋ค์ ์คํ์ ํ์ํ ์๋์ง๋ฅผ ๋๋์ผ๋ก ์๋ชจํ๊ณ , ์คํ์ ์งํํ์ฌ, ๋ ๋ง์ ์คํ์ ํ์ํ ์๋์ง๋ฅผ ์ป๊ณ , ์ปดํจํฐ์ ํ์ํ ์๋์ง๋ฅผ ํ์ฑํ๋ฉฐ, ์ ๋ขฐํ ํ์๊ฐ ์๋ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ์ ๊ณตํด์ผ ํ๋ค.
DSL(ํน์ ์์ญ ์ธ์ด-๋๋ฏธ๋์ด)
๋ง์ดํฌ๋ก ์๋น์ค์ ๊ตฌ์ฑ ๋ถ๋ถ์์ ์๋ก์ด ๋ถ์๋ ์๋ก์ด ๋ถ์์ด๋ค. ์ด ๋ถ์๋
Mongo
๋
ํ๋ก์ ํธ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด ํ๋ก์ ํธ๋ ํ์์ ํฅ๋ฏธ๊ฐ ์๋ ๋ถ์์ด๋ค.์ฝ๋ชจ ์ง๋ถ์ ์ด์ฒด์ ํ์:
Quiero que solo participen del experimento
EXP001
, usuarios quienes sean de Madrid. De estos, la mitad estarรกn en el grupo departicipando
y el esto encontrol
.
์ ๋ transformariaen์ ๋๋ค.
{ "EXP001": { "ubicaciรณn": "Madrid", "$children": { "participando": { "$rand": { "$gt": 0.5 } }, "control": {} } } }
Playground
deesta manera, deberia proveer ๋ง์ดํฌ๋ก ์๋น์ค ํ์ฌ, al menos, la informaciรณn De la
"ubicaciรณn"
del usuario.๋ถ๊ฐ๋ฅํ ์์ฌ๊ด:
{
"ubicaciรณn": "Madrid",
"userId": 5
}
El micro servicio deberรญa responder que pertence al EXP001
(dado que la ubicaciรณn empareja con la definiciรณn),y podrรญa pertenecer a la variante participando
o control
.์ผ๋ฐ์ ์ผ๋ก 50%-50% ์ฌ์ด์ ๋ถํฌํ๋ค.๋ด์ฅ ๋ณดํธํ ์ฌ์ฉ๋ฅ ์ 50%, ๊ตฐ๋ณต ๋ฐฐํฌ์ผํฐ๋ 0.1(์ฝ๋ชจ์ฆ
$rand
), ํด์์์ฅ์ 0.5๋ค.์ด๋ ์ ์ผ๋ก ๋ณด๋ฉด ์ ์ํ ์ฒด๊ณ์ ๊ธฐ์ด ๊ตฌ์กฐ์์ ๋ฏธ์์ ์๋น์ค๋ ์ด๋ ํ ๊ตฌ์๋ ๋ฐ์ง ์๋๋ค.๋ด๊ฐ ๋ณด๊ธฐ์ ์ด๊ฒ์ ์์ ๋ก์ด ์ธ๊ณ์ด๋ค.์ด๊ฒ์ ์์ฃผ ์ข์ ์๋ค.
koncierge๐
La librerรญa estรกen GitHub/jazcarate/koncierge
ํ์ง ์ฌ์ง์ Nicolas Cool์์ Unsplash์ผ๋ก ๋ฐ์ก
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(koncierge๐::๋ฆฌ๋ฒ ๋ฆฌ์ ๊ณ ๋ฆฌ๋๊ธ ๊ทธ๋ฃน), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/florius/koncierge-una-libreria-para-segmentar-usuarios-fjpํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค