Slide 1

Slide 1 text

4QFBLFSMӂకജ 아마도 Effective 한 Kotlin উ֞ೞࣁਃই݃ب&GGFDUJWFೠ௏ౣܽഝਊߨਸߊ಴ೡӂకജੑפ׮

Slide 2

Slide 2 text

ബҗ੸ੋ,PUMJOࢎਊਸਤ೧ঌইࠅղਊ ✓ оةࢿਸਤೠ ✓ 1SPQFSUZ ✓ 4DPQFGVODUJPO ✓ 4FRVFODF ✓ $PSPVUJOFT

Slide 3

Slide 3 text

가독성을 위한 ݢ੷оةࢿਸਤೠݻо૑ߑߨਸ࢓ಝࠇפ׮

Slide 4

Slide 4 text

оةࢿਸਤೠ DMBTT5FTU\ QSJWBUFWBMN/BNF4USJOHOBNF ژח QSJWBUFWBMOBNF4USJOHOBNF ^ ੿׹਷হ૑݅௏٘ஶ߮࣌੉೙ਃೣ਷ঌࣻ੓׮ ൔೞѱࠅࣻ੓ח੹৉߸ࣻо૑ܳաৌ೮णפ׮ ই݃ഥࢎ௏٘ীࢲبо૑ݽفܳൔೞѱࠅࣻ੓ਸబؘ ௏٘ஶ߮࣌੉೙ਃೣਸঌࣻ੓ભ

Slide 5

Slide 5 text

оةࢿਸਤೠ௏٘ஶ߮࣌ଵҊޙࢲ ✓ (PPHMF+BWB$POWFOUJPOT ✓ "041+BWB$POWFOUJPOT ✓ "OESPJE,PUMJOTUZMFHVJE ௏٘ஶ߮࣌ଵҊೡࣻ੓חޙࢲо૑ޙࢲо੓ਵפଵҊೞࣁਃ IUUQTHPPHMFHJUIVCJPTUZMFHVJEFKBWBHVJEFIUNM IUUQTTPVSDFBOESPJEDPNTFUVQDPOUSJCVUFDPEFTUZMF IUUQTEFWFMPQFSBOESPJEDPNLPUMJOTUZMFHVJEF

Slide 6

Slide 6 text

оةࢿਸਤೠ௏٘ஶ߮࣌ଵҊޙࢲ ✓ (PPHMF+BWB$POWFOUJPOT ✓ "041+BWB$POWFOUJPOT ✓ "OESPJE,PUMJOTUZMFHVJE

Slide 7

Slide 7 text

оةࢿਸਤೠ௏٘ஶ߮࣌ଵҊޙࢲ ✓ (PPHMF+BWB$POWFOUJPOT ✓ "041+BWB$POWFOUJPOT ✓ "OESPJE,PUMJOTUZMFHVJE "OESPJE,PUMJOTUZMFHVJEܳଵҊೞݶJGޙٍী઺Қഐ୊ܻী؀೧ࢲഛੋೡࣻ੓णפ׮ ੉ޙࢲ࢚ਵۿূఠܳӝળਵ۽઺Қഐ੄೙ਃࢿਸ঱әೞա ੉ࠗ࠙ب௏٘ஶ߮࣌ਵ۽૑੿೧فחѱજਸ٠೤פ׮

Slide 8

Slide 8 text

оةࢿਸਤೠ௏٘੿۳ ௏٘੿۳ࠗఠद੘ೞݶજ਷ؘউ٘۽੉٘झౚ٣য়੄ࢸ੿$PEF4UZMFਸࣻ੿ೡࣻ੓णפ׮ +BWB௏٘झఋੌਸ"OESPJE۽ೠߣࢸ੿೧فݶજणפ׮ р഑௏٘झఋੌ੉ࢸ੿উغয੓ח҃਋о੓ਸࣻ੓ਵפ ࢎ੹ীׂ۞઱ݶજणפ׮

Slide 9

Slide 9 text

оةࢿਸਤೠ௏٘੿۳ فߣ૩۽ח,PUMJO ,PUMJO਷о૑о੓חؘ ࠁా਷୐ߣ૩,PUMJOTUZMFHVJEFܳӝࠄਵ۽ࢎਊೞח٠೤פ׮

Slide 10

Slide 10 text

оةࢿਸਤೠ௏٘੿۳ 9.-੄҃਋ࢤпࠁ׮੗઱"OESPJE$PEF4UZMF੸ਊ੉উغয੓ח҃਋о݆णפ׮ ࢤпաदݶԙೠߣׂ۞ࢲ੸ਊ೧઱ࣁਃ

Slide 11

Slide 11 text

Property 사용 ௏٘ஶ߮࣌੉ա੿۳ਸ࢓ಝࠁওחؘ 1SPQFSUZࢎਊߨਸ࢓ಝࠁѷणפ׮

Slide 12

Slide 12 text

1SPQFSUZࢎਊ ✓ ,PUMJO߸ࣻח1SPQFSUZܳ੉ਊೞৈೣࣻ୊ۢࢎਊೡࣻب੓׮ WBSQSPQFSUZ/BNF<1SPQFSUZ5ZQF><QSPQFSUZ@JOJUJBMJ[FS> <HFUUFS> <TFUUFS> ࢤпࠁ׮1SPQFSUZܳੜޅࢎਊೞѱغח҃਋о੓णפ׮ ߸ࣻ۽ࢲ੄ഝਊبоמೞҊ $VTUPNHFUUFSTFUUFSٜܳ݅যࢲࢎਊೡࣻ੓ӝٸޙীੜഝਊೣ੉೙ਃ೤פ׮

Slide 13

Slide 13 text

1SPQFSUZࢎਊ DMBTT6TFS*OGP\ QSJWBUFWBS@OBNF4USJOH OVMM WBMOBNF4USJOH HFU @OBNFUBLF*G\JUOVMM^  ^ 1SPQFSUZࢎਊীࢲޙઁחহ׮ ੉௏٘ח1SPQFSUZࢎਊࢿীޙઁоহח௏٘ੑפ׮

Slide 14

Slide 14 text

1SPQFSUZࢎਊޙઁ੼ਸٜ݅যࠁ੗ QSJWBUFWBSOBNF-FOHUI*OU QSJWBUFWBSVTF/BNF#PPMFBOGBMTF SFUVSOJG VTF/BNFOPU \ WBMSFU@OBNFUBLF*G\JUOVMM^  OBNF-FOHUISFUMFOHUI VTF/BNFUSVF ^FMTF\ 6TFE DMBTT6TFS*OGP\ QSJWBUFWBS@OBNF4USJOH OVMM QSJWBUFWBSOBNF-FOHUI*OU QSJWBUFWBSVTF/BNF#PPMFBOGBMTF WBMOBNF4USJOH HFU \ SFUVSOJG VTF/BNFOPU \ WBMSFU@OBNFUBLF*G\JUOVMM^  OBNF-FOHUISFUMFOHUI VTF/BNFUSVF SFU ^FMTF\ 6TFE ^ ^ ^ Ӓېࢲખ؊ࠂ੟ೞѱޙઁ੼ਸٜ݅যࠁওणפ׮ OBNF੉ۄח1SPQFSUZীOBNF-FOHIU VTF/BNF੉ۄחчਸ୶о೧ࢲHFU/BNFਸೞݶয়ز੘ਸ୶о೧ࠁওणפ׮

Slide 15

Slide 15 text

1SPQFSUZࢎਊޙઁ੼ਸٜ݅যࠁ੗ ✓ 1SPQFSUZ੉ܴ੉OBNF੉૑݅ ✓ TJ[Fܳ੷੢ೞҊ੓Ҋ  ✓ VTF/BNF#PPMFBOчా೧ೠߣ݅OBNFܻఢ ױࣽOBNFܻఢਵ۽ࢤпೞҊॵ׮ݶޙઁоࢤӡࣻ੓׮ ৻ࠗীࢲࢎਊೞחੑ੢ীࢲױࣽOBNFਸഐ୹ਸೞݶOBNF੉য়૑ঋҊ׮ܲч੉য়חয়ܨоߊࢤ೤פ׮ ੉۞ݶOBNF੄੉ܴ݅ঌҊ੓חࢎਊ੗חਗ஖ঋחѾҗܻܳఢ߉ѱغҊ  OBNF੉ۄח1SPQFSUZחࢎप࢚ࢎਊೞ૑ޅೞח߸ࣻоؼࣻ੓ભ

Slide 16

Slide 16 text

1SPQFSUZࢎਊदܙ੉೙ਃೞ׮ ✓ 1SPQFSUZоಞೞ׮Ҋೞ૑݅ݽفоز੄ೞחߑߨਸޖदೞ૑ঋইঠೠ׮ ✓ &GGFDUJWF,PUMJO଼ਸӝળਵ۽ ✓ ࢚కܳաకմ׮߸ࣻ 1SPQFSUZ  ✓ ೯زਸաఋմ׮ೣࣻ &GGFDUJWF,PUMJO଼ਸӝળਵ۽ח 1SPQFSUZח࢚కܳաకաب۾ҳࢿ೧ঠ೤פ׮ খীࢲ੘ࢿೠ௏٘ח߸ࣻоইצೣࣻ੄৉ೡਸೞҊ੓যҳ࠙੉೙ਃ೤פ׮

Slide 17

Slide 17 text

1SPQFSUZࢎਊदܙ੉೙ਃೞ׮ GVOHFU0OMZ0OF/BNF 4USJOH JG VTF/BNFOPU \ WBMSFU@OBNFUBLF*G\JUOVMM^  OBNF-FOHUISFUMFOHUI VTF/BNFUSVF SFU ^FMTF\ 6TFE ^ খীࢲ੘ࢿೠ1SPQFSUZOBNF੉ইצ ೣࣻ۽੉ܴࠗఠݺഛೞѱ੿੄ೞҊ ࢎਊೞب۾੿ܻೣ੉೙ਃ

Slide 18

Slide 18 text

Scope Functions فߣ૩۽4DPQFGVODUJPOTਸঌইࠇद׮

Slide 19

Slide 19 text

4DPQF'VODUJPOࢎਊ ✓ SVOSFDFJWFSܳֈѹ઱ח҃਋ ✓ XJUIQBSBNFUFS۽ֈѹ઱ח҃਋ ✓ BQQMZSFDFJWFSܳֈѹ઱ח҃਋ ✓ BMTPSFDFJWFSܳֈѹ઱ח҃਋ ✓ MFUSFDFJWFSܳֈѹ઱ח҃਋ ✓ UBLF*GSFDFJWFSܳֈѹ઱ח҃਋ ✓ UBLF6OMFTTSFDFJWFSܳֈѹ઱ח҃਋ 4DPQFGVODUJPO਷ઙܨо׮নೞҊ чਸযڃधਵ۽੹׳߉Ҋ যځೠч੉ܻఢؼ૑੿೧ઉ੓णפ׮

Slide 20

Slide 20 text

4DPQF'VODUJPO೦࢚જਸө EBUBDMBTT*NBHF3FTQPOTF  WBMJNBHF-JTU-JTU*NBHF*UFN3FTQPOTF  WBMOFYU#PPMFBO  EBUBDMBTT*NBHF*UFN3FTQPOTF  WBMJNBHF6SM4USJOH  WBMJNBHF8JEUI*OU  WBMJNBHF)FJHIU*OU  WBMJNBHF5ZQF4USJOH  ࢲߡ۽ࠗఠ੹׳߉ח׮חо੿ਵ۽JNBHF-JTU৬OFYUী؀ೠ੿ࠁоನೣغয੓חؘ੉ఠܳೞաҳࢿ೮णפ׮ ੉ؘ੉ఠܳഝਊೡٸ4DPQFGVODUJPOਸࢎਊ೧ࠁ۰Ҋೞחؘযڃ੢ױ੼੉੓ח૑ঌইࠁભ

Slide 21

Slide 21 text

4DPQF'VODUJPO೦࢚જਸө ✓ ݽف/VMMBCMFчਸӝ߈ਵ۽׮਺੄ઑѤীݏחчਸ଺ইࠁ੗ ✓ ݽٚч੉/PU/VMMੋ҃਋ী݅࢜۽਍EBUBDMBTTܳࢤࢿೞৈ7JFXীࢲࢎਊೠ׮ ࢲߡ۽ࠗఠ੹׳߉ח׮חо੿ਵ۽JNBHF-JTU৬OFYUী؀ೠ੿ࠁоನೣغয੓חؘ੉ఠܳೞաҳࢿ೮णפ׮ ੉ؘ੉ఠܳഝਊೡٸ4DPQFGVODUJPOਸࢎਊ೧ࠁ۰Ҋೞחؘযڃ੢ױ੼੉੓ח૑ঌইࠁભ

Slide 22

Slide 22 text

4DPQF'VODUJPO೦࢚જਸө GVOMPBE*NBHF \ JNBHF3FTQPOTFJNBHF-JTU MFU\ JUGPS&BDI\JNBHF JNBHFJNBHF6SM MFU\ JNBHFJNBHF5ZQF MFU\ JNBHFJNBHF8JEUI MFU\ JNBHFJNBHF)FJHIU MFU\ *NBHF4UBUF  JNBHF6SMJNBHFJNBHF6SM  JNBHF5ZQFJNBHFJNBHF5ZQF  JNBHF8JEUIJNBHFJNBHF8JEUI  JNBHF)FJHIUJNBHFJNBHF)FJHIU   ^ ^ ^ ^ ^ ^ ^ 4DPQFGVODUJPOਸӓঈਵ۽ࢎਊ೧ࠌणפ׮ *G؀नOVMM୓௼ܳೞҊࢎਊೞӝए਍ MFU\^ਸࢎਊ೧ࠁওणפ׮ ݽٚч੉/PU/VMM੐ਸഛੋೞҊ࢜۽਍*NBHF4UBUFٜܳ݅ب۾୊ܻ೮णפ׮

Slide 23

Slide 23 text

4DPQF'VODUJPO೦࢚જਸө ൔ൤ࠅࣻ੓ח੢ಿ௏٘оٜ݅য઎חؘ ӭՔೞ૑بjࢎਊࢿ੉֫૑بঋणפ׮

Slide 24

Slide 24 text

4DPQF'VODUJPO೦࢚જਸө ✓ ੉੿ب۽೧ঠೠ׮ݶߑߨ਷ѐ ✓ TBGF-FUਸഝਊTUBDL0WFSGMPXଵҊ ✓ ӒրJGޙਸഝਊ IUUQTTUBDLPWFSGMPXDPNRVFTUJPOTNVMUJQMFWBSJBCMFMFUJOLPUMJO 4DPQFGVODUJPOਸഝਊೞחѪ਷જਵա Ҷ੉੷ۧѱ੘ࢿ೧ঠೡө  ؀উ਷ަө  ѾҴ؀উ਷TUBDL0WFSGMPXীৢۄ৬੓חTBGF-FUਸഝਊೞѢա ӒրJGޙਸࢎਊೞחѪੑפ׮

Slide 25

Slide 25 text

4DPQF'VODUJPO೦࢚જਸө GVOMPBE*NBHF \ JNBHF3FTQPOTFJNBHF-JTU MFU\ JUGPS&BDI\JNBHF JG JNBHFJNBHF6SMOVMMJNBHFJNBHF5ZQFOVMMJNBHFJNBHF8JEUI OVMMJNBHFJNBHF)FJHIUOVMM \ *NBHF4UBUF  JNBHF6SMJNBHFJNBHF6SM  JNBHF5ZQFJNBHFJNBHF5ZQF  JNBHF8JEUIJNBHFJNBHF8JEUI  JNBHF)FJHIUJNBHFJNBHF)FJHIU   ^ ^ ^ ^ ੉҃਋JGܳ੘ࢿೞҊ /PU/VMMੋчਸоઉয়חѱ؊ӭՔ೤פ׮ ௏٘оةࢿب֫ই૑૑ঋҊ ࢎਊࢿبڄয૑ח4DPQF'VODUJPOਸ੉҃਋Ҷ੉ࢎਊೞ૑ঋחಞ੉જભ

Slide 26

Slide 26 text

4DPQF'VODUJPO೦࢚જਸө WJFX.PEFMVQEBUF7JFX\ JUQMVT BBBBBB MFU\ UWSVO\ UFYUBCDEJU ^ ^ ^ it੉ ࢤۚغয ੓׮ it੉ ࢤۚغয ੓׮ This scope ৈӝࢲ ݈ೞח it਷ য٣ੌө? ೠ઴ঀ׮दࠁݶ௏ౣܽ਷ۈ׮಴അীࢲ౵ۄݫఠоѐ੉ݶJUਵ۽؀୓ؾפ׮ ߣ૩઴੄JU਷VQEBUF7JFX੄JU੉Ҋ QMVT੉റMFU਷UWSVO\^উীࢲࢎਊೡJU੉غѷભ ࢎपૣ਷௏٘ۄࢲ߄۽੉೧ೡࣻ੓૑݅ ઺рী઴઴੉ࢎ੉ী੓׮ݶJU੉য٣ࢲࠗఠ৳ח૑ঌӝয۵Ҋ  য٣ࢲחMFU য٣ࢲחSVOਸࢎਊ೧ঠೞח૑ݺഛೞ૑ঋਸࣻ੓णפ׮

Slide 27

Slide 27 text

4DPQF'VODUJPOѾҴ ✓ ࢲ۽׮ܲ੉೧بо੓ਸࣻ੓׮ ✓ SVOMFUBQQMZBMTPܳ݃ҳॳѱغݶ੉ч੉য٣ীࢲ৳ח૑ঌࣻহ׮ ✓ ݽٚѤ੸׼൤ ੿ܻೞݶ 4DPQFGVODUJPO੸ਊೞחؘ੓যࢲ۽׮ܲ੉೧بоઓ੤ೡࣻ੓Ҋ  ݃ҳॳѱغݶ੉ч੉য٣ীࢲࠗఠ৳ח૑ঌӝоয۵ભ ѾҴݽٚѤ੸׼൤ ঌݏѱ ೙ਃೞ׮ݶ௏٘ஶ߮࣌ਸ੿੄ೞҊࢎਊೞחѦ୶ୌ೤פ׮

Slide 28

Slide 28 text

Sequence 활용하기

Slide 29

Slide 29 text

4FRVFODFഝਊೞӝ੹ী GVOUFTU \ WBMJUFNT*OU3BOHF WBMTVNJUFNT GJMUFS\ QSJOU 'JMUFSJU  ߣ۽Ӓ JU ^ NBQ\ QSJOU .BQJU  ߣ۽Ӓ JU  ^ TVN  QSJOUMO TVNTVN  ^ Filter1, Filter2, Filter3, Filter4, Filter5, Filter6, Filter7, Map6, Map7, sum 26 Ѿҗ 4FRVFODFഝਊೞӝ੹ীGJMUFS NBQਸഝਊ೧*OU3BOHFܳঌইࠇפ׮ ੉௏٘੄ز੘Ѿҗחয়ܲଃҗэणפ׮ 'JMUFSܳݢ੷׮ೞҊ NBQਸ੉য୊ܻ೤פ׮

Slide 30

Slide 30 text

4FRVFODFഝਊೞӝ੹ী !5FTU QVCMJDGJOBMWPJEUFTU \ CZUFWBS *OU3BOHFJUFNTOFX*OU3BOHF WBS   $PMMFDUJPOEFTUJOBUJPOJWJW $PMMFDUJPO OFX"SSBZ-JTU ࢜۽਍ஸۑࢶࢤࢿ ࢤۚ XIJMF WBSIBT/FYU \ JUFNJWJWWBSOFYU  JU /VNCFS JUFNJWJW JOU7BMVF  WBS'JMUFS JU   4ZTUFNPVUQSJOU WBS  JG JU \ࠁ׮௾҃਋BEE EFTUJOBUJPOJWJWBEE JUFNJWJW  ^ ^ ৈӝө૑оGJMUFSܳ୊ܻೠѾҗ ࢜۽਍$PMMFDUJPOਸࢤࢿೠ׮ EFTUJOBUJPOJWJW $PMMFDUJPO OFX"SSBZ-JTU $PMMFDUJPOT,UDPMMFDUJPO4J[F0S%FGBVMU UIJTNBQJW   NBQਸ୊ܻೠ׮ XIJMF WBSIBT/FYU \ JUFNJWJWWBSOFYU  JU /VNCFS JUFNJWJW JOU7BMVF  WBS.BQ JU   4ZTUFNPVUQSJOU WBS  *OUFHFSWBSJU ߓ୊ܻറ੷੢ EFTUJOBUJPOJWJWBEE WBS  ^ ஸ۩࣌੄чਸTVNೠ׮ JOUTVN$PMMFDUJPOT,UTVN0G*OU *UFSBCMF -JTU EFTUJOBUJPOJWJW  4USJOHWBSTVN TVN 4ZTUFNPVUQSJOUMO WBS  ^ ղࠗ௏٘ܳ࢓ಝࠁݶ੉ਬܳঌࣻ੓חؘ  ѐ੄XIJMFޙ੉ઓ੤ೣਸঌࣻ੓णפ׮ ୐ߣ૩חGJMUFS فߣ૩חNBQ੄ؘ੉ఠܳ୊ܻ೤פ׮ ࢎ੉ࢎ੉࢜۽਍$PMMFDUJPOਸ݅٘חѪبഛੋೡࣻ੓णפ׮

Slide 31

Slide 31 text

4FRVFODFഝਊೞӝ੹ী GVOUFTU \ WBMTVNJUFNT BT4FRVFODF  GJMUFS\ QSJOU 'JMUFSJU   JU ^ NBQ\ QSJOU .BQJU   JU  ^ TVN  ^ // ӝઓ Iterator Filter1, Filter2, Filter3, Filter4, Filter5, Filter6, Filter7, Map6, Map7, sum 26 // sequence Filter1, Filter2, Filter3, Filter4, Filter5, Filter6, Map6, Filter7, Map7, sum 26 Ѿҗ ੉ߣূBT4FRVFODFܳ୶оೞৈѾҗܳ࢓ಝࠁݶ 'JMUFS .BQ੉ࢎ੉ࢎ੉ՙয੓਺ਸঌࣻ੓णפ׮ द௫झоহח҃਋חೞաೞա୊ܻೞ૑݅ BT4FRVFODFܳ୶оೣਵ۽ॄࣽର୊ܻೣਸঌࣻ੓ભ

Slide 32

Slide 32 text

4FRVFODFഝਊೞӝ ✓ ؀ਊ۝੄ؘ੉ఠ୊ܻदࢤӡࣻ੓ח୶о-JTUࢤࢿਸߑ૑ೡࣻ੓׮ ✓ ইې੄௏٘৬ਬࢎೠز੘ਸೠ׮ WBSTVN JUFNTGPS&BDI\ QSJOU 'JMUFSJU   JG JU \ QSJOU .BQJU   TVNJU  ^ ^ ੉҃਋؀ਊ۝ؘ੉ఠ୊ܻदࢤӡࣻ੓ח୶о-JTUࢤࢿਸߑ૑ೡࣻ੓Ҋ  ࠁాGPSޙೞա۽JGܳ੉ਊ೧୊ܻೞח௏٘৬ਬࢎೠߑߨ੄Ѿҗܳࠅࣻ੓णפ׮

Slide 33

Slide 33 text

4FRVFODFоԙજ਷Ѥইפ׮ ✓ ױࣽೠؘ੉ఠܳ4FRVFODFೠ׮Ҋࢿמ੉જই૑חѤইפ׮ ✓ JOMJOFೣࣻ۽಴അغחNBQ GJMUFS١ਸഝਊೞחѱয়൤۰ࢿמ੉જਸࣻ੓׮ ✓ ؘ੉ఠ઺ࠂઁѢ ೙ఠ୊ܻ١ؘ੉ఠоҕ੉݆਷҃਋4FRVFODFоب਑ؼࣻ੓׮ ✓ ݒߣ࢜۽਍MJTUܳ݅٘חؘٜযоח࠺ਊ੉௼׮ݶ4FRVFODFоજਸࣻ੓׮ Ӓۧ׮Ҋ೦࢚4FRVFODFоજ਷ࢿמਸղחѪ਷ইתפ׮ খীࢲ੘ࢿ೮؍ࢠ೒௏٘ܳӝળਵ۽BT4FRVFODFоয়൤۰؊וܽѾҗܳоઉ৳Ҋ  JOMJOFਸೞחGJMUFSNBQ੄Ѿҗоয়൤۰؊જ਷Ѿҗܳоઉ৳णפ׮ ݒߣ࢜۽਍ܻझ౟ܳ݅٘חؘٜযоח࠺ਊਸ઴੉Ҋर׮ݶBT4FRVFODFоബਯ੸ੌࣻ੓Ҋ ࢿמ୓௼റࢎਊೞदӡj

Slide 34

Slide 34 text

Coroutines 활용

Slide 35

Slide 35 text

$PSPVUJOFTഝਊ ✓ SVO#MPDLJOH ✓ SVO#MPDLJOHਸز੘दఃݶ#MPDLJOHदఃҊ׮਺੘সਸ୊ܻೠ׮ ✓ ੘স੉՘աݶز੘दఅࠗ࠙੄#MPDLJOHਸ೧ઁೞҊجইр׮ ✓ (MPCBM4DPQF ✓ জز੘рױೞա੄4DPQFਸഝਊೠ׮ ✓ ױೞա੄4DPQFਸഝਊೞ׮ࠁפ-JGFDZDMFਸ୊ܻೞӝয۵׮ ✓ $PSPVUJOF4DPQF ✓ -JGFDZDMFਸ୊ܻೞӝऔҊ ࢤࢿҗزदীࢎਊ੉оמೞ׮ উ٘۽੉٘ীࢲഝਊೡѪ੉פ-JGFDZDMFਸੜ૑ఃب۾ѐߊ೧ঠೠ׮ ,PUMJOޙࢲীࠁݶSVO#MPDLJOHਸݒ਋ൔೞѱࠅࣻ੓णפ׮ ӒܻҊࢤпࠁ׮݆਷Ӗҗࢠ೒ীࢲ(MPCBM4DPQFਸൔೞѱࢎਊೞח҃਋о੓חؘ ੉חݽف"OESPJEജ҃җחݏ૑ঋणפ׮ "OESPJEীࢲח-JGFDZDMFਸੜ૑ெѐߊਸ೧ঠ೧$PSPVUJOF4DPQFਸഝਊ೧ঠ೤פ׮ (MPCBM4DPQFҗSVO#MPDLJOH੉যځೠޙઁо੓ח૑ೞաೞա࢓ಝࠁѷणפ׮

Slide 36

Slide 36 text

runBlocking

Slide 37

Slide 37 text

SVO#MPDLJOHࢎਊೞӝ DMBTT.BJO7JFX.PEFM7JFX.PEFM \ GVOMPBE SVO#MPDLJOH\ BOESPJEVUJM-PHX 5&.1 5ISFBE\5ISFBEDVSSFOU5ISFBE ^  EFMBZ   ^ ^ SVO#MPDLJOHਸਤ௏٘୊ۢഝਊೠ׮ݶޖटੌ੉ࢤӡөਃ

Slide 38

Slide 38 text

SVO#MPDLJOHࢎਊदޙઁ੼ ✓ 6*ীࢲSVO#MPDLJOHਸഐ୹ೞݶ6*झா઴۞ܳ#MPDLJOHೞҊز੘ೠ׮ ✓ 6*оݥ୸࢚క۽*0ٚ.BJOٚ੘সਸೞҊ 6*ܳഝࢿചೠ׮ ✓ ੉दр੉ӡয૑ݶ"/3 "QQMJDBUJPO/PU3FTQPOEJOH ੉ߊࢤೠ׮ ✓ 3FBTPO*OQVUEJTQBUDIJOHUJNFEPVU 8BJUJOHUPTFOEOPOLFZFWFOU CFDBVTFUIFUPVDIFEXJOEPXIBTOPUGJOJTIFEQSPDFTTJOHDFSUBJOJOQVU FWFOUTUIBUXFSFEFMJWFSFEUPJUPWFSNTBHP8BJURVFVFMFOHUI 8BJURVFVFIFBEBHFNT 
 1BSFOUDPNFYBNQMFNZBQQMJDBUJPO.BJO"DUJWJUZ ✓ ѾҴSVO#MPDLJOHਸࢎਊೞ૑ঋইঠೠ׮ উ٘۽੉٘.BJO5ISFBEח6*झா઴۞ੑפ׮SVO#MPDLJOH਷੉੹੄झா઴۞ܳӒ؀۽ࢎਊ೤פ׮ 6*झா઴۞ীࢲ௏٘੘ࢿೞݶ׼োೞѱب6*ীࢲ#MPDLJOHೞҊز੘೤פ׮ SVO#MPDLJOHউীࢲز੘ೞח௏٘о*0ٚ6*࢚ٚҙহणפ׮ੌױ#MPDLJOHറز੘೤פ׮

Slide 39

Slide 39 text

SVO#MPDLJOHࢎਊदޙઁ੼ ✓ 6*ীࢲSVO#MPDLJOHਸഐ୹ೞݶ6*झா઴۞ܳ#MPDLJOHೞҊز੘ೠ׮ ✓ 6*оݥ୸࢚క۽*0ٚ.BJOٚ੘সਸೞҊ 6*ܳഝࢿചೠ׮ ✓ ੉दр੉ӡয૑ݶ"/3 "QQMJDBUJPO/PU3FTQPOEJOH ੉ߊࢤೠ׮ ✓ 3FBTPO*OQVUEJTQBUDIJOHUJNFEPVU 8BJUJOHUPTFOEOPOLFZFWFOU CFDBVTFUIFUPVDIFEXJOEPXIBTOPUGJOJTIFEQSPDFTTJOHDFSUBJOJOQVU FWFOUTUIBUXFSFEFMJWFSFEUPJUPWFSNTBHP8BJURVFVFMFOHUI 8BJURVFVFIFBEBHFNT 
 1BSFOUDPNFYBNQMFNZBQQMJDBUJPO.BJO"DUJWJUZ ✓ ѾҴSVO#MPDLJOHਸࢎਊೞ૑ঋইঠೠ׮ Ӓۧ׮Ҋ*0ਤীࢲز੘ೞפޙઁহ׮Ҋࢤпೞ؊ۄب ղࠗ੸ਵ۽(MPCBM4DPQFਸഝਊ೤פ׮ -JGFDZDMFਸੜҙܻೞৈѐߊоמೞ׮ݶjࢎਊೞࣁਃ ׮݅ ׮਺ীঌইࠅ(MPCBM4DPQFਸঌইࠄ׮ݶॳ૑ঋইঠೡ੉ਬחೞա؊୶оؾפ׮

Slide 40

Slide 40 text

GlobalScope

Slide 41

Slide 41 text

(MPCBM4DPQFഝਊ GVOMPBE(MPCBM (MPCBM4DPQFMBVODI\ BOESPJEVUJM-PHX 5&.1 5ISFBE\5ISFBEDVSSFOU5ISFBE ^  DPVOU  EFMBZ   MBVODI %JTQBUDIFST.BJO \ VQEBUF7JFX DPVOUDPVOU5ISFBE\5ISFBEDVSSFOU5ISFBE ^  ^ ^ (MPCBM4DPQFਸഝਊೞӝਤೠࢠ೒ੑפ׮

Slide 42

Slide 42 text

(MPCBM4DPQFࢎਊदޙઁ੼ ✓ (MPCBM4DPQF਷জز੘઺ೞա݅ࢤࢿغחयӖహ PCKFDUDMBTT  ✓ (MPCBM4DPQF਷ചݶױਤ۽ز੘೧ঠೞח"OESPJE৬חݏ૑חঋ਺ ✓ -JGFDZDMFਸ୊ܻೞӝਤ೧ࢲ߹بҙܻ੘সਸ೧ঠೠ׮ ✓ ചݶױਤ۽$PSPVUJOF4DPQFਸഝਊೞחಞ੉ҙܻೞӝ؊औ׮ ✓ য়ܨ୊ܻח$PSPVUJOF4DPQFҗزੌೞ׮ ✓ 4VQFSWJTJPS+PC  $PSPVUJOF&YDFQUJPO)BOEMFSਸMBVODIীࢎਊ ✓ ୡӝ$POUFYUо&NQUZ$PSPVUJOF$POUFYU۽೦࢚ୡӝചغয੓׮ ✓ DPOUFYU߸҃਷MBVODI۽୊ܻ ✓ OFX$PSPVUJOF$POUFYUܳ੉ਊೞৈ߸҃ (MPCBM4DPQF਷$PSPVUJOF4DPQFਸ࢚ࣘ߉חयӖహੑפ׮ $PSPUVJOF4DPQFਸ૒੽ٜ݅যࢎਊೞ૑ঋח؀ࠗ࠙੄௏٘ীࢲ(MPCBM4DPQਸOFX$PSPVUJOF$POUFYUܳࢤࢿ೧ࢎਊ೤פ׮ यӖహ੉ۄח݈਷জ੉ز੘ೞח୊਺ࠗఠ՘ө૑৔ೱਸ޷஖ݴ ੜޅ׮ܖݶݫݽܻܼ੄ߊࢤبоמೞҊ জ੄ઙܐبੌযզࣻ੓णפ׮

Slide 43

Slide 43 text

(MPCBM4DPQFয়ܨ୊ܻח ✓ 4VQFSWJTPS+PC ✓ &YDFQUJPOਸ࢚ਤQBSFOUীѱా૑ೞ૑ঋח׮ѾҴDIJMEٜীࢲߊࢤೠ &YDFQUJPO੉׮ܲDIJMEী৔ೱਸ઱૑ঋח׮ ✓ $PSPVUJOF&YDFQUJPO)BOEMFS ✓ &YDFQUJPOਸ߉ই୊ܻೠ׮

Slide 44

Slide 44 text

(MPCBM4DPQFয়ܨ୊ܻח GVOMPBE(MPCBM (MPCBM4DPQFMBVODI FYDFQUJPO 4VQFSWJTPS+PC \ ࢤۚ (MPCBM4DPQFMBVODI\ ࢤۚ ^ UISPX&YDFQUJPO &SSPS  ࢤۚ ^ QSJWBUFWBMFYDFQUJPO$PSPVUJOF&YDFQUJPO)BOEMFS\DPSPVUJOF$POUFYU UISPXBCMF ৈӝࢲ৘৻୊ܻ ^ р഑ਤ௏٘୊ٜۢ݅যࢲॳݶজ੄ز੘ী৔ೱਸ޷஖૑ঋਸөࢤпೡࣻ੓णפ׮ ೞ૑݅੉௏٘ח୽࠙൤पࣻೡࣻ੓णפ׮־ҵо־ۅೡࣻ੓ਵפ ࢎਊೞ૑ঋחѱજѷणפ׮

Slide 45

Slide 45 text

(MPCBM4DPQFয়ܨ୊ܻח ✓ ੉ۧѱ୶оೞחѤ־ҵоपࣻೞӝऔ׮ ✓ য়ےदрߔӒۄ਍٘۽(MPCBM4DPQFਸ୊ܻೞ׮য়ܨоߊࢤೡٸয়ܨ୊ܻܳೞ૑ ঋও׮ݶز੘઺લਸࣻ੓׮ ""$7JFX.PEFMҗ$PSPVUJOF4DPQFਸࢎਊೞחѦ୶ୌೠ׮ ੉۠ࠗ࠙਷ੜޅػѾҗޛਸٜ݅Ҋ জী৔ೱب޷சࣻ੓णפ׮ ೲਊೞ૑ঋইঠೞݴ ੉޷ੜٜ݅য૓""$7JFX.PEFM੄$PSPVUJOF4DPQFਸഝਊೞदӡ߄ۉפ׮

Slide 46

Slide 46 text

AAC-ViewModel 
 CoroutineScope

Slide 47

Slide 47 text

""$7JFX.PEFM$PSPVUJOF4DPQFഝਊ GVOMPBE7JFX.PEFM4DPQF WJFX.PEFM4DPQFMBVODI FYDFQUJPO \ BOESPJEVUJM-PHX 5&.1 5ISFBE\5ISFBEDVSSFOU5ISFBE ^  DPVOU  MBVODI\ EFMBZ   VQEBUF7JFX DPVOUDPVOU5ISFBE\5ISFBEDVSSFOU5ISFBE ^  ^ MBVODI\ EFMBZ   UISPX&YDFQUJPO &SSPS  ^ BOESPJEVUJM-PHF 5&.1 EFMBZ  VQEBUF7JFX DPVOUDPVOU5ISFBE\5ISFBEDVSSFOU5ISFBE ^  ^ QSJWBUFWBMFYDFQUJPO$PSPVUJOF&YDFQUJPO)BOEMFS\DPSPVUJOF$POUFYU UISPXBCMF ৈӝࢲ৘৻୊ܻ ^

Slide 48

Slide 48 text

""$7JFX.PEFMഝਊղࠗ௏٘ WBM7JFX.PEFMWJFX.PEFM4DPQF$PSPVUJOF4DPQF HFU \ WBMTDPQF$PSPVUJOF4DPQF UIJTHFU5BH +0#@,&:  JG TDPQFOVMM \ SFUVSOTDPQF ^ SFUVSOTFU5BH*G"CTFOU +0#@,&:  $MPTFBCMF$PSPVUJOF4DPQF 4VQFSWJTPS+PC  %JTQBUDIFST.BJOJNNFEJBUF  ^ JOUFSOBMDMBTT$MPTFBCMF$PSPVUJOF4DPQF DPOUFYU$PSPVUJOF$POUFYU $MPTFBCMF $PSPVUJOF4DPQF\ PWFSSJEFWBMDPSPVUJOF$POUFYU$PSPVUJOF$POUFYUDPOUFYU PWFSSJEFGVODMPTF \ DPSPVUJOF$POUFYUDBODFM  ^ ^ 7JFX.PEFM4DPQF਷ղࠗী੉৬э਷௏٘ܳ׸Ҋ੓णפ׮ 4VQFSWJTPS+PCਸୡӝചೞҊ੓য DIJME੄੘স੄&YDFQUJPO੉1BSFOUী৔ೱਸ޷஖૑ঋҊ  %JTQBUDIFST.BJOझா઴۞ܳࢎਊೞҊ੓णפ׮

Slide 49

Slide 49 text

$PSPVUJOF3FUSPGJUഝਊীࢲ GVOMPBE%BUB WJFX.PEFM4DPQFMBVODI\ XJUI$POUFYU %JTQBUDIFST*0 \ MPBESFUSPGJUEBUB ^ ^ GVOMPBE%BUB WJFX.PEFM4DPQFMBVODI\ MPBESFUSPGJUEBUB ^ ✓ XJUI$POUFYUоࢎपࠛ೙ਃೞ׮ ✓ 3FUSPGJUղࠗীࢲ*0झா઴۞ܳ੸ਊغয੓য ইې୊ۢ੘স೧بޙઁহ׮ 3FUSPGJUഝਊदীחXJUI$POUFYU۽*0झா઴۞ܳࢎਊೡ೙ਃоহणפ׮ ੉޷3FUSPGJUীࢲ*0झா઴۞ܳࠁ੢೧઱Ҋ੓णפ׮ ݅ড*0о೙ਃೠ҃਋ۄݶղࠗীࢲ۽ஸநदܳࢤࢿೞѢա ؘ੉ఠ୊ܻীࠗ׸੉غחࠗ࠙੉ߊࢤೞח҃਋ࢎਊೞࣁਃ ৘ (40/ஶߡ౴ਸ૒੽ೠ׮ ۽ஸநदܳ݅ٚ׮١

Slide 50

Slide 50 text

The end ੉ߣߊ಴חৈӝө૑੉Ҋ ٜয઱दҊࠊ઱࣊ࢲхࢎ೤פ׮ ؊݆਷ղਊ਷#MPHܳా೧੿ܻೞҊ੓ਵפଵҊೞࣁਃ IUUQTUIEFWUFDI

Slide 51

Slide 51 text

여기서부터 보너스 ੉ࠗ࠙਷ߊ಴ীನೣೞ૑ঋওਵա ղਊਸࢎ੹ীળ࠺೧فয୶о۽ҕਬ೤פ׮ ೧׼ࠗ࠙ীաৡղਊ਷࠶۽Ӓܳా೧ҕਬೡ৘੿੉޲۽ ଵҊೞࣁਃ

Slide 52

Slide 52 text

Data class의 equals/hashCode ߊ಴ীחহחղਊ

Slide 53

Slide 53 text

%BUBDMBTT ✓ FRVBMT IBTI$PEF  ✓ UP4USJOH ઁҕ ✓ DPNQPOFOU/ ೣࣻઁҕਵ۽ࢶ঱ࣽࢲ؀۽чਸDPNQPOFOU/ਵ۽ࢎਊоמ ✓ DPQZ ೣࣻܳઁҕೠ׮ ߊ಴ীחহחղਊ EBUBDMBTTחFRVBMT৬IBTI$PEF DPNQPOFOU/ DPQZܳ੗زਵ۽ٜ݅যસפ׮ IUUQTUIEFWUFDILPUMJOLPUMJO@FGGFDUJWF@

Slide 54

Slide 54 text

FRVBMT৬IBTI$PEF ✓ +BWB0CKFDUݺࣁীٮܲFRVBMTIBTI$PEF੿੄ ✓ $MBTTীFRVBMTܳ੿੄೮׮ݶ ߈٘दIBTI$PEFب੤੿੄೧ঠೠ׮ ✓ ѐё୓੄FRVBMTоزੌೞ׮ݶ߈٘दAIBTI$PEFAبزੌೠч੉ܻఢغযঠ ೠ׮ ✓ ੉۠ઑѤਸ૑ః૑ঋਸ҃਋)BTI.BQ )BTI4FU١੄ஸ۩࣌ࢎਊदޙઁоࢤӡ ࣻ੓׮ ߊ಴ীחহחղਊ +BWB0CKFDUݺࣁীٮۄFRVBMTIBTI$PEF੿੄ח੉ղਊҗэભ IUUQTUIEFWUFDILPUMJOLPUMJO@FGGFDUJWF@

Slide 55

Slide 55 text

FRVBMT৬IBTI$PEF૒੽ҳഅद EBUBDMBTT4PNFUIJOH3FTQPOTF  WBMOBNF4USJOH  WBMBHF*OU \ PWFSSJEFGVOIBTI$PEF *OU\ SFUVSO OBNF IBTI$PEF     BHF   ^ PWFSSJEFGVOFRVBMT PUIFS"OZ #PPMFBO\ SFUVSOJG UIJTPUIFS \ JG PUIFSJT4PNFUIJOH3FTQPOTF \ WBM OBNF BHF PUIFS SFUVSO*OUSJOTJDTBSF&RVBM OBNF BHF  ^ GBMTF ^FMTF\ USVF ^ ^ ^ ߊ಴ীחহחղਊ ૒੽IBTI$PEF FRVBMTܳҳഅೠ׮ݶਤ௏٘৬эणפ׮ IUUQTUIEFWUFDILPUMJOLPUMJO@FGGFDUJWF@

Slide 56

Slide 56 text

FRVBMT৬ݫݽܻ࠺Үߑߨ ✓ +BWBחইې৬э੉࠺Үೠ׮ ✓ FRVBMTч੉زੌೠ૑୓௼ೠ׮ ✓ ݫݽܻ࢚زੌೠё୓ੋ૑୓௼ೠ׮ ✓ LPUMJOחইې৬э੉࠺Үೠ׮ ✓ ч੉زੌೠ૑୓௼ೠ׮ ✓ ݫݽܻ࢚زੌೠ૑୓௼ೠ׮ ߊ಴ীחহחղਊ FRVBMT৬ݫݽܻ࠺Үח ਸࢎਊ೤פ׮ IUUQTUIEFWUFDILPUMJOLPUMJO@FGGFDUJWF@

Slide 57

Slide 57 text

FRVBMT৬ݫݽܻ࠺Үߑߨ GVOTUSJOH.FNPSZ \ WBMTPNFUIJOH*UFN0OF4PNFUIJOH3FTQPOTF  OBNFOBNF  BHF  JT4FMFDUFEGBMTF   WBMTPNFUIJOH*UFN5XP4PNFUIJOH3FTQPOTF  OBNFOBNF  BHF  JT4FMFDUFEGBMTF   QSJOUMO TPNFUIJOH*UFN0OFTPNFUIJOH*UFN5XP\TPNFUIJOH*UFN0OFTPNFUIJOH*UFN5XP^  QSJOUMO TPNFUIJOH*UFN0OFTPNFUIJOH*UFN5XP\TPNFUIJOH*UFN0OFTPNFUIJOH*UFN5XP^  QSJOUMO TPNFUIJOH*UFN0OFIBTI$PEF\TPNFUIJOH*UFN0OFIBTI$PEF ^  QSJOUMO TPNFUIJOH*UFN5XPIBTI$PEF\TPNFUIJOH*UFN5XPIBTI$PEF ^  ^ somethingItemOne == somethingItemTwo true somethingItemOne === somethingItemTwo false somethingItemOne hashCode -1052833319 somethingItemTwo hashCode -1052833319 Ѿҗ ߊ಴ীחহחղਊ LPUMJO੄EBUBDMBTTܳഝਊೣਵ۽ॄਤ৬э਷Ѿҗܳ঳ਸࣻ੓णפ׮ IUUQTUIEFWUFDILPUMJOLPUMJO@FGGFDUJWF@

Slide 58

Slide 58 text

Data class 정의를 DiffUtil에서 활용 ߊ಴ীחহחղਊ ੉ܳ੉ਊ೧3FDZDMFS7JFX੄%JGG6UJMীࢲ੄рױೞѱഛੋೡࣻ੓णפ׮ IUUQTUIEFWUFDILPUMJOLPUMJO@FGGFDUJWF@

Slide 59

Slide 59 text

%JGG6UJMীࢲഝਊೠ׮ݶ QSJWBUFDMBTT%JGG  QSJWBUFWBMPME*UFNT-JTU4FMFDU*UFN  QSJWBUFWBMOFX*UFNT-JTU4FMFDU*UFN %JGG6UJM$BMMCBDL \ PWFSSJEFGVOHFU0ME-JTU4J[F *OU PME*UFNTTJ[F PWFSSJEFGVOHFU/FX-JTU4J[F *OU OFX*UFNTTJ[F PWFSSJEFGVOBSF*UFNT5IF4BNF PME*UFN1PTJUJPO*OU OFX*UFN1PTJUJPO*OU  #PPMFBO\ WBMPME*UFNPME*UFNT WBMOFX*UFNOFX*UFNT SFUVSOPME*UFNOFX*UFN ^ PWFSSJEFGVOBSF$POUFOUT5IF4BNF PME*UFN1PTJUJPO*OU OFX*UFN1PTJUJPO*OU  #PPMFBO\ WBMPME*UFNPME*UFNT WBMOFX*UFNOFX*UFNT SFUVSOPME*UFNOFX*UFN ^ ^ ߊ಴ীחহחղਊ ੉௏٘੄Ѿҗחӯ߅ѢܻחѾҗܳࠅࣻ੓णפ׮੗ࣁೠղਊ਷ইې࠶۽Ӓܳా೧ഛੋೞࣁਃ IUUQTUIEFWUFDILPUMJOLPUMJO@FGGFDUJWF@

Slide 60

Slide 60 text

%JGG6UJMীࢲഝਊೠ׮ݶ QSJWBUFDMBTT%JGG  QSJWBUFWBMPME*UFNT-JTU4FMFDU*UFN  QSJWBUFWBMOFX*UFNT-JTU4FMFDU*UFN %JGG6UJM$BMMCBDL \ PWFSSJEFGVOHFU0ME-JTU4J[F *OU PME*UFNTTJ[F PWFSSJEFGVOHFU/FX-JTU4J[F *OU OFX*UFNTTJ[F PWFSSJEFGVOBSF*UFNT5IF4BNF PME*UFN1PTJUJPO*OU OFX*UFN1PTJUJPO*OU  #PPMFBO\ WBMPME*UFNPME*UFNT WBMOFX*UFNOFX*UFNT SFUVSOPME*UFNUJUMFOFX*UFNUJUMF ^ PWFSSJEFGVOBSF$POUFOUT5IF4BNF PME*UFN1PTJUJPO*OU OFX*UFN1PTJUJPO*OU  #PPMFBO\ WBMPME*UFNPME*UFNT WBMOFX*UFNOFX*UFNT SFUVSOPME*UFNOFX*UFN ^ ^ ߊ಴ীחহחղਊ ੉௏٘חখীࢲӯ߅Ѣܻ؍ࠗ࠙ਸࣻ੿ೞ৓णפ׮੗ࣁೠղਊ਷ইې࠶۽Ӓܳా೧ഛੋೞࣁਃ IUUQTUIEFWUFDILPUMJOLPUMJO@FGGFDUJWF@

Slide 61

Slide 61 text

inline 활용하기 ߊ಴ীחহחղਊ

Slide 62

Slide 62 text

JOMJOFഝਊೞӝ ✓ JOMJOFMBNCEBTध಴അਸೣԋೞחFYUFOTJPOীࢲ੊ݺ௿ېझࢤࢿ࠺ਊਸ઴ੌ ࣻ੓׮ ✓ OPJOMJOFMBNCEBTध಴അীࢲೣԋࢎਊਸೞ૑݅ ੉ೣࣻীࢲഐ୹ೞחೣࣻо JOMJOF੉ইצ҃਋ীࠢৈঠೠ׮ ✓ DSPTTJOMJOFMBNCEBTध಴അਸCMPDL\^ഋక۽ࢎਊೡٸࢎਊೡࣻ੓׮ ߊ಴ীחহחղਊ

Slide 63

Slide 63 text

JOMJOFഝਊೞӝ JOMJOFGVOMPBE%BUB  MPBE$BDIF#PPMFBO  OPJOMJOFPO-PBEFE 6OJU  DSPTTJOMJOFPO$BDIF 6OJU \ JG MPBE$BDIFOPU \ SVO/FUXPSL POMJOF PO-PBEFE  ^FMTF\ SVO/FUXPSL MPDBM  \ PO-PBEFE  DBDIF PO$BDIF  ^ ^ ^ GVOSVO/FUXPSL VSM4USJOH DBMMCBDL 6OJU \  ^ inlineਵ۽ ੊ݺ ೣࣻ ࢤࢿ ࠺ਊਸ ઴ੋ׮ inline੉ ইצ ೣࣻ ഐ୹ী ࢎਊೞӝ ਤ೧ noinline ഝਊ lambdas ध ಴അ উীࢲ ࢎਊೞӝ ਤ೧ crossinline ഝਊ ߊ಴ীחহחղਊ ࢠ೒௏٘ܳా೧JOMJOFҗDMPTFJOMJOF OPJOMJOF੄ഝਊبܳࠅࣻ੓णפ׮

Slide 64

Slide 64 text

JOMJOFഝਊೞӝ ✓ *OMJOF੿੄۽੊ݺೣࣻࢤࢿ࠺ਊਸ઴ੌࣻ੓যബਯࢿ੉֫ই૓׮ ✓ Ӓۢੌ߈ೣࣻীࢲبബҗܳࠅࣻ੓ਸө  ✓ ੌ߈ೣٜࣻ਷+7.௏٘प೯࠙ࢳਸా೧о੢੉੊੉غחߑߨਵ۽JOMJOFೠ׮ Ӓۡࣻبইקࣻب੓׮ "OESPJETUVEJPীࢲ੸ਊदڰח҃Ҋݫद૑ &YQFDUFEQFSGPSNBODFJNQBDUGSPNJOMJOJOHJTJOTJHOJGJDBOU *OMJOJOHXPSLTCFTUGPSGVODUJPOTXJUIQBSBNFUFSTPGGVODUJPOBMUZQFT ߊ಴ীחহחղਊ ԙJOMJOF੉೙ਃೠѪ਷ইתפ׮ +7.ীࢲ௏٘࠙ࢳਸా೧ബਯ੸ੋߑߨਵ۽JOMJOFਸ೧઱ӝٸޙীԙJOMJOFਸೡ೙ਃחহਵݴ ੜҳ࠙ೞৈࢎਊೞदӡ