ÄÜÅÙÃ÷ »ó¼¼º¸±â
ÄÚƲ¸° ÄÚ·çƾÀÇ Á¤¼®


ÄÚƲ¸° ÄÚ·çƾÀÇ Á¤¼®

ÄÚƲ¸° ÄÚ·çƾÀÇ Á¤¼®

<Á¶¼¼¿µ> Àú | ¿¡ÀÌÄÜÃâÆÇ»ç

Ãâ°£ÀÏ
2024-06-21
ÆÄÀÏÆ÷¸Ë
ePub
¿ë·®
13 M
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
ÀúÀÚ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

¸¹Àº °³¹ßÀÚµéÀÌ ¾î·Æ°Ô ´À³¢´Â ºñµ¿±â ÇÁ·Î±×·¡¹ÖÀ» ´Ù¾çÇÑ ½Ã°¢Àû ÀÚ·á¿Í ¼³¸íÀ» ÅëÇØ ´©±¸³ª ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï ¾²ÀΠåÀÌ´Ù. ¾Èµå·ÎÀ̵å, ½ºÇÁ¸µ µî ÄÚƲ¸°À» »ç¿ëÇÏ´Â °³¹ßÀÚµé Áß ÄÚ·çƾÀ» »ç¿ëÇÑ ºñµ¿±â ÇÁ·Î±×·¡¹ÖÀ» ±âÃʺÎÅÍ ½ÉÈ­±îÁö Á¦´ë·Î ¹è¿öº¸°í ½ÍÀº µ¶Àڵ鿡°Ô ÃßõÇÑ´Ù.


¢Â ÃßõÀÇ ±Û ¢Â

ÄÚƲ¸° Àú¼­¸¦ ÁýÇÊÇϸ鼭 ÄÚ·çƾ°ú µ¿½Ã¼º¿¡ ´ëÇÑ ³»¿ëÀ» ³ÖÁö ¾Ê¾Æ °ü·ÃµÈ Ã¥À» ³¾±î °í¹ÎÇÏ´ø Áß, ¿ì¿¬È÷ ÃâÆǻ縦 ÅëÇØ Ãâ°£ °èȹ¼­¸¦ °ËÅäÇØ´Þ¶ó´Â ¿äûÀ» ¹Þ¾Ò´Ù. À̸§Àº ¾ø¾úÁö¸¸ ÄÚ·çƾ ±â¼ú ¹®¼­¸¦ ¹ø¿ªÇØ ¿Ã¸° ÀúÀÚ¶ó´Â »ç½ÇÀ» ³Ê¹« ½±°Ô ¾Ë ¼ö ÀÖ¾ú´Ù. ÄÚ·çƾÀ» °øºÎÇϸ鼭 ÀúÀÚ°¡ Á¤¸®ÇÑ ³»¿ë°ú ¹ø¿ªÇÑ ³»¿ë¿¡¼­ ¸¹Àº µµ¿òÀ» ¹Þ¾Ò±â ¶§¹®À̾ú´Ù. ±âȹ ³»¿ëµµ ü°èÀûÀ̾ú°í, ³»°¡ ½èÀ¸¸é ÇÏ´Â ³»¿ëµéÀÌ ´Ù µé¾î°¡ À־ ÈçÄèÈ÷ º£Å¸¸®µùÀ» ÅëÇØ ÀÛ°Ô³ª¸¶ µµ¿òÀ» µå¸®±â·Î °áÁ¤Çß´Ù.
ÄÚƲ¸°À» ¹è¿ì°í È°¿ëÇÏ´Ù º¸¸é ÄÚ·çƾÀ» ÅëÇÑ µ¿½Ã¼º 󸮰¡ ÇʼöÀûÀÌ´Ù. ÇÏÁö¸¸ ÄÚƲ¸° °ø½Ä ¹®¼­³ª ÄÚƲ¸° ÄÚ·çƾ ±¸Çö °ü·Ã ¹®¼­´Â óÀ½ º¸´Â »ç¶÷ÀÌ È帧À» µû¶ó °¡¸é¼­ ÀÌÇØÇϱ⿣ ¾î·Á¿î ºÎºÐÀÌ ¸¹´Ù. ÀÌ´Â ÄÚ·çƾ¿¡ ´ëÇØ ´Ù·ç´Â ´ëºÎºÐÀÇ ¹®¼­³ª Ã¥, µ¿¿µ»óÀÌ ¾î´À Á¤µµ µ¿½Ã¼º 󸮿¡ ´ëÇØ ¾Ë°í ÀÖ´Ù°í °¡Á¤Çϱ⠶§¹®ÀÌ´Ù. ±×·¡¼­ óÀ½ºÎÅÍ ÄÁƼ´º¿¡À̼ÇÀ̳ª ÄÚ·çƾ ³»ºÎÀÇ »óŸӽÅ, µð½ºÆÐÄ¡ ±¸Á¶ µî ³ªÁß¿¡ »ìÆ캸´Â ÆíÀÌ ´õ ³ªÀº ¼¼ºÎ »çÇ×À» ¼³¸íÇÏ´Â °ÍºÎÅÍ ½ÃÀÛÇϱ⠶§¹®¿¡, ÄÚƲ¸°À¸·Î µ¿½Ã¼º 󸮸¦ óÀ½ ½ÃÀÛÇÏ´Â »ç¶÷Àº ¿ÀÈ÷·Á º¹ÀâÇÑ °³³äµé ¼Ó¿¡¼­ °¥ÇǸ¦ ¸øÀâ°í Çì¸Å´Â °æ¿ì°¡ ¸¹´Ù.
ÀÌ Ã¥Àº ´ÙÁß½º·¹µå ÇÁ·Î±×·¡¹ÖÀ» ´Ù·ç°í, ÄÚ·çƾ µð½ºÆÐó, ÄÚ·çƾ ºô´õ, Job, Deferred, ÄÚ·çƾ ÄÁÅؽºÆ®, ±¸Á¶È­µÈ µ¿½Ã¼º, ¿¹¿Ü ó¸® ¼ø¼­·Î ¼³¸íÀ» ÁøÇàÇÑ´Ù. ±×¸®°í ´Ù½Ã ÀϽà Áß´Ü ÇÔ¼ö¿Í ÄÚ·çƾ¿¡ ´ëÇØ ¼³¸íÇÔÀ¸·Î½á óÀ½ ÄÚ·çƾÀ» »ç¿ëÇÒ ¶§ Á¤¸» ÇÊ¿äÇÑ ³»¿ëºÎÅÍ ÄÚƲ¸° ÄÚ·çƾÀ» ±íÀÌ ¹è¿ö³ª°¥ ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù. ±× °úÁ¤¿¡¼­ ÀÚ¼¼ÇÑ ¿¹Á¦ Äڵ带 ÅëÇØ ½Ç¹«¿¡¼­ ÄÚ·çƾÀ» »ç¿ëÇÒ ¶§ ¾Ë¾ÆµÖ¾ß ÇÏ´Â °³³ä°ú ÁÖÀÇÇØ¾ß ÇÒ ÇÔÁ¤À» ¾Ë·ÁÁØ´Ù. ¼³¸í°ú ¿¹Á¦ ÄÚµå´Â °³³äÀ» ÃæºÐÈ÷ ¼³¸íÇ쵂 ³Ê¹« Áö³ªÄ¡Áö ¾Ê°í, ³Ê¹« °£°áÇÏÁöµµ ¾Ê°Ô µü Àû´çÇÑ ¼öÁØÀ̹ǷΠÂ÷±ÙÂ÷±Ù ÂѾư¡±â ÁÁ´Ù. ÀÌ Ã¥À» °ç¿¡ µÎ°í Àß ÀÍÈ÷¸é ÄÚƲ¸° °³¹ßÀڵ鿡°Ô Å©°Ô µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
ÄÚƲ¸°À» ¹è¿ì°í ÄÚ·çƾÀ» È°¿ëÇÑ µ¿½Ã¼º ÇÁ·Î±×·¡¹ÖÀ» ÁøÇàÇÏ·Á´Â °³¹ßÀÚµéÀ̳ª, ÄÚ·çƾÀ» »ç¿ëÇϱâ´Â ÇßÁö¸¸ ÄÚ·çƾ µð½ºÆÐó, ÄÁÅؽºÆ®, Àâ °èÃþ±¸Á¶ µî¿¡ ´ëÇØ ´õ Àß ¾Ë°í ½ÍÀº °³¹ßÀڵ鿡°Ô ÀÌ Ã¥À» ±ÇÇÑ´Ù.
¦¡¿ÀÇö¼®, ¸ðºô¸®Æ¼42 ÀÌ»ç

¡ºÄÚƲ¸° ÄÚ·çƾÀÇ Á¤¼®¡»Àº ¡º¼öÇÐÀÇ Á¤¼®¡»°ú °°ÀÌ ÄÚ·çƾ °³³ä¿¡ ÀÔ¹®ÇÏ´Â µ¥ ÃÖÀûÈ­µÈ ÈǸ¢ÇÑ ¾È³»¼­ÀÌ´Ù. Ãʺ¸ÀÚµµ ºÎ´ã ¾øÀÌ µû¶ó°¥ ¼ö ÀÖµµ·Ï ½¬¿î ¾ð¾î¿Í Á÷°üÀûÀÎ ¿¹Á¦, ±×¸²À¸·Î ¼³¸íµÅ ÀÖ¾î ÀÔ¹®ÀÚ¿¡°Ô ÆíÇÏ°Ô ´Ù°¡°¡¸ç, ¿¹Á¦ Äڵ带 ÅëÇØ °³³äÀ» ½ÇÁ¦·Î Àû¿ëÇÏ´Â ¹æ¹ýÀ» ¸íÈ®È÷ º¸¿©Á༭ ½Ç¹«¿¡ ¹Ù·Î Àû¿ëÇغ¼ ¼ö ÀÖ´Ù. ÄÚƲ¸° ÄÚ·çƾÀÇ ±âÃʸ¦ źźÈ÷ ´ÙÁö°íÀÚ ÇÏ´Â ÁÖ´Ï¾î °³¹ßÀÚ³ª ºñµ¿±â ÇÁ·Î±×·¡¹Ö¿¡ ¾î·Á¿òÀ» ´À³¢´Â µ¶Àڵ鿡°Ô °­·ÂÈ÷ ÃßõÇÑ´Ù.
¦¡°­´ë±Ô, ´ç±Ù¸¶ÄÏ ¾Èµå·ÎÀÌµå °³¹ßÀÚ

ÄÚ·çƾÀ» ÃʽÉÀÚµµ ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï ü°èÀûÀ¸·Î Á¤¸®ÇÑ Ã¥À» ã±â ¾î·Á¿ü´Ù º¸´Ï ÀÌ Ã¥ÀÇ µîÀåÀÌ ¹Ý°¡¿ü´Ù. ÄÚ·çƾÀ» ¹è¿î´Ù¸é ÇʼöÀûÀ¸·Î ¾Ë¾Æ¾ß ÇÒ ÁÖÁ¦µéÀ» ´ã°í ÀÖÀ¸¸ç, ÄÚ·çƾÀÇ ±âÃÊ »ç¿ë»Ó¸¸ ¾Æ´Ï¶ó ³»ºÎ µ¿ÀÛÀ» ÀÌÇØÇϱâ À§ÇÑ ³»¿ëÀ» ±×¸²°ú ¿¹Á¦ Äڵ带 ÅëÇØ Ä£ÀýÇÏ°Ô ¼³¸íÇÑ´Ù.
°¢ ±â¼úÀÇ ÁÖÁ¦¿¡ ´ëÇÑ WHATÀ» ¼³¸íÇØ ÁÖ´Â °ÍÀ» ³Ñ¾î ÀÌÇظ¦ µ½±â À§ÇÑ ¿ë¾îÀÇ ¾î¿øÀ̳ª ¹è°æÀ» ÅëÇØ WHY¸¦ ¼³¸íÇÏ°í À־ ÀúÀÚ°¡ µ¶ÀÚÀÇ ÀÌÇظ¦ µ½±â À§ÇØ °í¹ÎÇÑ ÈçÀûÀÌ ´À²¸Áø´Ù. ÄÚ·çƾÀ» óÀ½ °øºÎÇÏ´Â µ¶ÀÚµéÀ̳ª, ÀÌ¹Ì ÄÚ·çƾÀ» ¹è¿üÁö¸¸ Á» ´õ ±í°Ô ÀÌÇØÇÏ°í ½ÍÀº µ¶Àڵ鿡°Ô µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ÄÚ·çƾ, ÀÌ Ã¥ ÇÑ ±ÇÀÌ¸é µÈ´Ù.
¦¡ÀÌÁÖ¿µ, È­ÇØ ¾Èµå·ÎÀÌµå ¸®µå °³¹ßÀÚ

ÄÚƲ¸° ÄÚ·çƾ ÃʽÉÀÚ°¡ Àо°¡´Â µ¥ ÀüÇô ¾î·Á¿òÀÌ ¾øµµ·Ï ³»¿ëÀ» ±¸¼ºÇÏ°í ÀÖÀ¸¸ç, ¹è°æÁö½ÄÀÌ °¢ éÅÍ ¼­µÎ¿¡ Àß ¼­¼úµÅ ÀÖ´Ù. ªÀº È£ÈíÀ¸·Î ÀÌ·ïÁø ÀÌ Ã¥ÀÇ ±¸¼ºÀº ÀÚÄ© ½±°Ô ¹æÇâÀ» ÀÒ¾î¹ö¸± ¼ö ÀÖ´Â ÀϹÝÀûÀÎ IT ±â¼ú ¼­Àû°ú´Â ÀüÇô ´Ù¸£°Ô ´À²¸Áø´Ù.
ÄÚ·çƾÀÇ º¹ÀâÇÑ µ¿½Ã¼ºÀ» ¼³¸íÇϱâ À§ÇØ ÀýÂ÷¸¦ »ó¼¼È÷ µµ½ÄÈ­ÇØ ÀÌÇظ¦ µµ¿Ô°í, ƯÈ÷ ½Ç »ç¿ë¿¡ ÀÖÀ» ¹ýÇÑ ÀûÀýÇÑ ¿¹½Ã¸¦ ¹ÙÅÁÀ¸·Î »ç¿ë Àǵµ¸¦ ÆľÇÇϱ⠽±°Ô ÁýÇÊÇß´Ù. ÁÖ¿ä ÀÎÅÍÆäÀ̽º¸¦ ÄÚµå ·¹º§¿¡¼­ ºñ±³ÇØ ºÐ¸íÇÑ ¾²ÀÓ»õ¸¦ ±¸ºÐÇÏ´Â °Íµµ µ¶ÀÚÀÇ ÀÌÇØ È帧¿¡ Å« µµ¿òÀÌ µÈ´Ù.
¦¡ÀÌÁöȯ, ³×À̹ö ¹é¿£µå °³¹ßÀÚ

°³¹ßÀÚ¿¡°Ô ºñµ¿±â ÄÚµåÀÇ Á߿伺À» ÀÌÇØÇÏ°í ½ÇÁúÀûÀ¸·Î È°¿ëÇÏ´Â °ÍÀº ÇʼöÀûÀÎ ´É·ÂÀÌ´Ù. ÀÌ Ã¥Àº ºñµ¿±â°¡ ¿Ö ÇÊ¿äÇÑÁö, ±×¸®°í ¾î¶»°Ô È¿À²ÀûÀ¸·Î ºñµ¿±â Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖ´ÂÁö, ÄÚ·çƾÀÇ Á¦¾î¿Í °ü¸®¸¦ À§ÇÑ ¹æ¹ýµéÀ» ´Ù¾çÇÑ ¿¹Á¦¸¦ ÅëÇØ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ°Ô Á¦°øÇÑ´Ù. ±×»Ó¸¸ ¾Æ´Ï¶ó ½ÉÈ­ ÁÖÁ¦¿¡ ´ëÇؼ­µµ ´Ù·ç°í ÀÖ¾î, ±âº» °³³äÀ» ³Ñ¾î¼­ ´õ ±íÀº ÀÌÇظ¦ µ½´Â´Ù.
ÀÌ Ã¥À» ƯÈ÷ ÁÖ´Ï¾î °³¹ßÀڵ鿡°Ô ÃßõÇÏ´Â ÀÌÀ¯´Â ÄÚ·çƾ¿¡ ´ëÇÑ ±íÀº ÀÌÇØ ¾øÀÌ´Â È¿À²ÀûÀÎ ÄÚµå ÀÛ¼ºÀÌ ¾î·Æ±â ¶§¹®ÀÌ´Ù. ¹ö±×¸¦ ÃÖ¼ÒÈ­ÇÏ°í, °³¹ß ½Ã°£À» ´ÜÃàÇϱâ À§ÇØ ÇÊ¿äÇÑ ÄÚ·çƾÀÇ ¸¹Àº È°¿ë¹ýÀ» ÀÌ Ã¥¿¡¼­ ãÀ» ¼ö ÀÖ´Ù. µ¶ÀÚµéÀÌ ºñµ¿±â ÄÚµåÀÇ º¹À⼺À» ±ò²ûÇÏ°Ô ´Ù·ç°í ÀÌÇØÇÏ´Â µ¥ Å« µµ¿òÀ» ¹ÞÀ» ¼ö ÀÖÀ» °Å¶ó È®½ÅÇÑ´Ù.
¦¡Á¤¿ìÁø, ¶óÀÎ ¾Èµå·ÎÀÌµå °³¹ßÀÚ

°íµîÇлý ¶§´Â Çб³ ¼±»ý´ÔµéÀÇ ¼ö¾÷À¸·Î ÀÌÇØÇÏÁö ¸øÇß´ø °³³äÀ» ÀÎÅͳÝÀÇ ½ºÅ¸ °­»çµéÀÌ ÀÌÇؽÃÄÑ Áá´Ù. ÄÚƲ¸° ÄÚ·çƾÀÇ Á¤¼®µµ ¸¶Âù°¡Áö´Ù. ½ÉÁö¾î µ¿¿µ»óµµ ¾Æ´Ñ Ã¥ÀÌÁö¸¸, ½±°Ô ÀÌÇØÇÏÁö ¸øÇß´ø ÄÚ·çƾ °³³äÀ» ¸Ó¸´¼Ó¿¡ ÁÖÀÔÇØ ÁØ´Ù.
Ã¥Àº ¾Õ¿¡¼­ºÎÅÍ ¿¹½Ã Äڵ带 ½ÇÇàÇغ¸¸é¼­ µû¶ó°¡¸é Á¦ÀÏ ÁÁ´Ù. ¼³¸íÀ» Á¶±Ý¸¸ Àо´õ¶óµµ ³» ¸»À» ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸Ó¸´¼Ó¿¡ °³³äÀ» ÁÖÀÔÇÏ°í ÀÖ´Â ½ºÅ¸ °­»çÀÇ Æí¸°ÀÌ ´À²¸Áú °ÍÀÌ´Ù. º»¹®À» Àо·¯ °¡ÀÚ. ÀϺθ¸ Àдõ¶óµµ ¾ò¾î°¡´Â °Ô ÀÖÀ» °ÍÀÌ´Ù.
¦¡ÀÌ´ë°Ç, ÇÏÀÌÆÛ Ä¿³ØÆ® ¹é¿£µå °³¹ßÀÚ

ÀúÀÚ¼Ò°³

Ãë¹Ì·Î ¾Èµå·ÎÀÌµå °³¹ßÀ» ½ÃÀÛÇß´Ù°¡ ºüÁ®µé¾î ¾Èµå·ÎÀÌµå °³¹ßÀÚ°¡ µÆ´Ù. ÇÏÀÌÆÛÄ¿³ØÆ®¿¡¼­ ¾Èµå·ÎÀÌµå °³¹ßÀڷμ­ Ä¿¸®¾î¸¦ ½ÃÀÛÇß°í, ÇöÀç´Â ¶óÀÎÇ÷¯½º¿¡¼­ ¶óÀÎ ¾Èµå·ÎÀÌµå ¾ÛÀ» °³¹ßÇÏ°í ÀÖ´Ù. ¾Èµå·ÎÀÌµå °³¹ßÀ» Çϸ鼭 ¾î·Á¿òÀ» ´À³¤ ºÎºÐµéÀ» ´Ù¸¥ »ç¶÷µé°ú °øÀ¯ÇÏ°í ½Í¾î ¡®Á¶¼¼¿µÀÇ Kotlin World¡¯ ±â¼ú ºí·Î±×¸¦ ¿î¿µÇϸç 400°³ ÀÌ»óÀÇ ±ÛÀ» ¹ßÇàÇß´Ù. ºí·Î±× ¿î¿µ ¿Ü¿¡µµ ±â¼ú°ú °ü·ÃµÈ ´Ù¾çÇÑ È°µ¿À» ÇÏ°í ÀÖ´Ù. ÄÚ·çƾ ±â¼ú ¹®¼­¸¦ ¹ø¿ªÇØ À¥¿¡ ¹èÆ÷Çϱ⵵ Çß°í, Compose Dynamic ThemeÀ̳ª Filled Slider Compose °°Àº ¿ÀÇ ¼Ò½º ¶óÀ̺귯¸®¸¦ ¸¸µé¾î ¹èÆ÷ÇØ Google Dev Library¿¡ ¼Ò°³µÇ±âµµ Çß´Ù.

Çö ¶óÀÎÇ÷¯½º ¾Èµå·ÎÀÌµå °³¹ßÀÚ. Àü ÇÏÀÌÆÛÄ¿³ØÆ® ¾Èµå·ÎÀÌµå °³¹ßÀÚ, Ƽ¸Æ½ºµ¥ÀÌÅÍ ¿¬±¸¿ø, ÀΰøÀ§¼º¿¬±¸¼Ò ´ëÇпø»ý ¿¬±¸¿ø.
KAIST Àü±â¹×ÀüÀÚ°øÇкΠ¼®»ç, °í·Á´ëÇб³ Àü±âÀüÀÚÀüÆÄ°øÇкΠÇлç, °í·Á´ëÇб³ º¸°ÇÁ¤Ã¥°ü¸®ÇкΠÇлç, ÀÎõ¿Ü±¹¾î°íµîÇб³ Á¹¾÷.

¸ñÂ÷

1Àå ½º·¹µå ±â¹Ý ÀÛ¾÷ÀÇ ÇÑ°è¿Í ÄÚ·çƾÀÇ µîÀå

1.1. JVM ÇÁ·Î¼¼½º¿Í ½º·¹µå
1.2. ´ÜÀÏ ½º·¹µåÀÇ ÇÑ°è¿Í ¸ÖƼ ½º·¹µå ÇÁ·Î±×·¡¹Ö
1.2.1. ´ÜÀÏ ½º·¹µå ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÇÑ°è
1.2.2. ¸ÖƼ ½º·¹µå ÇÁ·Î±×·¡¹ÖÀ» ÅëÇÑ ´ÜÀÏ ½º·¹µåÀÇ ÇÑ°è ±Øº¹
1.3. ½º·¹µå, ½º·¹µåÇ®À» »ç¿ëÇÑ ¸ÖƼ ½º·¹µå ÇÁ·Î±×·¡¹Ö
1.3.1. Thread Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¹æ¹ý°ú ÇÑ°è
1.3.2. Executor ÇÁ·¹ÀÓ¿÷À» ÅëÇØ ½º·¹µåÇ® »ç¿ëÇϱâ
1.3.3. ÀÌÈÄÀÇ ¸ÖƼ ½º·¹µå ÇÁ·Î±×·¡¹Ö°ú ÇÑ°è
1.4. ±âÁ¸ ¸ÖƼ ½º·¹µå ÇÁ·Î±×·¡¹ÖÀÇ ÇÑ°è¿Í ÄÚ·çƾ
1.4.1. ±âÁ¸ ¸ÖƼ ½º·¹µå ÇÁ·Î±×·¡¹ÖÀÇ ÇÑ°è
1.4.2. ÄÚ·çƾÀº ½º·¹µå ºí·ÎÅ· ¹®Á¦¸¦ ¾î¶»°Ô ±Øº¹Çϴ°¡?
1.5. ¿ä¾à

2Àå ÄÚ·çƾ °³¹ß ȯ°æ ¼³Á¤

2.1. ÀÎÅÚ¸®Á¦ÀÌ ¾ÆÀ̵ð¾î ¼³Ä¡ ¹× µÑ·¯º¸±â
2.1.1. ÀÎÅÚ¸®Á¦ÀÌ ¾ÆÀ̵ð¾î ¼³Ä¡Çϱâ58
2.2. ÄÚƲ¸° ÇÁ·ÎÁ§Æ® »ý¼ºÇÏ°í È­¸é ±¸¼º »ìÆ캸±â
2.2.1. ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ
2.2.2. IDE ±¸¼º »ìÆ캸±â
2.3. ù ÄÚ·çƾ ½ÇÇàÇϱâ
2.3.1. ÄÚ·çƾ ¶óÀ̺귯¸® Ãß°¡Çϱâ
2.3.2. ù ÄÚ·çƾ ½ÇÇàÇϱâ
2.4. ÄÚ·çƾ µð¹ö±ë ȯ°æ ¼³Á¤Çϱâ
2.4.1. ½ÇÇà ÁßÀÎ ½º·¹µå Ãâ·ÂÇϱâ
2.4.2. ½ÇÇà ÁßÀÎ ÄÚ·çƾ À̸§ Ãâ·ÂÇϱâ
2.4.3. launch »ç¿ëÇØ ÄÚ·çƾ Ãß°¡·Î ½ÇÇàÇϱâ
2.4.4. CoroutineName »ç¿ëÇØ ÄÚ·çƾ¿¡ À̸§ Ãß°¡Çϱâ
2.5. ¿ä¾à

3Àå CoroutineDispatcher

3.1. CoroutineDispatcher¶õ ¹«¾ùÀΰ¡?
3.1.1. CoroutineDispatcherÀÇ µ¿ÀÛ »ìÆ캸±â
3.1.2. CoroutineDispatcherÀÇ ¿ªÇÒ
3.2. Á¦ÇÑµÈ µð½ºÆÐó¿Í ¹«Á¦ÇÑ µð½ºÆÐó
3.3. Á¦ÇÑµÈ µð½ºÆÐó »ý¼ºÇϱâ
3.3.1. ´ÜÀÏ ½º·¹µå µð½ºÆÐó ¸¸µé±â
3.3.2. ¸ÖƼ ½º·¹µå µð½ºÆÐó ¸¸µé±â
3.4. CoroutineDispatcher »ç¿ëÇØ ÄÚ·çƾ ½ÇÇàÇϱâ
3.4.1. launchÀÇ ÆĶó¹ÌÅÍ·Î CoroutineDispatcher »ç¿ëÇϱâ
3.4.2. ºÎ¸ð ÄÚ·çƾÀÇ CoroutineDispatcher »ç¿ëÇØ ÀÚ½Ä ÄÚ·çƾ ½ÇÇàÇϱâ
3.5. ¹Ì¸® Á¤ÀÇµÈ CoroutineDispatcher
3.5.1. Dispatchers.IO
3.5.2. Dispatchers.Default
3.5.3. limitedParallelism »ç¿ëÇØ Dispatchers.Default ½º·¹µå »ç¿ë Á¦ÇÑÇϱâ
3.5.4. °øÀ¯ ½º·¹µåÇ®À» »ç¿ëÇÏ´Â Dispatchers.IO¿Í Dispatchers.Default4
3.5.5. Dispatchers.Main
3.6. ¿ä¾à

4Àå ÄÚ·çƾ ºô´õ¿Í Job

4.1. joinÀ» »ç¿ëÇÑ ÄÚ·çƾ ¼øÂ÷ ó¸®
4.1.1. ¼øÂ÷ 󸮰¡ ¾È µÉ °æ¿ìÀÇ ¹®Á¦
4.1.2. join ÇÔ¼ö »ç¿ëÇØ ¼øÂ÷ ó¸®Çϱâ
4.2. joinAllÀ» »ç¿ëÇÑ ÄÚ·çƾ ¼øÂ÷ ó¸®
4.2.1. joinAll ÇÔ¼ö
4.2.2. joinAll ÇÔ¼ö »ç¿ëÇØ º¸±â
4.3. CoroutineStart.LAZY »ç¿ëÇØ ÄÚ·çƾ Áö¿¬ ½ÃÀÛÇϱâ
4.3.1. Áö¿¬ ½ÃÀÛÀ» »ìÆ캸±â À§ÇÑ Áغñ
4.3.2. CoroutineStart.LAZY »ç¿ëÇØ ÄÚ·çƾ Áö¿¬ ½ÃÀÛÇϱâ
4.4. ÄÚ·çƾ Ãë¼ÒÇϱâ
4.4.1. cancel »ç¿ëÇØ Job Ãë¼ÒÇϱâ
4.4.2. cancelAndJoinÀ» »ç¿ëÇÑ ¼øÂ÷ ó¸®
4.5. ÄÚ·çƾÀÇ Ãë¼Ò È®ÀÎ
4.5.1. delay¸¦ »ç¿ëÇÑ Ãë¼Ò È®ÀÎ
4.5.2. yield¸¦ »ç¿ëÇÑ Ãë¼Ò È®ÀÎ
4.5.3. CoroutineScope.isActive¸¦ »ç¿ëÇÑ Ãë¼Ò È®ÀÎ
4.6. ÄÚ·çƾÀÇ »óÅÂ¿Í JobÀÇ »óÅ º¯¼ö
4.6.1. JobÀÇ »óŸ¦ Ãâ·ÂÇÏ´Â ÇÔ¼ö ¸¸µé±â
4.6.2. »ý¼º »óÅÂÀÇ ÄÚ·çƾ
4.6.3. ½ÇÇà Áß »óÅÂÀÇ ÄÚ·çƾ
4.6.4. ½ÇÇà ¿Ï·á »óÅÂÀÇ ÄÚ·çƾ
4.6.5. Ãë¼Ò ÁßÀÎ ÄÚ·çƾ
4.6.6. Ãë¼Ò ¿Ï·áµÈ ÄÚ·çƾ
4.6.7. »óÅ Á¤¸®
4.7. ¿ä¾à

5Àå async¿Í Deferred

5.1. async »ç¿ëÇØ °á±£°ª ¼ö½ÅÇϱâ
5.1.1. async »ç¿ëÇØ Deferred ¸¸µé±â
5.1.2. await¸¦ »ç¿ëÇÑ °á±£°ª ¼ö½Å
5.2. Deferred´Â Ư¼öÇÑ ÇüÅÂÀÇ JobÀÌ´Ù
5.3. º¹¼öÀÇ ÄÚ·çƾÀ¸·ÎºÎÅÍ °á±£°ª ¼ö½ÅÇϱâ
5.3.1. await¸¦ »ç¿ëÇØ º¹¼öÀÇ ÄÚ·çƾÀ¸·ÎºÎÅÍ °á±£°ª ¼ö½ÅÇϱâ
5.3.2. awaitAllÀ» »ç¿ëÇÑ °á±£°ª ¼ö½Å
5.3.3. Ä÷º¼Ç¿¡ ´ëÇØ awaitAll »ç¿ëÇϱâ
5.4. withContext
5.4.1. withContext·Î async-await ´ëüÇϱâ
5.4.2. withContextÀÇ µ¿ÀÛ ¹æ½Ä
5.4.3. withContext »ç¿ë ½Ã ÁÖÀÇÁ¡
5.5. ¿ä¾à

6Àå CoroutineContext

6.1. CoroutineContextÀÇ ±¸¼º ¿ä¼Ò
6.2. CoroutineContext ±¸¼ºÇϱâ
6.2.1. CoroutineContext°¡ ±¸¼º ¿ä¼Ò¸¦ °ü¸®ÇÏ´Â ¹æ¹ý
6.2.2. CoroutineContext ±¸¼º
6.2.3. CoroutineContext ±¸¼º ¿ä¼Ò µ¤¾î¾º¿ì±â
6.2.4. ¿©·¯ ±¸¼º ¿ä¼Ò·Î ÀÌ·ïÁø CoroutineContext ÇÕÄ¡±â
6.2.5. CoroutineContext¿¡ Job »ý¼ºÇØ Ãß°¡Çϱâ
6.3. CoroutineContext ±¸¼º ¿ä¼Ò¿¡ Á¢±ÙÇϱâ
6.3.1. CoroutineContext ±¸¼º ¿ä¼ÒÀÇ Å°
6.3.2. Å°¸¦ »ç¿ëÇØ CoroutineContext ±¸¼º ¿ä¼Ò¿¡ Á¢±ÙÇϱâ
6.4. CoroutineContext ±¸¼º ¿ä¼Ò Á¦°ÅÇϱâ
6.4.1. minusKey »ç¿ëÇØ ±¸¼º ¿ä¼Ò Á¦°ÅÇϱâ
6.4.2. minusKey ÇÔ¼ö »ç¿ë ½Ã ÁÖÀÇÇÒ Á¡
6.5. ¿ä¾à

7Àå ±¸Á¶È­µÈ µ¿½Ã¼º

7.1. ½ÇÇà ȯ°æ »ó¼Ó
7.1.1. ºÎ¸ð ÄÚ·çƾÀÇ ½ÇÇà ȯ°æ »ó¼Ó
7.1.2. ½ÇÇà ȯ°æ µ¤¾î¾º¿ì±â
7.1.3. »ó¼ÓµÇÁö ¾Ê´Â Job
7.1.4. ±¸Á¶È­¿¡ »ç¿ëµÇ´Â Job
7.2. ÄÚ·çƾÀÇ ±¸Á¶È­¿Í ÀÛ¾÷ Á¦¾î
7.2.1. Ãë¼ÒÀÇ ÀüÆÄ
7.2.2. ºÎ¸ð ÄÚ·çƾÀÇ ÀÚ½Ä ÄÚ·çƾ¿¡ ´ëÇÑ ¿Ï·á ÀÇÁ¸¼º
7.3. CoroutineScope »ç¿ëÇØ ÄÚ·çƾ °ü¸®Çϱâ
7.3.1. CoroutineScope »ý¼ºÇϱâ
7.3.2. ÄÚ·çƾ¿¡°Ô ½ÇÇà ȯ°æÀ» Á¦°øÇÏ´Â CoroutineScope
7.3.3. CoroutineScope¿¡ ¼ÓÇÑ ÄÚ·çƾÀÇ ¹üÀ§
7.3.4. CoroutineScope Ãë¼ÒÇϱâ
7.3.5. CoroutineScope È°¼ºÈ­ »óÅ ȮÀÎÇϱâ
7.4. ±¸Á¶È­¿Í Job
7.4.1. runBlocking°ú ·çÆ® Job
7.4.2. Job ±¸Á¶È­ ±ú±â
7.4.3. Job »ç¿ëÇØ ÀϺΠÄÚ·çƾ¸¸ Ãë¼ÒµÇÁö ¾Ê°Ô ¸¸µé±â
7.4.4. »ý¼ºµÈ JobÀÇ ºÎ¸ð¸¦ ¸í½ÃÀûÀ¸·Î ¼³Á¤Çϱâ
7.4.5. »ý¼ºµÈ JobÀº ÀÚµ¿À¸·Î ½ÇÇà ¿Ï·áµÇÁö ¾Ê´Â´Ù
7.5. ¿ä¾à

8Àå ¿¹¿Ü ó¸®

8.1. ÄÚ·çƾÀÇ ¿¹¿Ü ÀüÆÄ
8.1.1. ÄÚ·çƾ¿¡¼­ ¿¹¿Ü°¡ ÀüÆĵǴ ¹æ½Ä
8.1.2. ¿¹Á¦·Î ¾Ë¾Æº¸´Â ¿¹¿Ü ÀüÆÄ
8.2. ¿¹¿Ü ÀüÆÄ Á¦ÇÑ
8.2.1. Job °´Ã¼¸¦ »ç¿ëÇÑ ¿¹¿Ü ÀüÆÄ Á¦ÇÑ
8.2.2. SupervisorJob °´Ã¼¸¦ »ç¿ëÇÑ ¿¹¿Ü ÀüÆÄ Á¦ÇÑ
8.2.3. supervisorScope¸¦ »ç¿ëÇÑ ¿¹¿Ü ÀüÆÄ Á¦ÇÑ
8.3. CoroutineExceptionHandler¸¦ »ç¿ëÇÑ ¿¹¿Ü ó¸®
8.3.1. CoroutineExceptionHandler »ý¼º
8.3.2. CoroutineExceptionHandler »ç¿ë
8.3.3. 󸮵ÇÁö ¾ÊÀº ¿¹¿Ü¸¸ ó¸®ÇÏ´Â CoroutineExceptionHandler
8.3.4. CoroutineExceptionHandler°¡ ¿¹¿Ü¸¦ ó¸®Çϵµ·Ï ¸¸µé±â
8.3.5. CoroutineExceptionHandler´Â ¿¹¿Ü ÀüÆĸ¦ Á¦ÇÑÇÏÁö ¾Ê´Â´Ù
8.4. try catch¹®À» »ç¿ëÇÑ ¿¹¿Ü ó¸®
8.4.1. try catch¹®À» »ç¿ëÇØ ÄÚ·çƾ ¿¹¿Ü ó¸®Çϱâ
8.4.2. ÄÚ·çƾ ºô´õ ÇÔ¼ö¿¡ ´ëÇÑ try catch¹®Àº ÄÚ·çƾÀÇ ¿¹¿Ü¸¦ ÀâÁö ¸øÇÑ´Ù
8.5. asyncÀÇ ¿¹¿Ü ó¸®
8.5.1. asyncÀÇ ¿¹¿Ü ³ëÃâ
8.5.2. asyncÀÇ ¿¹¿Ü ÀüÆÄ
8.6. ÀüÆĵÇÁö ¾Ê´Â ¿¹¿Ü
8.6.1. ÀüÆĵÇÁö ¾Ê´Â CancellationException
8.6.2. ÄÚ·çƾ Ãë¼Ò ½Ã »ç¿ëµÇ´Â JobCancellationException
8.6.3. withTimeOut »ç¿ëÇØ ÄÚ·çƾÀÇ ½ÇÇà ½Ã°£ Á¦ÇÑÇϱâ
8.7. ¿ä¾à

9Àå ÀϽà Áß´Ü ÇÔ¼ö

9.1. ÀϽà Áß´Ü ÇÔ¼ö¿Í ÄÚ·çƾ
9.1.1. ÀϽà Áß´Ü ÇÔ¼ö¶õ ¹«¾ùÀΰ¡?
9.1.2. ÀϽà Áß´Ü ÇÔ¼ö´Â ÄÚ·çƾÀÌ ¾Æ´Ï´Ù
9.1.3. ÀϽà Áß´Ü ÇÔ¼ö¸¦ º°µµÀÇ ÄÚ·çƾ»ó¿¡¼­ ½ÇÇàÇϱâ
9.2. ÀϽà Áß´Ü ÇÔ¼öÀÇ »ç¿ë
9.2.1. ÀϽà Áß´Ü ÇÔ¼öÀÇ È£Ãâ °¡´É ÁöÁ¡
9.2.2. ÀϽà Áß´Ü ÇÔ¼ö¿¡¼­ ÄÚ·çƾ ½ÇÇàÇϱâ
9.3. ¿ä¾à

10Àå ÄÚ·çƾÀÇ ÀÌÇØ

10.1. ¼­ºê·çƾ°ú ÄÚ·çƾ
10.1.1. ·çƾ°ú ¼­ºê·çƾ
10.1.2. ¼­ºê·çƾ°ú ÄÚ·çƾÀÇ Â÷ÀÌ
10.2. ÄÚ·çƾÀÇ ½º·¹µå ¾çº¸
10.2.1. delay ÀϽà Áß´Ü ÇÔ¼ö¸¦ ÅëÇØ ¾Ë¾Æº¸´Â ½º·¹µå ¾çº¸
10.2.2. join°ú awaitÀÇ µ¿ÀÛ ¹æ½Ä ÀÚ¼¼È÷ ¾Ë¾Æº¸±â
10.2.3. yield ÇÔ¼ö È£ÃâÇØ ½º·¹µå ¾çº¸Çϱâ
10.3. ÄÚ·çƾÀÇ ½ÇÇà ½º·¹µå
10.3.1. ÄÚ·çƾÀÇ ½ÇÇà ½º·¹µå´Â °íÁ¤ÀÌ ¾Æ´Ï´Ù
10.3.2. ½º·¹µå¸¦ ¾çº¸ÇÏÁö ¾ÊÀ¸¸é ½ÇÇà ½º·¹µå°¡ ¹Ù²îÁö ¾Ê´Â´Ù
10.4. ¿ä¾à

11Àå ÄÚ·çƾ ½ÉÈ­

11.1. °øÀ¯ »óŸ¦ »ç¿ëÇÏ´Â ÄÚ·çƾÀÇ ¹®Á¦¿Í µ¥ÀÌÅÍ µ¿±âÈ­
11.1.1. °¡º¯ º¯¼ö¸¦ »ç¿ëÇÒ ¶§ÀÇ ¹®Á¦Á¡
11.1.2. JVMÀÇ ¸Þ¸ð¸® °ø°£ÀÌ Çϵå¿þ¾î ¸Þ¸ð¸® ±¸Á¶¿Í ¿¬°áµÇ´Â ¹æ½Ä
11.1.3. °øÀ¯ »óÅ¿¡ ´ëÇÑ ¸Þ¸ð¸® °¡½Ã¼º ¹®Á¦¿Í ÇØ°á ¹æ¹ý
11.1.4. °øÀ¯ »óÅ¿¡ ´ëÇÑ °æÀï »óÅ ¹®Á¦¿Í ÇØ°á ¹æ¹ý
11.2. CoroutineStartÀÇ ´Ù¾çÇÑ ¿É¼Çµé »ìÆ캸±â
11.2.1. CoroutineStart.DEFAULT
11.2.2. CoroutineStart.ATOMIC
11.2.3. CoroutineStart.UNDISPATCHED
11.3. ¹«Á¦ÇÑ µð½ºÆÐó
11.3.1. ¹«Á¦ÇÑ µð½ºÆÐó¶õ?
11.3.2. ¹«Á¦ÇÑ µð½ºÆÐóÀÇ Æ¯Â¡
11.4. ÄÚ·çƾÀÇ µ¿ÀÛ ¹æ½Ä°ú Continuation
11.4.1. Continuation Passing Style
11.4.2. ÄÚ·çƾÀÇ ÀϽà Áß´Ü°ú Àç°³·Î ¾Ë¾Æº¸´Â Continuation
11.4.3. ´Ù¸¥ ÀÛ¾÷À¸·ÎºÎÅÍ °á°ú ¼ö½ÅÇØ ÄÚ·çƾ Àç°³Çϱâ
11.5. ¿ä¾à

12Àå ÄÚ·çƾ ´ÜÀ§ Å×½ºÆ®

12.1. ´ÜÀ§ Å×½ºÆ® ±âÃÊ
12.1.1. ´ÜÀ§ Å×½ºÆ®¶õ ¹«¾ùÀΰ¡?
12.1.2. Å×½ºÆ® ȯ°æ ¼³Á¤Çϱâ
12.1.3. °£´ÜÇÑ Å×½ºÆ® ¸¸µé°í ½ÇÇàÇϱâ
12.1.4. @BeforeEach ¾î³ëÅ×À̼ÇÀ» »ç¿ëÇÑ Å×½ºÆ® ȯ°æ ¼³Á¤
12.1.5. Å×½ºÆ® ´õºíÀ» »ç¿ëÇØ ÀÇÁ¸¼º ÀÖ´Â °´Ã¼ Å×½ºÆ®Çϱâ
12.2. ÄÚ·çƾ ´ÜÀ§ Å×½ºÆ® ½ÃÀÛÇϱâ
12.2.1. ù ÄÚ·çƾ Å×½ºÆ® ÀÛ¼ºÇϱâ
12.2.2. runBlockingÀ» »ç¿ëÇÑ Å×½ºÆ®ÀÇ ÇÑ°è
12.3. ÄÚ·çƾ Å×½ºÆ® ¶óÀ̺귯¸®
12.3.1. ÄÚ·çƾ Å×½ºÆ® ¶óÀ̺귯¸® ÀÇÁ¸¼º ¼³Á¤Çϱâ
12.3.2. TestCoroutineScheduler »ç¿ëÇØ °¡»ó ½Ã°£¿¡¼­ Å×½ºÆ® ÁøÇàÇϱâ
12.3.3. TestCoroutineScheduler¸¦ Æ÷ÇÔÇÏ´Â StandardTestDispatcher
12.3.4. TestScope »ç¿ëÇØ °¡»ó ½Ã°£¿¡¼­ Å×½ºÆ® ÁøÇàÇϱâ
12.3.5. runTest »ç¿ëÇØ Å×½ºÆ® ¸¸µé±â
12.4. ÄÚ·çƾ ´ÜÀ§ Å×½ºÆ® ¸¸µé¾î º¸±â
12.4.1. ÄÚ·çƾ ´ÜÀ§ Å×½ºÆ®¸¦ À§ÇÑ ÄÚµå ÁغñÇϱâ
12.4.2. FollowerSearcher Ŭ·¡½º Å×½ºÆ® ÀÛ¼ºÇϱâ
12.5. ÄÚ·çƾ Å×½ºÆ® ½ÉÈ­
12.5.1. ÇÔ¼ö ³»ºÎ¿¡¼­ »õ·Î¿î ÄÚ·çƾÀ» ½ÇÇàÇÏ´Â °´Ã¼¿¡ ´ëÇÑ Å×½ºÆ®
12.5.2. backgroundScope¸¦ »ç¿ëÇØ Å×½ºÆ® ¸¸µé±â
12.6. ¿ä¾à