|
|
|
RxJava Essentials : RxÀÚ¹Ù·Î ¹è¿ì´Â ¸®¾×Ƽºê ÇÁ·Î±×·¡¹Ö
|
|
|
acorn PACKT1
¤Ó ÀÌ¹Ý ¸ð¸£Áú·Î, °°æ±¸
¤Ó
¿¡ÀÌÄÜÃâÆÇ
¤Ó
RxJava Essentials
|
|
|
|
- Á¦ÈÞ¸ô ÁÖ¹® ½Ã °í°´º¸»ó, ÀϺΠÀ̺¥Æ® Âü¿© ¹× ÁõÁ¤Ç° ÁõÁ¤, ÇÏ·ç/´çÀÏ ¹è¼Û¿¡¼ Á¦¿ÜµÇ¹Ç·Î Âü°í ¹Ù¶ø´Ï´Ù.
-
-
-
RxÀÚ¹Ù´Â ºñµ¿±â ó¸®¿Í À̺¥Æ® ±â¹ÝÀÇ ÇÁ·Î±×·¡¹ÖÀ» À§ÇÑ ¸®¾×Ƽºê ÀͽºÅÙ¼Ç(Reactive Extension)ÀÇ JVM ¹öÀüÀÌ´Ù. ÀÌ Ã¥Àº RxÀÚ¹Ù¸¦ ¹è¿ì¸é¼ ¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ®¿¡ ºü¸£°Ô Àû¿ëÇÏ°í ½ÍÀº µ¶ÀÚ¸¦ À§ÇØ ¾²¿©Á³´Ù. RxÀÚ¹ÙÀÇ ±â´ÉÀ» Rx¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ ¼³¸íÇÔÀ¸·Î½á RxÀÚ¹Ù¿Í Rx¾Èµå·ÎÀ̵åÀÇ ±â´ÉÀ» ºü¸£°Ô ½ÀµæÇÒ ¼ö ÀÖ´Ù. RxÀÚ¹Ù¸¦ °æÇèÇÏ°í ½ÍÀº °³¹ßÀÚ¿¡°Ô ÁÁÀº ±æÀâÀÌ°¡ µÇ¾îÁÙ °ÍÀÌ´Ù.¡ºRxJava Essentials¡»Àº RxÀÚ¹Ù¸¦ ¹è¿ì¸é¼ ¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ®¿¡ ºü¸£°Ô Àû¿ëÇÏ°í ½ÍÀº µ¶ÀÚ¸¦ À§ÇØ ¾²¿©Á³´Ù. RxÀÚ¹ÙÀÇ ±â´ÉÀ» Rx¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ ¼³¸íÇÔÀ¸·Î½á RxÀÚ¹Ù¿Í Rx¾Èµå·ÎÀ̵åÀÇ ±â´ÉÀ» ºü¸£°Ô ½ÀµæÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºµÇ¾î ÀÖ´Ù.
-
-
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á ¿ÉÀú¹ö(Observer) ÆÐÅÏÀ» ¸¶½ºÅÍÇÏ°í ¿ÉÀú¹öºí(Observable) °´Ã¼¿Í ½ÃÄö½º »ý¼º ¡á °´Ã¼ ¸®½ºÆ®¸¦ ¿ÉÀú¹öºí ½ÃÄö½º·Î º¯È¯ ¡á ±âÁ¸ÀÇ ¸Þ¼Òµå¸¦ ¸®¾×Ƽºê ºñµ¿±â ÇÔ¼ö·Î Àüȯ ¡á ÇÊ¿äÇÑ °ª¸¸ ÇÔ¼ö·Î ¿Àµµ·Ï ¿ÉÀú¹öºí ½ÃÄö½º ÇÊÅ͸µ ¡á ¿ÉÀú¹öºí ½ÃÄö½º¸¦ »õ·Î¿î ½ÃÄö½º·Î º¯È¯Çϰųª Á¶ÀÛÇÏ´Â ¹æ¹ý ¡á »õ·Î¿î ½ÃÄö½º¸¦ ¸¸µé±â À§ÇØ ¿ÉÀú¹öºíÀ» °áÇÕ, º´ÇÕ, ¿¬°á ¡á ½ºÄÉÁÙ·¯¸¦ ÀÌ¿ëÇÑ ¼Õ½¬¿î ¸ÖƼ½º·¹µù, µ¿½Ã¼º ±â¹ýÀ» ¹è¿ì±â À§ÇÑ ¾Èµå·ÎÀÌµå ¸ÞÀÎ ½º·¹µå¿Í ºñµ¿±â ŽºÅ© ¹èÁ¦ ¡á ·¹Æ®·ÎÇÍ(Retrofit) ¿ÉÀú¹öºí ÀÀ´äÀ» ÀÌ¿ëÇØ ¿ø°Ý REST API¿Í Åë½Å ¡á RxÀÚ¹Ù ±â¹ÝÀÇ Ã¹ ¾Èµå·ÎÀÌµå ¾Û Á¦ÀÛ
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
ÀÚ¹Ù °³¹ß °æÇèÀÌ ÀÖ´Â µ¶ÀÚ¶ó¸é ¸®¾×Ƽºê ÇÁ·Î±×·¡¹ÖÀº ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ º¯°æÇϵµ·Ï °¿äÇÏÁö ¾ÊÀ¸¸é¼µµ ¹é¿£µå ½Ã½ºÅÛ¿¡¼ È®À强°ú µ¿½Ã¼ºÀ» ´Ù·ç´Â »õ·Î¿î ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ÀÌ Ã¥Àº RxÀÚ¹ÙÀÇ ÇÙ½ÉÀ» ¹è¿ö ¾Èµå·ÎÀ̵å Ç÷§ÆûÀÇ ÇѰ踦 ±Øº¹ÇÏ°í, À̺¥Æ® ±â¹ÝÀÇ ¸®¾×ƼºêÀûÀÌ¸é¼ ¸Å²ô·´°Ô µ¿ÀÛÇÏ´Â ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â µ¥ µµ¿òÀ» ÁÙ °ÍÀÌ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, 'RX: ´å³Ý¿¡¼ RxÀÚ¹Ù±îÁö'´Â ¸®¾×Ƽºê ¼¼°è·Î °¡´Â ù ¹ø° ´Ü°è´Ù. ¸®¾×ƼºêÀûÀÎ Á¢±Ù¹ý°ú °íÀüÀûÀÎ Á¢±Ù¹ýÀ» ¼·Î ºñ±³ÇÏ¸é¼ ÀÌµé °£ÀÇ À¯»çÁ¡°ú Â÷ÀÌÁ¡À» ¾Ë¾Æº»´Ù.
2Àå, '¿Ö ¿ÉÀú¹öºíÀΰ¡?'´Â ¿ÉÀú¹ö ÆÐÅÏÀ» »ìÆ캸°í, RxÀÚ¹Ù°¡ À̸¦ ¾î¶»°Ô ±¸ÇöÇÏ°í È®ÀåÇß´ÂÁö, ¶Ç ¿ÉÀú¹öºíÀ̶õ ¹«¾ùÀ̸ç ÀÌÅÍ·¯ºí(Iterable)°ú´Â ¾î¶² °ü·ÃÀÌ ÀÖ´ÂÁö »ìÆ캻´Ù.
3Àå, 'Çï·Î ¸®¾×Ƽºê ¿ùµå'´Â Áö±Ý±îÁö ¹è¿î ³»¿ëÀ» ¹ÙÅÁÀ¸·Î ù ¹ø° ¸®¾×Ƽºê ¾Èµå·ÎÀÌµå ¾ÛÀ» ¸¸µé¾îº»´Ù.
4Àå, '¿ÉÀú¹öºí ÇÊÅ͸µ'Àº ¿ÉÀú¹öºí ½ÃÄö½ºÀÇ ÇÙ½ÉÀÎ ÇÊÅ͸µÀ» ÆÄÇìÄ£´Ù. ¹ßÇàÇÑ ¿ÉÀú¹öºí¿¡¼ ¿ì¸®°¡ ÇÊ¿äÇÑ °ª¸¸ ¼±ÅÃÇÏ´Â ¹æ¹ýÀ̳ª À¯ÇÑÇÑ °ªÀ» ¾ò´Â ¹æ¹ý ±×¸®°í ¿À¹öÇ÷Π»óȲÀ» ´ëóÇÏ´Â ¹æ¹ýÀ» ºñ·ÔÇØ À¯¿ëÇÑ Æ®¸¯µµ ¹è¿öº¼ °ÍÀÌ´Ù.
5Àå, '¿ÉÀú¹öºí º¯È¯'Àº ÇÊ¿äÇÑ ½ÃÄö½º¸¦ »ý¼ºÇϱâ À§ÇØ ¿ÉÀú¹öºí ½ÃÄö½º¸¦ º¯È¯ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
6Àå, '¿ÉÀú¹öºí °áÇÕ'Àº ÇÔ¼ö¸¦ °áÇÕÇÏ´Â ¹ýÀ» »ìÆ캸°í, ¿ì¸®°¡ »ý¼ºÇÑ ¿ÉÀú¹öºíÀÌ ¿©·¯ ¿ÉÀú¹öºí°ú µ¿½Ã¿¡ µ¿ÀÛÇÏ´Â ¹æ¹ýÀ» ¹è¿öº»´Ù.
7Àå, '½ºÄÉÁÙ·¯: ¾Èµå·ÎÀÌµå ¸ÞÀÎ ½º·¹µå ¹®Á¦ ÇØ°á'Àº RxÀÚ¹Ù ½ºÄÉÁÙ·¯¸¦ ÀÌ¿ëÇØ ¸ÖƼ½º·¹µù°ú µ¿½Ã¼º ÇÁ·Î±×·¡¹ÖÀ» ´Ù·ç´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù. ³×Æ®¿öÅ© ¿ÀÆÛ·¹À̼ǰú ¸Þ¸ð¸® Á¢±Ù ¶Ç´Â ½Ã°£ÀÌ ¸¹ÀÌ ¼Ò¿äµÇ´Â ÀÛ¾÷À» ¸®¾×ƼºêÀûÀÎ ¹æ¹ýÀ¸·Î »ý¼ºÇغ¼ °ÍÀÌ´Ù.
8Àå, 'REST ¾È¿¡¼ Æòȸ¦: RxÀÚ¹Ù¿Í ·¹Æ®·ÎÇÍ'¿¡¼´Â ´É·üÀûÀ̸鼵µ È¿°úÀûÀ¸·Î REST Ŭ¶óÀ̾ðÆ®¸¦ ¸¸µé±â À§ÇØ ½ºÄù¾îÀÇ ·¹Æ®·ÎÇÍÀ» RxÀÚ¹Ù¿Í ÇÔ²² »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù.¡Ú ¿ä¾à ¡Ú
RxÀÚ¹Ù´Â ºñµ¿±â ó¸®¿Í À̺¥Æ® ±â¹ÝÀÇ ÇÁ·Î±×·¡¹ÖÀ» À§ÇÑ ¸®¾×Ƽºê ÀͽºÅÙ¼Ç(Reactive Extension)ÀÇ JVM ¹öÀüÀÌ´Ù. ÀÌ Ã¥Àº RxÀÚ¹Ù¸¦ ¹è¿ì¸é¼ ¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ®¿¡ ºü¸£°Ô Àû¿ëÇÏ°í ½ÍÀº µ¶ÀÚ¸¦ À§ÇØ ¾²¿©Á³´Ù. RxÀÚ¹ÙÀÇ ±â´ÉÀ» Rx¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ ¼³¸íÇÔÀ¸·Î½á RxÀÚ¹Ù¿Í Rx¾Èµå·ÎÀ̵åÀÇ ±â´ÉÀ» ºü¸£°Ô ½ÀµæÇÒ ¼ö ÀÖ´Ù. RxÀÚ¹Ù¸¦ °æÇèÇÏ°í ½ÍÀº °³¹ßÀÚ¿¡°Ô ÁÁÀº ±æÀâÀÌ°¡ µÇ¾îÁÙ °ÍÀÌ´Ù.
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á ¿ÉÀú¹ö(Observer) ÆÐÅÏÀ» ¸¶½ºÅÍÇÏ°í ¿ÉÀú¹öºí(Observable) °´Ã¼¿Í ½ÃÄö½º »ý¼º
¡á °´Ã¼ ¸®½ºÆ®¸¦ ¿ÉÀú¹öºí ½ÃÄö½º·Î º¯È¯
¡á ±âÁ¸ÀÇ ¸Þ¼Òµå¸¦ ¸®¾×Ƽºê ºñµ¿±â ÇÔ¼ö·Î Àüȯ
¡á ÇÊ¿äÇÑ °ª¸¸ ÇÔ¼ö·Î ¿Àµµ·Ï ¿ÉÀú¹öºí ½ÃÄö½º ÇÊÅ͸µ
¡á ¿ÉÀú¹öºí ½ÃÄö½º¸¦ »õ·Î¿î ½ÃÄö½º·Î º¯È¯Çϰųª Á¶ÀÛÇÏ´Â ¹æ¹ý
¡á »õ·Î¿î ½ÃÄö½º¸¦ ¸¸µé±â À§ÇØ ¿ÉÀú¹ö...ºíÀ» °áÇÕ, º´ÇÕ, ¿¬°á
¡á ½ºÄÉÁÙ·¯¸¦ ÀÌ¿ëÇÑ ¼Õ½¬¿î ¸ÖƼ½º·¹µù, µ¿½Ã¼º ±â¹ýÀ» ¹è¿ì±â À§ÇÑ ¾Èµå·ÎÀÌµå ¸ÞÀÎ ½º·¹µå¿Í ºñµ¿±â ŽºÅ© ¹èÁ¦
¡á ·¹Æ®·ÎÇÍ(Retrofit) ¿ÉÀú¹öºí ÀÀ´äÀ» ÀÌ¿ëÇØ ¿ø°Ý REST API¿Í Åë½Å
¡á RxÀÚ¹Ù ±â¹ÝÀÇ Ã¹ ¾Èµå·ÎÀÌµå ¾Û Á¦ÀÛ
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
ÀÚ¹Ù °³¹ß °æÇèÀÌ ÀÖ´Â µ¶ÀÚ¶ó¸é ¸®¾×Ƽºê ÇÁ·Î±×·¡¹ÖÀº ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ º¯°æÇϵµ·Ï °¿äÇÏÁö ¾ÊÀ¸¸é¼µµ ¹é¿£µå ½Ã½ºÅÛ¿¡¼ È®À强°ú µ¿½Ã¼ºÀ» ´Ù·ç´Â »õ·Î¿î ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ÀÌ Ã¥Àº RxÀÚ¹ÙÀÇ ÇÙ½ÉÀ» ¹è¿ö ¾Èµå·ÎÀ̵å Ç÷§ÆûÀÇ ÇѰ踦 ±Øº¹ÇÏ°í, À̺¥Æ® ±â¹ÝÀÇ ¸®¾×ƼºêÀûÀÌ¸é¼ ¸Å²ô·´°Ô µ¿ÀÛÇÏ´Â ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â µ¥ µµ¿òÀ» ÁÙ °ÍÀÌ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, ¡®RX: ´å³Ý¿¡¼ RxÀÚ¹Ù±îÁö¡¯´Â ¸®¾×Ƽºê ¼¼°è·Î °¡´Â ù ¹ø° ´Ü°è´Ù. ¸®¾×ƼºêÀûÀÎ Á¢±Ù¹ý°ú °íÀüÀûÀÎ Á¢±Ù¹ýÀ» ¼·Î ºñ±³ÇÏ¸é¼ ÀÌµé °£ÀÇ À¯»çÁ¡°ú Â÷ÀÌÁ¡À» ¾Ë¾Æº»´Ù.
2Àå, ¡®¿Ö ¿ÉÀú¹öºíÀΰ¡?¡¯´Â ¿ÉÀú¹ö ÆÐÅÏÀ» »ìÆ캸°í, RxÀÚ¹Ù°¡ À̸¦ ¾î¶»°Ô ±¸ÇöÇÏ°í È®ÀåÇß´ÂÁö, ¶Ç ¿ÉÀú¹öºíÀ̶õ ¹«¾ùÀ̸ç ÀÌÅÍ·¯ºí(Iterable)°ú´Â ¾î¶² °ü·ÃÀÌ ÀÖ´ÂÁö »ìÆ캻´Ù.
3Àå, ¡®Çï·Î ¸®¾×Ƽºê ¿ùµå¡¯´Â Áö±Ý±îÁö ¹è¿î ³»¿ëÀ» ¹ÙÅÁÀ¸·Î ù ¹ø° ¸®¾×Ƽºê ¾Èµå·ÎÀÌµå ¾ÛÀ» ¸¸µé¾îº»´Ù.
4Àå, ¡®¿ÉÀú¹öºí ÇÊÅ͸µ¡¯Àº ¿ÉÀú¹öºí ½ÃÄö½ºÀÇ ÇÙ½ÉÀÎ ÇÊÅ͸µÀ» ÆÄÇìÄ£´Ù. ¹ßÇàÇÑ ¿ÉÀú¹öºí¿¡¼ ¿ì¸®°¡ ÇÊ¿äÇÑ °ª¸¸ ¼±ÅÃÇÏ´Â ¹æ¹ýÀ̳ª À¯ÇÑÇÑ °ªÀ» ¾ò´Â ¹æ¹ý ±×¸®°í ¿À¹öÇ÷Π»óȲÀ» ´ëóÇÏ´Â ¹æ¹ýÀ» ºñ·ÔÇØ À¯¿ëÇÑ Æ®¸¯µµ ¹è¿öº¼ °ÍÀÌ´Ù.
5Àå, ¡®¿ÉÀú¹öºí º¯È¯¡¯Àº ÇÊ¿äÇÑ ½ÃÄö½º¸¦ »ý¼ºÇϱâ À§ÇØ ¿ÉÀú¹öºí ½ÃÄö½º¸¦ º¯È¯ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
6Àå, ¡®¿ÉÀú¹öºí °áÇÕ¡¯Àº ÇÔ¼ö¸¦ °áÇÕÇÏ´Â ¹ýÀ» »ìÆ캸°í, ¿ì¸®°¡ »ý¼ºÇÑ ¿ÉÀú¹öºíÀÌ ¿©·¯ ¿ÉÀú¹öºí°ú µ¿½Ã¿¡ µ¿ÀÛÇÏ´Â ¹æ¹ýÀ» ¹è¿öº»´Ù.
7Àå, ¡®½ºÄÉÁÙ·¯: ¾Èµå·ÎÀÌµå ¸ÞÀÎ ½º·¹µå ¹®Á¦ ÇØ°á'Àº RxÀÚ¹Ù ½ºÄÉÁÙ·¯¸¦ ÀÌ¿ëÇØ ¸ÖƼ½º·¹µù°ú µ¿½Ã¼º ÇÁ·Î±×·¡¹ÖÀ» ´Ù·ç´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù. ³×Æ®¿öÅ© ¿ÀÆÛ·¹À̼ǰú ¸Þ¸ð¸® Á¢±Ù ¶Ç´Â ½Ã°£ÀÌ ¸¹ÀÌ ¼Ò¿äµÇ´Â ÀÛ¾÷À» ¸®¾×ƼºêÀûÀÎ ¹æ¹ýÀ¸·Î »ý¼ºÇغ¼ °ÍÀÌ´Ù.
8Àå, ¡®REST ¾È¿¡¼ Æòȸ¦: RxÀÚ¹Ù¿Í ·¹Æ®·ÎÇÍ¡¯¿¡¼´Â ´É·üÀûÀ̸鼵µ È¿°úÀûÀ¸·Î REST Ŭ¶óÀ̾ðÆ®¸¦ ¸¸µé±â À§ÇØ ½ºÄù¾îÀÇ ·¹Æ®·ÎÇÍÀ» RxÀÚ¹Ù¿Í ÇÔ²² »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù.
-
-
1Àå RX: ´å³Ý¿¡¼ RxÀÚ¹Ù±îÁö
¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ¸®¾×Ƽºê ÀͽºÅÙ¼Ç ÀÚ¹Ù ¼¼°è¿¡ »ó·ú: ³ÝÇø¯½º RxÀÚ¹Ù __RxÀÚ¹Ù´Â ¹«¾ùÀÌ ´Ù¸¥°¡? Á¤¸®
2Àå ¿Ö ¿ÉÀú¹öºíÀΰ¡? ¿ÉÀú¹ö ÆÐÅÏ __¿ÉÀú¹ö ÆÐÅÏÀº ¾ðÁ¦ »ç¿ëµÇ´Â°¡? RxÀÚ¹Ù ¿ÉÀú¹ö ÆÐÅÏ ÅøŶ __Observable ____ÇÖ ¿ÉÀú¹öºí°ú ÄÝµå ¿ÉÀú¹öºí ____¿ÉÀú¹öºí »ý¼º __Subject = Observable + Observer ____PublishSubject ____BehaviorSubject ____ReplaySubject ____AsyncSubject Á¤¸®
3Àå Çï·Î ¸®¾×Ƽºê ¿ùµå ¿£Áø Á¡È! __ÀÇÁ¸¼º ____Rx¾Èµå·ÎÀ̵å __Utils ____·Òº¹(Lombok) ____¹öÅÍ ³ªÀÌÇÁ(Butter Knife) ____·¹Æ®·Î¶÷´Ù(Retrolambda) ù ¹ø° ¿ÉÀú¹öºí ¸®½ºÆ®·ÎºÎÅÍ ¿ÉÀú¹öºí »ý¼ºÇϱâ Á» ´õ ¸¹Àº ¿¹Á¦ __just() __repeat() __defer() __range() __interval() __timer() Á¤¸®
4Àå ¿ÉÀú¹öºí ÇÊÅ͸µ ½ÃÄö½º ÇÊÅ͸µ ÇÊ¿äÇÑ °Í¸¸ ¾ò±â __take() __taskLast() ´Ü ÇÑ ¹ø¸¸ ¹ßÇà __distinct() __distinctUntilChanged() first()¿Í last() skip()°ú skipLast() elementAt() sample() timeout() debounce() Á¤¸®
5Àå ¿ÉÀú¹öºí º¯È¯ *map °¡Á· __map() __flatMap() __concatMap() __flatMapIterable() __switchMap() __scan() __groupBy() __buffer() __window() __cast() Á¤¸®
6Àå ...¿ÉÀú¹öºí °áÇÕ merge() zip() join() combineLatest() and(), then(), when() switch() startWith() Á¤¸®
7Àå ½ºÄÉÁÙ·¯: ¾Èµå·ÎÀÌµå ¸ÞÀÎ ½º·¹µå ¹®Á¦ ÇØ°á StrictMode ºí·ÎÅ· I/O ¿ÀÆÛ·¹ÀÌ¼Ç ÇÇÇϱ⠽ºÄÉÁÙ·¯ __Schedulers.io() __Schedulers.computation() __Schedulers.immediate() __Schedulers.newThread() __Schedulers.trampoline() ³íºí·ÎÅ· I/O ¿ÀÆÛ·¹ÀÌ¼Ç SubscribeOn°ú ObserveOn ½Ã°£ÀÌ ¿À·¡ °É¸®´Â ÀÛ¾÷ ´Ù·ç±â ³×Æ®¿öÅ© ÀÛ¾÷ ½ÇÇà Á¤¸®
8Àå REST ¾È¿¡¼ Æòȸ¦: RxÀÚ¹Ù¿Í ·¹Æ®·ÎÇÍ ÇÁ·ÎÁ§Æ® ¸ñÇ¥ ·¹Æ®·ÎÇÍ ¾Û ±¸Á¶ __¾×ƼºñƼ Ŭ·¡½º »ý¼º __RecyclerView ¾î´ðÅÍ »ý¼º ____Àϱ⠿¹º¸ °Ë»öÇϱâ ____À¥»çÀÌÆ® ¿±â Á¤¸®1Àå RX: ´å³Ý¿¡¼ RxÀÚ¹Ù±îÁö
¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ¸®¾×Ƽºê ÀͽºÅÙ¼Ç
ÀÚ¹Ù ¼¼°è¿¡ »ó·ú: ³ÝÇø¯½º RxÀÚ¹Ù
__RxÀÚ¹Ù´Â ¹«¾ùÀÌ ´Ù¸¥°¡?
Á¤¸®
2Àå ¿Ö ¿ÉÀú¹öºíÀΰ¡?
¿ÉÀú¹ö ÆÐÅÏ
__¿ÉÀú¹ö ÆÐÅÏÀº ¾ðÁ¦ »ç¿ëµÇ´Â°¡?
RxÀÚ¹Ù ¿ÉÀú¹ö ÆÐÅÏ ÅøŶ
__Observable
____ÇÖ ¿ÉÀú¹öºí°ú ÄÝµå ¿ÉÀú¹öºí
____¿ÉÀú¹öºí »ý¼º
__Subject = Observable + Observer
____PublishSubject
____BehaviorSubject
____ReplaySubject
____AsyncSubject
Á¤¸®
3Àå Çï·Î ¸®¾×Ƽºê ¿ùµå
¿£Áø Á¡È!
__ÀÇÁ¸¼º
____Rx¾Èµå·ÎÀ̵å
__Utils
____·Òº¹(Lombok)
____¹öÅÍ ³ªÀÌÇÁ(Butter Knife)
____·¹Æ®·Î¶÷´Ù(Retrolambda)
ù ¹ø° ¿ÉÀú¹öºí
¸®½ºÆ®·ÎºÎÅÍ ¿ÉÀú¹öºí »ý¼ºÇϱâ
Á» ´õ ¸¹Àº ¿¹Á¦
__just()
__repeat()
__defer()
__range()
__interval()
__timer()
Á¤¸®
4Àå ¿ÉÀú¹öºí ÇÊÅ͸µ
½ÃÄö½º ÇÊÅ͸µ
ÇÊ¿äÇÑ °Í¸¸ ¾ò±â
__take()
__taskLast()
´Ü ÇÑ ¹ø¸¸ ¹ßÇà
__distinct()
__distinctUntilChanged()
first()¿Í last()
skip()°ú skipLast()
elementAt()
sample()
timeout()
debounce()
Á¤¸®
5Àå ¿ÉÀú¹öºí º¯È¯
*map °¡Á·
__map()
__flatMap()
__concatMap()
__flatMapIterable()
__switchMap()
__scan()
__groupBy()
__buffer()
__window()
__cast()
Á¤¸®
6Àå ¿ÉÀú¹öºí °áÇÕ
merge()
zip()
join()
combineLatest()
and(), then(), when()
switch()
startWith()
Á¤¸®
7Àå ½ºÄÉÁÙ·¯: ¾Èµå·ÎÀÌµå ¸ÞÀÎ ½º·¹µå ¹®Á¦ ÇØ°á
StrictMode
ºí·ÎÅ· I/O ¿ÀÆÛ·¹ÀÌ¼Ç ÇÇÇϱâ
½ºÄÉÁÙ·¯
__Schedulers.io()
__Schedulers.computation()
__Schedulers.immediate()
__Schedulers.newThread()
__Schedulers.trampoline()
³íºí·ÎÅ· I/O ¿ÀÆÛ·¹À̼Ç
SubscribeOn°ú ObserveOn
½Ã°£ÀÌ ¿À·¡ °É¸®´Â ÀÛ¾÷ ´Ù·ç±â
³×Æ®¿öÅ© ÀÛ¾÷ ½ÇÇà
Á¤¸®
8Àå REST ¾È¿¡¼ Æòȸ¦: RxÀÚ¹Ù¿Í ·¹Æ®·ÎÇÍ
ÇÁ·ÎÁ§Æ® ¸ñÇ¥
·¹Æ®·ÎÇÍ
¾Û ±¸Á¶
__¾×ƼºñƼ Ŭ·¡½º »ý¼º
__RecyclerView ¾î´ðÅÍ »ý¼º
____Àϱ⠿¹º¸ °Ë»öÇϱâ
____À¥»çÀÌÆ® ¿±â
Á¤¸®
-
-
»ç¶÷µé ÁָӴϸ¶´Ù ½º¸¶Æ®ÆùÀÌ ÇÑ ´ë¾¿ ÀÖ´Â ¼¼»ó¿¡¼´Â, ¸Å²ô·´°Ô µ¿ÀÛÇϸ鼵µ Áñ°Å¿î »ç¿ëÀÚ °æÇèÀ» Á¦°øÇϵµ·Ï ¾ÛÀ» µðÀÚÀÎÇÏ°í ¸¸µå´Â ÀÏÀÌ ÇʼöÀûÀÌ´Ù. RxÀÚ¹Ù¸¦ ÀÌ¿ëÇÑ ¸®¾×Ƽºê ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀº °³¹ßÀÚ°¡ ¾Èµå·ÎÀ̵å Ç÷§ÆûÀÇ ÇѰ踦 À̰ܳ»°í ³î¶ö ¸¸ÇÑ ¾Èµå·ÎÀÌµå ¾ÛÀ» ¸¸µå´Â µ¥ µµ¿òÀ» ÁØ´Ù. ÀÌ Ã¥Àº ¸®¾×Ƽºê ÇÁ·Î±×·¡¹ÖÀÇ ±âÃÊ¿Í ¿ÉÀú¹ö(Observer) ÆÐÅÏÀÇ °³³äºÎÅÍ RxÀÚ¹ÙÀÇ ÁÖµÈ ±â´É±îÁö, ½Ç¿ëÀûÀÎ ¿¹Á¦ ÄÚµå¿Í ½ÇÁ¦ ¾ÛÀÌ ¼ö¹ÝµÈ ½Ç¿ëÀûÀÎ ¿©Á¤ÀÌ µÉ °ÍÀÌ´Ù. ÀÌ Ã¥¿¡¼´Â ¿ÉÀú¹öºíÀ» ¸Ç óÀ½ºÎÅÍ »ý¼ºÇÏ´Â ¹æ¹ý°ú, ¸®½ºÆ®³ª ±âÁ¸ Äڵ忡 ÀÖ´Â ÇÔ¼ö·Î ¿ÉÀú¹öºíÀ» »ý¼ºÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù. »ç¿ëÀÚ°¡ ¿øÇÏ´Â °ª¸¸À» Áö´Ñ »õ·Î¿î ½ÃÄö½º¸¦ ¸¸µé±â À§ÇØ ¿ÉÀú¹öºí ½ÃÄö½º¸¦ ÇÊÅ͸µÇÏ´Â ¹æ¹ýÀ» ¹è¿ì°í, ÇÔ¼ö¸¦ ¿ÉÀú¹öºí¿¡ Àû¿ëÇϰųª ¿ÉÀú¹öºíÀÇ ¿¬¼âÀû »ç¿ë ¶Ç´Â º´ÇÕÇϰųª ÁöÇÎ(zippng)ÇÏ´Â ¹æ¹ýµµ ¹è¿öº»´Ù. ±×¸®°í ¾Èµå·ÎÀ̵åÀÇ ½º·¹µå¿Í µ¿½Ã¼º Áö¿Á(concurrency hell)À» ±Øº¹Çϱâ À§ÇÑ Rx¾Èµå·ÎÀÌµå ½ºÄÉÁÙ·¯ÀÇ »ç¿ë¹ýµµ ¾Ë¾Æº»´Ù. RxÀÚ¹Ù¿Í ·¹Æ®·ÎÇÍ(Retrofit)À» °áÇÕÇØ ¼Õ½±°Ô REST API Åë½ÅÀ» ÇÏ´Â ½Ç¿ëÀûÀÎ ¿¹Á¦·Î ÀÌ Ã¥À» ¸¶¹«¸®ÇÒ °ÍÀÌ´Ù.
(/ 'ÁöÀºÀÌÀÇ ¸»' Áß¿¡¼)
¾Èµå·ÎÀÌµå °³¹ßÀÚ¶ó¸é ´©±¸³ª ºñµ¿±â 󸮷Π°ñ¸Ó¸®¸¦ ¾ÎÀº °æÇèÀÌ ÀÖÀ» °ÍÀÌ´Ù. ¸ð¹ÙÀÏ µð¹ÙÀ̽ºÀÇ Çϵå¿þ¾î ¼º´ÉÀÌ ¶Ù¾î³ª´Ù°í ÇÏ´õ¶óµµ, ¸Å²ô·´°Ô µ¿ÀÛÇÏ´Â ¾ÛÀ» ±¸ÇöÇÏ·Á¸é ºñµ¿±â 󸮰¡ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. ¾Èµå·ÎÀ̵忡¼´Â ÀÌ·¯ÇÑ ºñµ¿±â 󸮸¦ À§ÇØ Çڵ鷯(Handler)³ª ºñµ¿±â ŽºÅ©(AsyncTask) °°Àº ±â´ÉÀ» Á¦°øÇÏÁö¸¸, °í¼öÁØÀÇ ºñµ¿±â µ¿ÀÛÀ» ±¸ÇöÇϱâ¶õ ½±Áö ¾Ê´Ù. RxÀÚ¹Ù¿Í Rx¾Èµå·ÎÀ̵å´Â ÀÌ·¯ÇÑ ºñµ¿±â ÀÛ¾÷À» ¼Õ½±°Ô ó¸®ÇØÁÖ°í °³¹ßÀÚ°¡ ±¸ÇöÇØ¾ß ÇÏ´Â ·ÎÁ÷¿¡ ÁýÁßÇϵµ·Ï µµ¿ÍÁØ´Ù. ¶ÇÇÑ ÀÚ¹Ù 8¿¡¼ Ãß°¡µÈ ½ºÆ®¸²(Stream)¿¡¼³ª »ç¿ëÇÒ ¼ö ÀÖ¾ú´ø ¸Ê(map)À̳ª ÇÊÅÍ(filter) °°Àº ±â´Éµµ Á¦°øÇØ, µ¥ÀÌÅ͸¦ ¿øÇÏ´Â ÀÔ¸À´ë·Î º¯°æÇϰųª Á¶ÀÛÇÒ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ RxÀÚ¹Ù´Â ÁøÀÔÀ庮ÀÌ ³ô´Ù´Â ¹®Á¦ ¶§¹®¿¡ À̸¦ ÇÁ·ÎÁ§Æ®¿¡ Àû¿ëÇÏ´Â µ¥ ÀÖ¾î °É¸²µ¹ÀÌ µÇ±âµµ ÇÑ´Ù.
ÀÌ Ã¥Àº RxÀÚ¹Ù¸¦ ¹è¿ì¸é¼ ¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ®¿¡ ºü¸£°Ô Àû¿ëÇÏ°í ½ÍÀº µ¶ÀÚ¸¦ À§ÇÑ Ã¥ÀÌ´Ù. RxÀÚ¹ÙÀÇ ±â´ÉÀ» ¼³¸íÇÏ°í Rx¾Èµå·ÎÀ̵带 ÀÌ¿ëÇÑ ¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé¾îº½À¸·Î½á RxÀÚ¹Ù¿Í Rx¾Èµå·ÎÀ̵åÀÇ ±â´ÉÀ» ºü¸£°Ô ½ÀµæÇÒ ¼ö ÀÖ°Ô Çß´Ù. ´õ¿íÀÌ ¹öÅÍ ³ªÀÌÇÁ(Butter Knife)³ª ·¹Æ®·Î ¶÷´Ù(RetroLambda) °°ÀÌ ½ÇÁ¦ ½Ç¹«¿¡¼ ¸¹ÀÌ »ç¿ëÇÏ´Â À¯¿ëÇÑ ¶óÀ̺귯¸®¸¦ ÇÔ²² »ç¿ëÇÔÀ¸·Î½á ¿©·¯ ¶óÀ̺귯¸®ÀÇ »ç¿ë¹ýµµ ¹è¿ï ¼ö ÀÖ´Ù´Â Á¡Àº ÀÌ Ã¥ÀÇ ¶Ç ´Ù¸¥ ¸Å·ÂÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. 4, 5, 6Àå¿¡¼´Â RxÀÚ¹ÙÀÇ Áø¼ö¸¦ Çٽɸ¸ ¿ä¾àÇØ ¼³¸íÇÔÀ¸·Î½á RxÀÚ¹Ù°¡ Á¦°øÇÏ´Â ¿©·¯ ±â´ÉÀ» ÇÑ´«¿¡ ÆľÇÇÒ ¼ö ÀÖ´Ù. 7Àå¿¡¼´Â ¾Èµå·ÎÀÌµå °³¹ßÀÚ°¡ ¹Ýµå½Ã ¾Ë¾Æ¾ß ÇÒ ½ºÄÉÁÙ·¯¸¦ ÀÌ¿ëÇÑ ½º·¹µå °ü¸® ±â¹ýÀ» ¼³¸íÇÑ´Ù. ¸¶Áö¸· Àå¿¡¼´Â ¾Èµå·ÎÀ̵å Áø¿µ¿¡¼ À¯¸íÇÑ ½ºÄù¾î(Square)ÀÇ ·¹Æ®·ÎÇÍ(Retrofit)°ú RxÀÚ¹Ù¸¦ ÇÔ²² »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ¸é¼ RxÀÚ¹Ù¸¦ »ç¿ëÇÏ´Â °³¹ßÀÚ¿¡°Ô ²À ÇÊ¿äÇÑ ²Ü ÆÁÀ» Á¦°øÇÑ´Ù.
¿ø¼´Â RxÀÚ¹Ù 1.0.x ¹öÀü°ú Rx¾Èµå·ÎÀ̵å 0.24 ¹öÀüÀ» ±âÁØÀ¸·Î ¾²¿´´Ù. ¿ø¼°¡ Ãâ°£µÈ ÈÄ Rx¾Èµå·ÎÀ̵å´Â 1.0.0 À» ¹ßÇ¥Çß°í ¸ÞÀÌÀú ¾÷µ¥ÀÌÆ®°¡ ÀÌ·ç¾îÁö¸é¼ ¸¹Àº º¯È°¡ ÀÖ¾ú´Ù. ±×Áß ÀϺΠ±â´ÉÀº »èÁ¦µÆ°í ÀϺδ ´Ù¸¥ ÇÁ·ÎÁ§Æ®·Î ºÐ¸®µÇ¸é¼ °á°úÀûÀ¸·Î Rx¾Èµå·ÎÀ̵å´Â °æ·®ÈµÆ´Ù.
ÀÌ´Â RxÀÚ¹Ù¿Í´Â º°°³·Î Rx¾Èµå·ÎÀ̵åÀÇ »ç¿ë ¹æ¹ý¿¡ º¯È°¡ »ý±ä °ÍÀÌ´Ù. ÀÌ·¯ÇÑ º¯°æ»çÇ×À» ¿¹Á¦¿¡ Á÷Á¢ Àû¿ëÇÏ´Ù º¸¸é, Rx¾Èµå·ÎÀ̵尡 Ãß±¸ÇÏ°íÀÚ ÇÏ...´Â ¹æÇ⼺À» ÀÌÇØÇÔÀº ¹°·Ð Rx¾Èµå·ÎÀ̵带 °øºÎÇÏ´Â ¶Ç ´Ù¸¥ ¹æ¹ýÀÌ µÉ °ÍÀÌ´Ù. 1.x¿¡¼ º¯°æµÈ »çÇ×Àº Rx¾Èµå·ÎÀ̵åÀÇ ±êÇãºê(https://github.com/ReactiveX/RxAndroid/wiki)¿Í ´í ·ç(Dan Lew)ÀÇ ºí·Î±×(http://blog.danlew.net/2015/09/01/how-toupgrade-to-rxandroid-10)¿¡¼ È®ÀÎÇÒ ¼ö ÀÖ´Ù. (/ '¿Å±äÀÌÀÇ ¸»' Áß¿¡¼)
-
-
|
ÀÌ¹Ý ¸ð¸£Áú·Î [Àú]
|
|
-
-
|
°°æ±¸ [Àú]
|
|
-
-
-
Àüü 0°³ÀÇ ±¸¸ÅÈıⰡ ÀÖ½À´Ï´Ù.
|
ÀÎÅÍÆÄÅ©µµ¼´Â °í°´´ÔÀÇ ´Ü¼ø º¯½É¿¡ ÀÇÇÑ ±³È¯°ú ¹ÝÇ°¿¡ µå´Â ºñ¿ëÀº °í°´´ÔÀÌ ÁöºÒÄÉ µË´Ï´Ù.
´Ü, »óÇ°À̳ª ¼ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯ ¹× ¹ÝÇ°Àº ¹«·á·Î ¹ÝÇ° µË´Ï´Ù. |
|
±³È¯ ¹× ¹ÝÇ°ÀÌ °¡´ÉÇÑ °æ¿ì |
»óÇ°À» °ø±Þ ¹ÞÀº ³¯·ÎºÎÅÍ 7ÀÏÀ̳» °¡´É
°ø±Þ¹ÞÀ¸½Å »óÇ°ÀÇ ³»¿ëÀÌ Ç¥½Ã, ±¤°í ³»¿ë°ú ´Ù¸£°Å³ª ´Ù¸£°Ô ÀÌÇàµÈ °æ¿ì¿¡´Â °ø±Þ¹ÞÀº ³¯·ÎºÎÅÍ 3°³¿ù À̳», ȤÀº ±×»ç½ÇÀ» ¾Ë°Ô µÈ ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏ À̳»
»óÇ°¿¡ ¾Æ¹«·± ÇÏÀÚ°¡ ¾ø´Â °æ¿ì ¼ÒºñÀÚÀÇ °í°´º¯½É¿¡ ÀÇÇÑ ±³È¯Àº »óÇ°ÀÇ Æ÷Àå»óÅ µîÀÌ ÀüÇô ¼Õ»óµÇÁö ¾ÊÀº °æ¿ì¿¡ ÇÑÇÏ¿© °¡´É |
|
±³È¯ ¹× ¹ÝÇ°ÀÌ ºÒ°¡´ÉÇÑ °æ¿ì |
±¸¸ÅÈ®Á¤ ÀÌÈÄ(¿ÀǸ¶ÄÏ»óÇ°¿¡ ÇÑÇÔ)
°í°´´ÔÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¸ê½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì
(´Ü, »óÇ°ÀÇ ³»¿ëÀ» È®ÀÎÇϱâ À§ÇÏ¿© Æ÷Àå µîÀ» ÈѼÕÇÑ °æ¿ì´Â Á¦¿Ü)
½Ã°£ÀÌ Áö³²¿¡ µû¶ó ÀçÆǸŰ¡ °ï¶õÇÒ Á¤µµ·Î ¹°Ç°ÀÇ °¡Ä¡°¡ ¶³¾îÁø °æ¿ì
Æ÷Àå °³ºÀµÇ¾î »óÇ° °¡Ä¡°¡ ÈÑ¼ÕµÈ °æ¿ì |
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ¹ÝÇ° ȯºÒ |
´Ù¹è¼ÛÁöÀÇ °æ¿ì ´Ù¸¥ Áö¿ªÀÇ ¹ÝÇ°À» µ¿½Ã¿¡ ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù.
1°³ Áö¿ªÀÇ ¹ÝÇ°ÀÌ ¿Ï·áµÈ ÈÄ ´Ù¸¥ Áö¿ª ¹ÝÇ°À» ÁøÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌÁ¡ ¾çÇØÇØ Áֽñ⠹ٶø´Ï´Ù. |
|
Áß°í»óÇ°ÀÇ ±³È¯ |
Áß°í»óÇ°Àº Á¦ÇÑµÈ Àç°í ³»¿¡¼ ÆǸŰ¡ ÀÌ·ç¾îÁö¹Ç·Î, ±³È¯Àº ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
¿ÀǸ¶ÄÏ »óÇ°ÀÇ È¯ºÒ |
¿ÀǸ¶ÄÏ»óÇ°¿¡ ´ëÇÑ Ã¥ÀÓÀº ¿øÄ¢ÀûÀ¸·Î ¾÷ü¿¡°Ô ÀÖÀ¸¹Ç·Î, ±³È¯/¹ÝÇ° Á¢¼ö½Ã ¹Ýµå½Ã ÆǸÅÀÚ¿Í ÇùÀÇ ÈÄ ¹ÝÇ° Á¢¼ö¸¦ ÇϼžßÇϸç, ¹ÝÇ°Á¢¼ö ¾øÀÌ ¹Ý¼ÛÇϰųª, ¿ìÆíÀ¸·Î º¸³¾ °æ¿ì »óÇ° È®ÀÎÀÌ ¾î·Á¿ö ȯºÒÀÌ ºÒ°¡´ÉÇÒ ¼ö ÀÖÀ¸´Ï À¯ÀÇÇϽñ⠹ٶø´Ï´Ù. |
|
|
|
¹è¼Û¿¹Á¤ÀÏ ¾È³» |
ÀÎÅÍÆÄÅ© µµ¼´Â ¸ðµç »óÇ°¿¡ ´ëÇØ ¹è¼Û¿Ï·á¿¹Á¤ÀÏÀ» À¥»çÀÌÆ®¿¡ Ç¥½ÃÇÏ°í ÀÖ½À´Ï´Ù.
|
<ÀÎÅÍÆÄÅ© Á÷¹è¼Û »óÇ°> |
»óÇ°Àº ¿ù~Åä¿äÀÏ ¿ÀÀü 10½Ã ÀÌÀü ÁÖ¹®ºÐ¿¡ ´ëÇÏ¿© ´çÀÏ Ãâ°í/´çÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÏ´Â »óÇ°ÀÔ´Ï´Ù. |
»óÇ°Àº ¼¿ïÁö¿ª/ÆòÀÏ ÁÖ¹®ºÐÀº ´çÀÏ Ãâ°í/ÀÍÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇϸç,
¼¿ï¿ÜÁö¿ª/ÆòÀÏ ÁÖ¹®ºÐÀÇ °æ¿ì´Â ¿ÀÈÄ 6½Ã±îÁö ÁÖ¹®ºÐ¿¡ ´ëÇÏ¿© ÀÍÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÏ´Â »óÇ°ÀÔ´Ï´Ù.
(´Ü, ¿ù¿äÀÏÀº 12½Ã±îÁö ÁÖ¹®¿¡ ÇÑÇÔ)
|
»óÇ°Àº, ÀÔ°í¿¹Á¤ÀÏ(Á¦Ç°Ãâ½ÃÀÏ)+Åùè»ç¹è¼ÛÀÏ(1ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù. |
~
»óÇ°Àº À¯ÅëƯ¼º»ó ÀÎÅÍÆÄÅ©¿¡¼ Àç°í¸¦ º¸À¯ÇÏÁö ¾ÊÀº »óÇ°À¸·Î ÁÖ¹®ÀÏ+±âÁØÃâ°íÀÏ+Åùè»ç¹è¼ÛÀÏ(1ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù.(Åä/°øÈÞÀÏÀº ¹è¼Û±â°£¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.)
¡Ø±âÁØÃâ°íÀÏ:ÀÎÅÍÆÄÅ©°¡ »óÇ°À» ¼ö±ÞÇÏ¿© ¹°·ùâ°í¿¡¼ Æ÷Àå/Ãâ°íÇϱâ±îÁö ¼Ò¿äµÇ´Â ½Ã°£
|
|
<¾÷ü Á÷Á¢¹è¼Û/¿ÀǸ¶ÄÏ »óÇ°> |
~
»óÇ°Àº ¾÷ü°¡ ÁÖ¹®À» È®ÀÎÇÏ°í, Ãâ°íÇϱâ±îÁö °É¸®´Â ½Ã°£ÀÔ´Ï´Ù. ÁÖ¹®ÀÏ+±âÁØÃâ°íÀÏ+Åùè»ç¹è¼ÛÀÏ(2ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù.(Åä/°øÈÞÀÏÀº ¹è¼Û±â°£¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.)
¡Ø5ÀÏÀ̳» Ãâ°í°¡ ½ÃÀÛµÇÁö ¾ÊÀ»½Ã, ¿ÀǸ¶ÄÏ »óÇ°Àº ÀÚµ¿À¸·Î ÁÖ¹®ÀÌ Ãë¼ÒµÇ¸ç, °í°´´Ô²² Ç°Àýº¸»ó±ÝÀ» Áö±ÞÇØ µå¸³´Ï´Ù.
|
|
|
¹è¼Ûºñ ¾È³» |
µµ¼(Áß°íµµ¼ Æ÷ÇÔ)¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 2,000¿ø (1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û) À½¹Ý/DVD¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 1,500¿ø (2¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
ÀâÁö/¸¸È/±âÇÁÆ®¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 2,000¿ø (2¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
µµ¼¿Í À½¹Ý/DVD¸¦ ÇÔ²² ±¸¸ÅÇϽøé : ¹è¼Ûºñ 1,500¿ø 1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
µµ¼¿Í ÀâÁö/¸¸È/±âÇÁÆ®/Áß°íÁ÷¹è¼Û»óÇ°À» ÇÔ²² ±¸¸ÅÇϽøé : 2,000¿ø (1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
¾÷üÁ÷Á¢¹è¼Û»óÇ°À» ±¸¸Å½Ã : ¾÷üº°·Î »óÀÌÇÑ ¹è¼Ûºñ Àû¿ë
* ¼¼Æ®»óÇ°ÀÇ °æ¿ì ºÎºÐÃë¼Ò ½Ã Ãß°¡ ¹è¼Ûºñ°¡ ºÎ°úµÉ ¼ö ÀÖ½À´Ï´Ù.
* ºÏÄ«Æ®¿¡¼ ¹è¼Ûºñ¾ø¾Ö±â ¹öÆ°À» Ŭ¸¯Çϼż, µ¿ÀϾ÷ü»óÇ°À» Á¶±Ý ´õ ±¸¸ÅÇϽøé, ¹è¼Ûºñ¸¦ Àý¾àÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
|
|
Çؿܹè¼Û ¾È³» |
ÀÎÅÍÆÄÅ©µµ¼¿¡¼´Â ±¹³»¿¡¼ ÁÖ¹®ÇϽðųª ÇØ¿Ü¿¡¼ ÁÖ¹®ÇÏ¿© ÇØ¿Ü·Î ¹è¼ÛÀ» ¿øÇÏ½Ç °æ¿ì DHL°ú Ư¾àÀ¸·Î Ã¥Á¤µÈ ¿ä±ÝÇ¥¿¡
ÀÇÇØ °³ÀÎÀÌ ÀÌ¿ëÇÏ´Â °æ¿ìº¸´Ù ¹è¼Û¿ä±ÝÀ» Å©°Ô ³·Ã߸ç DHL(www.dhl.co.kr)·Î Çؿܹè¼Û ¼ºñ½º¸¦ Á¦°øÇÕ´Ï´Ù.
Çؿܹè¼ÛÀº µµ¼/CD/DVD »óÇ°¿¡ ÇÑÇØ ¼ºñ½ºÇÏ°í ÀÖÀ¸¸ç, ´Ù¸¥ »óÇ°À» ºÏÄ«Æ®¿¡ ÇÔ²² ´ãÀ¸½Ç °æ¿ì Çؿܹè¼ÛÀÌ ºÒ°¡ÇÕ´Ï´Ù.
ÇØ¿ÜÁÖ¹®¹è¼Û ¼ºñ½º´Â ÀÎÅÍÆÄÅ© µµ¼ ȸ¿ø °¡ÀÔÀ» Çϼž߸¸ ½Åû °¡´ÉÇÕ´Ï´Ù. |
|
¾Ë¾ÆµÎ¼¼¿ä!!! |
µµ¸Å»ó ¹× Á¦ÀÛ»ç »çÁ¤¿¡ µû¶ó Ç°Àý/ÀýÆÇ µîÀÇ »çÀ¯·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù.
¿ÀǸ¶ÄϾ÷üÀÇ ¹è¼ÛÁö¿¬½Ã ÁÖ¹®ÀÌ ÀÚµ¿À¸·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù.
Ãâ°í°¡´É ½Ã°£ÀÌ ¼·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.
À¯ÅëÀÇ Æ¯¼º»ó Ãâ°í±â°£Àº ¿¹Á¤º¸´Ù ¾Õ´ç°ÜÁö°Å³ª ´ÊÃçÁú ¼ö ÀÖ½À´Ï´Ù.
Åùè»ç ¹è¼ÛÀÏÀÎ ¼¿ï ¹× ¼öµµ±ÇÀº 1~2ÀÏ, Áö¹æÀº 2~3ÀÏ, µµ¼, »ê°£, ±ººÎ´ë´Â 3ÀÏ ÀÌ»óÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù. |
|
|
|
|