°³¹ßÀÚ25½Ã
2017.01.24 / 15:35

´É·Â ÀÖ´Â °³¹ßÀÚ´Â ¾î¶»°Ô ¾Ë¾Æº¼ ¼ö ÀÖ³ª? by ȲÁؽĴÔ

XMaLL°ü¸®ÀÚ
Ãßõ ¼ö 473

»ýÈ°ÄÚµù ÆäÀ̽ººÏ¿¡ ȲÁؽĴԲ²¼­ ¿Ã¸®½Å ±ÛÀÔ´Ï´Ù.

(https://www.facebook.com/groups/codingeverybody/permalink/1501967613177103 )


"ÇØ¿Ü °³¹ß»çÀÇ Á¦ÀǸ¦ ¹Þ¾Ò´Ù°í ±Û¾´ÀÌ ÀÔ´Ï´Ù.

Áö³­ ±ÛÀº Á¦ »ý°¢ÀÌ»óÀ¸·Î ¸¹Àº ºÐµéÀÌ °øÀ¯ÇÏ´Â ¸ð½ÀÀ» º¸¾Ò°í, 
¶Ç ´Ü¼øÈ÷ °øÀ¯¸¦ ³Ñ¾î¼­ ¼­·Î ±ÇÇÏ´Â ¸ð½Àµµ º¸¾Ò½À´Ï´Ù.
±×¸®°í Àú¿¡°Ô ÀÚ½ÅÀÌ ¾ÕÀ¸·Î ¾îÂîÇÒÁö ¹®ÀÇÇÏ´Â ºÐµµ ÀÖ¾ú½À´Ï´Ù.

»ç½Ç, Áö³­ ±ÛÀº ±×Àú Á¦ °æÇè´ãÀÏ »ÓÀÔ´Ï´Ù.

±×·¡¼­ À̹ø¿¡´Â »ýÄÚ¿¡ githubÀ» ÅëÇØ ¸ðµâÀ» °ø°³ÇϽŠ±èÀç¿ø´ÔÀÇ µ¿ÀǸ¦ ¹Þ¾Æ ÄÚµå ¸®ºä¿Í ÇÔ²² 
ÇØ¿Ü CTO°¡ ¸»ÇÑ really impressed with the quality¿¡ ´ëÇؼ­ ÇÏ°í ½ÍÀº ¸»À» ¸îÀÚ Àû¾ú½À´Ï´Ù

ps. ´Ù¸¥ °÷À¸·Î ÆÛ°¡µµ µË´Ï´Ù."






´É·Â ÀÖ´Â °³¹ßÀÚ´Â ¾î¶»°Ô ¾Ë¾Æº¼ ¼ö ÀÖ³ª?



Á¦ »ý°¢º¸´Ùµµ Á¦ ±ÛÀº ´õ ¼¾¼¼ÀÌ¼Ç Çß´ø°Í °°½À´Ï´Ù.

¿ÀÆÛ°¡ ¿Ô´Ù°í Çصµ µüÈ÷ °¡Áöµµ ¾Ê¾Æ¼­ Å©°Ô »ý°¢ ¾ÈÇÏ°í »ì¾Ò´Âµ¥ ¸»ÀÌÁÒ.


¿©Æ°, Á¦ ±ÛÀÌ 400ȸ °¡±îÀÌ °øÀ¯°¡ µÇ¾ú½À´Ï´Ù.

°øÀ¯ÇÑ ºÐµé Áß¿¡¼­´Â ÀÌÁ¦ ¸· ÇÁ·Î±×·¡¹Ö °øºÎ¸¦ ½ÃÀÛÇÏ´Â ºÐµéÀ̳ª ÇöÁ÷ °³¹ßÀÚ´Â  ¹°·ÐÀÌ°í, »çÀå´Ôµéµµ º¸¿´½À´Ï´Ù. ±×¸®°í ³ª¸§ ¿µÇâ·ÂÀ» °¡Áø ºÐµéµµ ÀÖ´õ±º¿ä.

Àú¿¡°Ô ÀÚ½ÅÀÌ ¾î¶»°Ô ÇØ¾ßµÇ³Ä°í ¹®ÀÇÇϽŠºÐµéµµ ÀÖ½À´Ï´Ù.


¾Õ¼± Á¦ °æÇè´ãÀº ¼ÖÁ÷È÷ ÀÐÀ¸½Å ºÐµéÀÇ ÀÏ»óÀÌ ´Þ¶óÁö´Â °ÍÀº ¾Æ´Õ´Ï´Ù.

±×·¡¼­ À̹ø ±ÛÀº ÀоîÁֽŠºÐµéÀÌ ±¸Ã¼ÀûÀ¸·Î ¾î¶»°Ô ÇؾßÇÏ´ÂÁö¸¦ Àü´Þ ÇÒ ¼ö Àֱ⸦ ¹Ù¶ó¸é¼­  ¡°really impressed with the quality¡± ¿¡ ´ëÇؼ­ Á¦ »ý°¢À» Àû½À´Ï´Ù.



¼ÖÁ÷È÷ ¸»Çؼ­...


¿ì¸®³ª¶óÀÇ °³¹ß ¹®È­´Â ¾û¸ÁÀÔ´Ï´Ù. ÃÊÁß°í±ÞÀ¸·Î ±¸ºÐµÈ °³¹ßÀÚ µî±ÞÁ¦, °ú´ÙÇÑ ¾ß±Ù, ¹«¸®ÇÑ ÀÏÁ¤, ½ÅÀÔ °³¹ßÀÚ¿¡°Ô »ç¼öµµ ¾øÀÌ ´þ½â ÀÏÀ» ¸Ã±â´Â Çö½Ç, Çпø ¸»°í´Â ¹è¿ï °÷ÀÌ ¾ø´Â ȯ°æ µî ³¡ÀÌ ¾ø½À´Ï´Ù. ÇØ°áÀ» À§ÇØ ¿©·¯°¡Áö ³íÀÇ°¡ µÇ±äÇϳª ½ÅÅëÇÑ°ÍÀº ¾øÁÒ.


ÀÌ ¾Ç¼øȯ ¼Ó¿¡¼­ °³ÀÎÀÌ ¾îÂî ÇÒ ¼ö ÀÖ´Â °ÍÀÌ º°·Î ¾ø½À´Ï´Ù. (³×.. ÇïÁ¶¼±ÀÌÁÒ..)


ÇÏÁö¸¸ ¼±¼øȯÀÌµç ¾Ç¼øȯÀ̵ç Áß¿äÇÑ °í¸®°¡ Àֱ⠸¶·ÃÀÔ´Ï´Ù.

¼øȯÀ» °¡¼ÓÇÏ´øÁö ²÷¾î³¾¼ö ÀÖ´Â °í¸® ¸»ÀÔ´Ï´Ù.


Àú´Â °³¹ßÀÚÀÇ ´É·ÂÀ» ½Å·Ú¼ºÀÖ°Ô ¾Ë¾Æº¼ ¹æ¹ýÀÌ ÀÌ·± ¾Ç¼øȯÀ» ²÷À» ¼ö ÀÖ´Â °í¸®¶ó°í »ý°¢ÇÕ´Ï´Ù.

°³ÀÎÀ̵ç Á¶Á÷ÀÌµç ´É·ÂÀÖ´Â °³¹ßÀÚ¿Í ÇÔ²²ÇÏ¸é ¾Ç¼øȯ¿¡¼­ Å»Ãâ ÇÒ ¼ö ÀÖ´Ù°í »ý°¢ÇÕ´Ï´Ù.


±×·¡¼­ Àú´Â

´É·ÂÀÖ´Â °³¹ßÀڷκÎÅÍ ¹«¾ùÀ» ¾òÀ» ¼ö ÀÖ´ÂÁö?

±×¸®°í ¾î¶»°Ô ´É·ÂÀÖ´Â °³¹ßÀÚ¸¦ ±¸ºÐÇØ ³¾ ¼ö ÀÖ´ÂÁö?

¿¡ ´ëÇØ  Á¦ ¹æ¹ýÀ» °øÀ¯ÇÏ°í ÇÕ´Ï´Ù.


À̸¦ ¸¹Àº »ç¶÷µéÀÌ ¾Ë¸é

ÀÌ ¾Ç¼øȯÀÌ Á¶±ÝÀº ÇØ°áµÉ °ÍÀ̶ó°í ±â´ëÇϸç

Á¦ ¹æ½Ä°ú ±×¿¡ ÇÊ¿äÇÑ Code Quality°¡ ¹«¾ùÀÎÁö Àû½À´Ï´Ù.   




º»·Ð µé¾î°¡±â Àü¿¡..


°¨»ç¸¦ Ç¥ÇÒ ºÐÀÌ ÀÖ½À´Ï´Ù.  »ýÄÚ¿¡ easy-map ¼Ò½º¸¦ ¿Ã¸° wonism´ÔÀÔ´Ï´Ù.


github¿¡ ÀûÀýÇÑ ¼öÁØÀÇ ¼Ò½º¸¦ ¿Ã·ÁÁֽŠ´öºÐ¿¡

Á¦°¡  ÇØ¿ÜÀÇ CTO°¡ ¸»ÇÑ  Code Quality°¡ ¹«¾ùÀ» ¸»ÇÏ´ÂÁö ÀÛ°Ô ³ª¸¶ °øÀ¯ÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.




´É·ÂÀÖ´Â °³¹ßÀÚ¸¦ ¿Ö ¾Ë¾ÆºÁ¾ß Çϳª?


°³¹ßÀÚÀÇ ´É·ÂÀº ¿ì¸®³ª¶ó¿¡¼­ Åë¿ëµÇ´Â ÃÊÁß°í±Þ °æ·Â ±¸ºÐÀ¸·Î ÆÄ¾Ç ÇÒ ¼ö ¾ø½À´Ï´Ù.

ÇöÀç Á¦°¡ ±âÁØÀ¸·Î »ï´Â°Ç µå·¹Ç¶½º ±â¼ú ½Àµæ ¸ðÇüÀÔ´Ï´Ù. (ÀÚ¼¼ÇÑ°ÍÀº http://blog.lastmind.io/archives/593 Çѹø Àо¼¼¿ä.)


µå·¹Ç¶½º ¸ðµ¨°ú ¿ì¸®³ª¶óÀÇ ÃÊÁß°í±ÞÀº »ç½Ç»ó ºñ±³°¡ ºÒ°¡´ÉÇÕ´Ï´Ù.

¿¾³¯ µî±ÞÁ¦¸¦ µû¸£¸é ´ëÇÐ ³ª¿À°í °æ·Â 13³âÀ̸é Ư±ÞÀÔ´Ï´Ù. °³¹ßÀÚ°¡ 20³â°£ ÀÏÇÒ¼ö ÀÖ´Ù°í Çϸé, ÀüÁ÷ÇÏÁö ¾ÊÀ¸¸é ÀüüÀÇ 40%´Â Ư±ÞÀÌ °Ú³×¿ä. ½Ç»ó µå·¹Ç¶½º ¸ðµ¨¿¡¼­´Â 1%¸¸ expert¿¡ µµ´ÞÇÕ´Ï´Ù. ¼ýÀÚ¸¸ µûÁ®µµ ¹º°¡ ¸»ÀÌ ¾ÈµÇ´Â ±¸Á¶ÀÔ´Ï´Ù.  


¶ÇÇÑ ½´ÆÛ °³¹ßÀÚÀÇ ´É·Â¿¡ ´ëÇÑ °³³äÀÌ ¿ì¸®³ª¶ó´Â À߸ø µÇ¾î ÀÖ½À´Ï´Ù.

http://www.zdnet.co.kr/column/column_view.asp?artice_id=20141106211852

À­ ±ÛÀº ¿µ±¹ÀÇ °³¹ß¹®È­¸¦ üÇèÇÑ ±â»çÀÔ´Ï´Ù. ±Û¿¡¼­ ¾ð±ÞÇϵíÀÌ ½´ÆÛ °³¹ßÀڴ¸¹ÀÌ / »¡¸® ¸¸µå´Â »ç¶÷ÀÌ ¾Æ´Ï¶ó, ´Ù¸¥ »ç¶÷ÀÇ ½Ç¼ö / »ðÁúÀ» »çÀü¿¡ ¸·¾Æ³»´Â »ç¶÷ÀÔ´Ï´Ù.


ÇÁ·Î±×·¡¸Ó »ý»ê¼ºÀÇ Â÷ÀÌ°¡ 10¹è ÀÌ»óµµ ¹ú¾îÁø´Ù´Â°ÍÀº ÀÌ¹Ì °ø°ø¿¬ÇÑ »ç½ÇÀÔ´Ï´Ù. expert ·¹º§ÀÌ ¾Æ´Ï¾îµµ 3¹è Á¤µµ °³ÀÎ »ý»ê¼ºÀº ¿ì½À°Ô ¹ú¾îÁý´Ï´Ù.


ÇÏÁö¸¸ ´É·Â ÁÁÀº »ç¶÷À» Àß ´ë¿ìÇØ¾ß ÇÏ´Â ÀÌÀ¯´Â ±× »ç¶÷ÀÌ 3~4¹èÀÇ ÀÏÀ» Çϱ⠶§¹®¸¸ÀÌ ¾Æ´Õ´Ï´Ù. °ÔÀÓ¿¡¼­ È÷¾î·Î°¡ Á¤¸» ÁÁÀº ÀÌÀ¯´Â ÆÀ ¹öÇÁ°¡ Àֱ⶧¹®ÀÌÁÒ. °³¹ßÀÚµµ ¸¶Âù°¡Áö ÀÔ´Ï´Ù. º»ÀÎ »ý»ê¼ºµµ ÁÁÁö¸¸, ŸÀÎÀÇ ÇнÀ ¼Óµµ/»ý»ê¼º¸¦ ¿Ã·ÁÁÝ´Ï´Ù.




¶§¹®¿¡ ´É·ÂÀÖ´Â °³¹ßÀÚ´Â

Á¶Á÷ Àüü·Î´Â ÀÏÀ» È¿°úÀûÀ¸·Î ÇÒ¼ö ÀÖµµ·Ï ÇØÁÖ°í,

°³Àο¡°Ô´Â »¡¸® ½Ç·ÂÀ» Å°¿ï¼ö ÀÖ°Ô ÇØÁÝ´Ï´Ù.

(²À ¾Ë¾ÆºÁ¾ß ÇÒ °Í °°ÁÒ?)





¿ì¼± µå·¹Ç¶½º ¸ðµ¨À» ±âÁØÀ¸·Î ´É·ÂÀÖ´Â °³¹ßÀÚ´Â CompetentºÎÅÍÀÔ´Ï´Ù. ±×¸²¿¡¼­ º¸µíÀÌ Coach°¡ °¡´ÉÇÑ ·¹º§À̱⵵ ÇÕ´Ï´Ù. ±×¸®°í Á¦ °æÇè»ó ¿ì¸®³ª¶ó¿¡¼­ Competent ÀÌ»ó¿¡ ÇØ´çÇÏ´Â »ç¶÷Àº 10~20%¶ó°í »ý°¢ÇÕ´Ï´Ù.

¿©Æ°, Competent°¡ ±¸Ã¼ÀûÀ¸·Î ¹«¾ùÀ» ÇÒ ¼ö ÀÖ´Â »ç¶÷ÀÎÁö Àû¾î º¸°Ú½À´Ï´Ù.



1.  ¿µÇâ·Â ÀÖ´Â ºÐµé¿¡°Ô ÇÏ°í ½ÍÀº ¸»ÀÔ´Ï´Ù.


ÀÏ´Ü ¼öÁØ ÀÌ»ó¿¡ µµ´ÞÇÑ °³¹ßÀÚ¿¡°Ô ÆÀ ÀüüÀÇ °³¹ß »ý»ê¼ºÀ» ´Ã¸®µµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±â¼úÀ» ¸®µùÇÏ°Ô²û ±ÇÀ§¸¦ ½Ç¾îÁÖ¸é, ÆÀ »ý»ê¼ºÀ» 1.5¹è³ª ±× ÀÌ»óµµ ´Ã¸± ¼ö ÀÖ½À´Ï´Ù. Advanced Beginner´Â °³¹ß °úÁ¤¿¡¼­ µîÀåÇÏ´Â Áö·Ú¸¦ ÀüºÎ ¹â°í ÅÍÆ®·Á¼­ È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. ÇÏÁö¸¸ Competent¿¡ À̸£¸é Àý¹ÝÀº ÇÇÇؼ­ °¥¼ö°¡ ÀÖ½À´Ï´Ù. ÆÀ ÀüüÀÇ »ðÁú¿¡ ºüÁö´Â ÃÑ ½Ã°£ÀÌ ÁÙ¾îµé¸é ±×°Í¸¸ °è»êÇصµ ÆÀ »ý»ê¼ºÀÌ 1.2¹è´Â ÃæºÐÈ÷ ´Ã¾î³³´Ï´Ù.


´Ù¸¸ ¾ÆÁÖ Áß¿äÇÑ°Ç ÀÏ´Ü Competent¼öÁØ¿¡ µé¾î¼­¾ß ´Ù¸¥»ç¶÷À» ÄÚÄ¡ÇÏ´Â°Ô °¡´ÉÇÕ´Ï´Ù.

±³°ú¼­  ³»¿ëÀ» ÀüºÎ ¿Ü¿î Advanced Beginner¶óµµ ´Ù¸¥ »ç¶÷À» ÄÚÄ¡ÇÏ´Â °ÍÀº °ÅÀÇ ºÒ°¡´É ÇÕ´Ï´Ù. Competent´Â Áö½ÄÀÇ ¾çÀÌ ¸¹Àº°Ô ¾Æ´Ï¶ó ÁöÇý¸¦ °¡Áø°ÍÀÔ´Ï´Ù. (¹°·Ð Áö½ÄÀÇ ¾çµµ °æ·Â¸¸Å­ ÃæºÐÈ÷ ¹ÞÃÄÁÖÁö¸¸¿ä.) Competent ÀÌ»ó ¼öÁØÀº Á¤¸» ¾ó¸¶ ¾ÈµË´Ï´Ù. ÀÌ·± »ç¶÷À» ãÀ¸¸é Áß¿ëÇϽñ⠹ٶø´Ï´Ù. Áß¿ëÇ϶ó´Â °Ç ¿ù±Þ ´õ Áִ°ÍÀ¸·Î ³¡³»¶ó´Â ¼Ò¸®°¡ ¾Æ´Õ´Ï´Ù. ÆÀ Àüü°¡ CompetentÀÇ ¾÷¹«¹æ½ÄÀ» ¹è¿ï ¼ö ÀÖ°Ô²û °­±ÇÇÏ´Â °ÍÀÌ ÁÁ´Ù´Â ¼Ò¸®ÀÔ´Ï´Ù. Áö±ØÈ÷ °³ÀÎÀû »ý°¢ÀÌÁö¸¸ °¡º±°Ô ±ÇÀå ÇغÁ¾ß ¼Ò¿ë¾ø´Â °Í °°½À´Ï´Ù. ±×¸®°í Á¦°¡ ÆÀÀåÀ϶§´Â Àú´Â µ¶ÀçÀÚ ½ºÅ¸ÀÏÀ̱⵵ ÇÕ´Ï´Ù.




2. ½ÅÀÔ °³¹ßÀںеé°ú ´ëÇÐ 3~4Çгâ Á¤µµÀÇ Çлýµé¿¡°Ô ÇÏ°í ½ÍÀº ¸»ÀÔ´Ï´Ù.


ÀáÀç·ÂÀÌ ÀÖ´Â Advanced Beginner¶ó°í Çصµ Competent°¡ ±â¼úÀ» ±¸»çÇÏ´Â °ÍÀ» °üÂûÇÏÁö ¸øÇϸé, Æò»ý ½Ç·Â Çâ»óÀ» ÇÏÁö ¸øÇÒ °¡´É¼ºÀÌ ¸Å¿ì ³ô½À´Ï´Ù.

¸¶Âù°¡Áö·Î Competent´Â Proficient³ª Expert¸¦ ã¾Æ¼­ ¸ð¹æÇØ¾ß ¼ºÀå¿¡ À¯¸®ÇÕ´Ï´Ù.


ÀÚ½ÅÀÌ ´à¾Æ¾ß ÇÏ´Â ¸ð½ÀÀ» º¸Áö ¸øÇÑ´Ù´Â °ÍÀº

º°ÀÚ¸®µµ µî´ëµµ ¾øÀÌ ¸Á¸Á´ëÇØ¿¡¼­ ½Å´ë·úÀ» ã´Â °Í°ú ´Ù¸¦¹Ù ¾ø´Â ÀÏÀÔ´Ï´Ù.


¿©·¯ºÐµéÀº ¹«Á¶°Ç ½Ç·ÂÀÚÀÇ ¹ÙÁö¸¦ ºÙÀâ°í ´Ã¾îÁ®¾ß ÇÕ´Ï´Ù. Àü ±Û¿¡¼­ ½Ç·ÂÇâ»óÀ» À§ÇØ ¼ö´Ü ¹æ¹ýÀ» °¡¸®Áö ¸»¶ó°í Á¶¾ðÇß½À´Ï´Ù. ±× ±¸Ã¼ÀûÀÎ ½ÇÇà¹æ¹ýÀº Competent¸¦ ã¾Æ¼­ ¹«Á¶°Ç ¹°°í ´Ã¾îÁö¶ó´Â °ÍÀÔ´Ï´Ù. Á¦°¡ ±ÇÇÏ´Â°Ç  C++/JAVA 1000Á¦ Ç®±â, JAVA Ã¥ 10µ¶, µðÀÚÀÎ ÆÐÅÏ ¼¼¹Ì³ª ÀÌ·±°Ô ¾Æ´Õ´Ï´Ù. ¿©·¯ºÐÀÌ ¸ð¹æÇؾßÇÏ´Â ´õ ³ªÀº ±â¼úÀ» °¡Áø »ç¶÷Àº ±â²¯ÇØ¾ß 10~20% Á¤µµÀÔ´Ï´Ù. (ºÐ¸í ¾ó¸¶ ¾ÈµÇÁö¸¸ ±×·¸´Ù°í ãÀ» ¼ö ¾ø´Â Á¤µµ´Â ¾Æ´Õ´Ï´Ù) ÀÌ·± »ç¶÷À» ãÀ¸¸é ¹¹ Çϳª¶óµµ ´õ ¹è¿ì±â À§Çؼ­ ³ë·ÂÇؾßÇÏ´Â °ÍÀº ´ç¿¬ÇÑ°Å°í, ¿Ö ±×·¯´ÂÁö ÀÌÇØ°¡ °¡Áö ¾Ê´õ¶óµµ ±â¼úÀ» ¸ð¹æÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù. ¸ð¹æÇÏ°í È¥³ª°í, ¸ð¹æÇÏ°í È¥³ª°í... ÃÖ¼ÒÇÑ ±×·¸°Ô´Â ÇØ¾ß ÀÌÇØÀÇ ½Ç¸¶¸®¶óµµ ÀâÈ÷°Ô µË´Ï´Ù. ±×·¯ÀÚ¸é, °°ÀÌ ÀÏ ÇÒ ±âȸ°¡ ¿À¸é ±× ÀÏÀ» Åà Çϼ¼¿ä. ¸Ô°í »ç´Âµ¥ ÁöÀ常 ¾øÀ¸¸é °í¹ÎÇÒ ÇÊ¿ä°¡ ¾øÀ» Á¤µµÀÇ ¹®Á¦ÀÔ´Ï´Ù. ´É·ÂÀÖ´Â °³¹ßÀÚ¸¦ µû¶ó ±× ¾Æ·¡¼­ ÀÏÇÏ´Â »ç¶÷µéÀÌ ÇÔ²² ÀÌÁ÷ÇÏ´Â °ÍÀº ÀÌ·± ÀÌÀ¯°¡ Å®´Ï´Ù.


¶Ç ȸ»ç¸¦ °í¸¦ ¶§´Â ¿©·¯ºÐµéµµ ȸ»ç¸¦ Æò°¡ÇϽñ⠹ٶø´Ï´Ù. ±×·¸´Ù°í ÁÖ½Ä ÅõÀÚÀÚµéÀÌ »ý°¢Çϵí, ¼Ò½º º¸À¯·®À¸·Î °áÁ¤µÇ´Â ȸ»çÀÇ ±â¼ú ¿ª·®À» Æò°¡ÇÏ¸é ¾ÈµË´Ï´Ù. ±×°÷¿¡ ÀÏÇÏ´Â »ç¶÷ÀÇ ±â¼ú ¿ª·®À» ÆÇ´ÜÇؾßÇÕ´Ï´Ù. ±×³É ÀßÇÑ´Ù, »¡¸® ¸¸µç´Ù°¡ ¾Æ´Ï¶ó, Á¶¾ð/¾÷¹«Áö½Ã¸¦ ¾ó¸¶³ª È¿°úÀûÀ¸·Î Áִ°¡? & º¸°í ¹è¿ï°Ô Àִ°¡?¸¦ »ý°¢ÇؾßÇÕ´Ï´Ù.


À쫆 ̣´Â´Ù¸é, ¾î¶»°Ôµç ÃÖ´ëÇÑ °¡±îÀ̼­ °üÂûÇÏ°í ¸ð¹æÇÏ°í Áú¹®Çϱ⠹ٶø´Ï´Ù.



2.1. Advanced Beginner¿¡°Ô Á¶¾ðÇÏ°í ½ÍÀº °Í ÇÑ°¡Áö ´õ.


Competent¸¦ ã¾ÒÀ»¶§, Á¶¾ðÇÏ°í ½ÍÀº °ÍÀÌ Çϳª´õ ÀÖ½À´Ï´Ù. ÀÚ½ÅÀÇ Äڵ带 º¸¿©ÁÖ´Â °Í¿¡ ¿ë±â¸¦ °¡Áö¼¼¿ä. ¼ÖÁ÷È÷ Code ReviewÇϸé, ȤÀÚ´Â ¹ß°¡¹þ°ÜÁ®¼­ Ȧ·Î ³ªÃ¼·Î ¼­ÀÖ´Â ±âºÐÀ̶ó°íµµ ÇÕ´Ï´Ù. ºÐ¸í ±×·± ±âºÐÀÌ µé°ÚÁö¸¸, ±×·¡µµ ¿ë±â¸¦ ³»¼­ Code¸¦ ³»¹Ð¾î¾ßÇÕ´Ï´Ù. ÀÚ½ÅÀÇ ½ÇÆи¦ ±×´ë·Î º¸¿© Áà¾ß ÇÑ´Ù´Â µÎ·Á¿òÀ» À̰ܳ»Áö ¸øÇϸé Á¦´ë·Î ¹è¿ï¼ö°¡ ¾ø½À´Ï´Ù.



3. ÀÔ¹®ÀÚ¿¡°Ô ÇÏ°í ½ÍÀº ¸»ÀÔ´Ï´Ù.


ÀÔ¹®ÀÚ´Â ´ëÇÐ 1~2ÇгâÀ» ºñ·ÔÇØ  ÀÌÁ¦ ¸· ÇÁ·Î±×·¡¹Ö °øºÎ¸¦ ½ÃÀÛÇÑ ºÐµé ÀÔ´Ï´Ù. ±»ÀÌ µå·¹Ç¶½º ¸ðÇüÀ¸·Î ºÐ·ùÇϸé NoviceÀÔ´Ï´Ù.


Àú´Â °³¹ß ÄÚĪÀ» ÇÒ¶§, ÄÚĪ¹Þ´Â ºÐÀÇ ÃÖ¼Ò Á¶°ÇÀÌ ÀÚ·ÂÀ¸·Î Ãë¾÷¿ë Æ÷ÆúÀ» ±¸ÇöÇÒ¼ö ÀÖ´Â »ç¶÷ÀÔ´Ï´Ù. Áï Novice´Â ¹ÞÁö ¾Ê½À´Ï´Ù. ÀÌÀ¯°¡ ÀÖ½À´Ï´Ù. ±× ¾Æ·¡ ´Ü°è¿¡¼­´Â ÀÏ´Ü Àý´ëÀûÀÎ Áö½ÄÀÇ ¾ç°ú ±âÃÊü·ÂÀÌ ºÎÁ·Çؼ­ ÄÚĪ ¹ÞÀº °ÍÀ» ½Ç½À ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. ¿¹¸¦ µé¸é, Á¦°¡ Â÷¹ü±Ù °¨µ¶´ÔÀ» ÄÚÄ¡·Î ¼·¿ÜÇؼ­ Çö¶õÇÑ ¹ß±â¼úÀ» º¸°í ¹è¿öµµ ±âº» µå¸®ºí°ú 90ºÐ°£ ¶Û ü·ÂÀÌ ¾ø¾î¼­ Á¦´ë·Î ¹è¿ï ¼ö°¡ ¾ø½À´Ï´Ù.


ÀÌ ´Ü°è ºÐµé¿¡°Ô ±ÇÇÒ °ÍÀº µû·Î ÀÖ½À´Ï´Ù. Ã¥À» º¸¼¼¿ä. °¡´ÉÇÏ¸é ¿Ü¿ì¼¼¿ä. ¾î´ÀÁ¤µµ·Î ºÁ¾ßÇÏ´ÂÁö ±âÁØÀ» Á¦½Ã ÇÑ´Ù¸é, ´ëÇÐ ÇкΠ±³ÀçÀÇ ¸ñÂ÷¸¸ º¸°í ¼½¼Çº°·Î °ü·ÃµÈ Å°¿öµå¸¦ ÀüºÎ ¾µ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. º¸Åë Á¦°¡ ÀÌ·± ¼öÁØÀ» ¿ä±¸ÇÏ¸é °úÇÏ´Ù°í ÇÕ´Ï´Ù. ÇÏÁö¸¸ ±× Å°¿öµå¸¦ ¿Ü¿ì°í ÀÖÁö ¸øÇϸé, ¿©·¯ºÐµéÀÌ ±âÃÊ °³¹ß ´É·ÂÀ» °®Ãß°í, Advanced Beginner°¡ µÇ¾î¼­ Competent¸¦ ¸¶ÁÖÇßÀ»¶§ ±× Á¶¾ðÀ» ÀÌÇØÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. ¾î·Æ°Ô Competent¸¦ ã¾Æµµ Á¦´ë·Î ¹è¿ï ¼ö°¡ ¾ø´Ù´Â ¼Ò¸®ÀÔ´Ï´Ù. ´õ ¾ÈŸ±î¿î °ÍÀº CompetentÀÔÀå¿¡¼­ °¡¸£ÃÄ º¼¸¸ÇÑ »ç¶÷Àº ¸¹±â ¶§¹®¿¡ ±âȸ°¡ ´Ù½Ã ¿À±â ¾î·Æ´Ù´Â °ÍÀÔ´Ï´Ù.


±×·¯´Ï±î ³ªÁß¿¡ ÈÄȸÇÏÁö ¾ÊÀ¸·Á¸é ÀÏ´Ü ±³°ú¼­´Â ´Ù ¿Ü¿ì°í °¡¶ó´Â °Ì´Ï´Ù. ±»ÀÌ Ã¥À» °í¸£ÀÚ¸é, ¾ð¾îÃ¥ 2~3±Ç, µ¥ÀÌÅͱ¸Á¶, ¾Ë°í¸®Áò, DB, OS, ³×Æ®¿öÅ©, OOP, ¼ÒÇÁÆ®¿þ¾î °øÇÐ, º´·Ä ÄÄÇ»ÆÃ(Thread & ºÐ»ê)  Á¤µµ¿¡ °¢ÀÚÀÇ ºÐ¾ß¿¡ µû¶ó¼­ ¸î°³ ´õ º¸Å´ Á¤µµ ÀÔ´Ï´Ù. (´ëÃæ 10±Ç Á¤µµ°Ú³×¿ä)




´É·ÂÀÖ´Â °³¹ßÀÚ´Â ¾î¶»°Ô ¾Ë¾Æº¸³ª?


´É·ÂÀÖ´Â °³¹ßÀÚ, Áï Competent¸¦ ã¾Æ¾ß °Ú´Ù°í °á½ÉÇß´Ù¸é ¾î¶»°Ô ã´ÂÁö¸¦ ¾Ë¾Æ ºÁ¾ß°ÚÁÒ.


¾Ë·ÁÁ® ÀÖµíÀÌ µå·òÆÛ½º ±â¼ú ½Àµæ ¸ðÇüÀº °æ·ÂÇÏ°í´Â °ü°è°¡ ¸Å¿ì Àû½À´Ï´Ù.

¼Òó·³ ³â ¸î ÀÌ»ó Å°¿î´Ù°í 1µî±ÞÀÌ µÇÁö ¾Ê½À´Ï´Ù. ±â¼ú ·¹º§Àº Á÷±ÞÀ̳ª Á÷À§, ¶Ç´Â °æ·Â ³â¼ö¿¡ »ó°ü¾øÀÌ ¾î¶»°Ô °³¹ßÀ» Çϴ°¡¸¸ º¸°í ÆÇ´ÜÇؾßÇÕ´Ï´Ù.


¹®Á¦´Â Àڱ⺸´Ù À­·¹º§À» ÀÎÅͺä·Î ÆľÇÇÏ´Â°Ç °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù´Â Á¡ÀÔ´Ï´Ù. ¾î¿¼ö°¡ ¾ø´Â°Ô, Ç¥¸éÀ» º¸´Â »ç¶÷¿¡°Ô´Â ½ÉÃþºÎ¸¦ º¸´Â »ç¶÷ÀÇ ´ë´äÀº ¼±¹®´äÀ̳ª »ç±â²Û °°ÀÌ µé¸®±âµµ ÇÕ´Ï´Ù.


¿¹¸¦ µé¾î Àú¿¡°Ô °´Ã¼°¡ ¹¹³Ä°í ¹°À¸¸é, °´Ã¼¶ó°í ´ë´äÇÕ´Ï´Ù. »ç±â²Û °°°Ô µé¸±¼öµµ ÀÖÁö¸¸, °´Ã¼¸¦ °¡Àå Àß Ç¥ÇöÇÏ´Â ´Ü¾î´Â ¡°°´Ã¼¡±ÀÔ´Ï´Ù. °´Ã¼¶ó´Â ¼Ó¼ºÀÌ °¡Áø °¢°¢ÀÇ Ãø¸éÀÌ °¡Áø Ư¡À» °­ÀÇ ÇÒ¸¸Å­ ¾Ë°í´Â ÀÖÁö¸¸, ±× °³°³ÀÇ ¼³¸íÀÌ °´Ã¼¸¦ Ç¥ÇöÇß´Ù°í Çϱ⿡´Â ³Ê¹« ºüÁø°Ô ¸¹½À´Ï´Ù.

¾Æ´Ï¸é ¹Ý´ë·Î ¿¬ºÀÀÌ °É¸° ¸éÁ¢ ÀÚ¸®¸é ÃÖ´ëÇÑ ´É·Â ¾îÇÊÀ» ÇؾßÇϴϱî, ¾Æ¿¹ °í±Þ ÁÖÁ¦·Î °¥¼öµµ ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ´Ù·ç´Â Class ±â¹Ý °´Ã¼°¡ ¾Æ´Ï¶ó Prototype ±â¹Ý °´Ã¼¿Í ºñ±³¸¦ ÇѴٰųª, ¾Æ¿¹ »çÀü ÅÛÇø´ÀÌ ¾ø´Â Duck Typing Áß½ÉÀ¸·Î °´Ã¼¸¦ »ç¿ëÇÒ¶§¸¦ ¿¹¸¦ µç´Ù°Å³ª, ½Ã¸Çƽ À¥ÀÇ ¿ÂÅç·ÎÁö¿¡ ³ª¿À´Â Class °³³ä°ú °áºÎ½ÃÄÑ ¼³¸íÇѴٰųª¡¦

(ÀÌ·¯´Ï Àú·¯´Ï Çصµ, Áö½ÄÀûÀ¸·Î ³»°¡ Á» ´õ ³ªÀ»°ÍÀÌ´Ù Á¤µµ ¹Û¿¡ ¾ÈµË´Ï´Ù)

Á¦°¡ »ý°¢Çϱ⿡´Â  ¾î·Æ°Ô ¼³¸íÇϳª ½±°Ô ¼³¸íÇϳª µè´Â »ç¶÷¿¡°Ô´Â Ç×»ó ¶á±¸¸§ Àâ´Â ¼³¸í ÀÏ »ÓÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.


¹Ý´ë·Î ¾Æ·§ÁÙÀ» ÆľÇÇÏ´Â °ÍÀº Å©°Ô ¾î·ÆÁö ¾Ê½À´Ï´Ù. 15ºÐÁ¤µµ ¸éÁ¢ÇÏ¸é ¾Ë ¼ö ÀÖ¾î¿ä.


ÇÏÁö¸¸ ÀÌ·¡¼­´Â Competent¸¦ ãÀ»¼ö°¡ ¾ø°ÚÁÒ.


±×·±µ¥ Àڱ⠺¸´Ù À­ÁÙÀÎ Competent¸¦ ºñ±³Àû ½±°í Á¤È®ÇÏ°Ô ±¸ºÐÇÒ ¹æ¹ýÀÌ Çϳª ÀÖ½À´Ï´Ù.

¿©·¯ºÐµéÀÇ (ÄÚµù ¸ð¸£´Â »çÀå´ÔÀ̸é ȸ»ç³» Á÷¿øÀÇ) Äڵ带 ¸®ºäÇÏ¿© °íÄ¡°Ô Çغ¸¼¼¿ä.


¿Â¶óÀÎÀ¸·Î ÇÏ¸é ¾ÈµÇ°í ÇöÀå¿¡¼­ 1½Ã°£Âë °íÄ¡°Ô ÇÏ¸é µË´Ï´Ù. Áï, ÄÚµå ¸®ºä¸¦ ½Ãŵ´Ï´Ù.

±×¸®°í ÄÚµå ¸®ºä¾î°¡ ¿Ö Äڵ带 ÀÌ·¸°Ô ÀÛ¼ºÇß´ÂÁö Àǵµ¸¦ ¾Ë ¼ö ÀÖ°Ô,  ÄÚµå ÀÛ¼ºÀÚ¿¡°Ô Áú¹®À» ÇÒ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.


¼öÁ¤Çؼ­ ³ª¿Â °á°ú¹°ÀÌ ±³°ú¼­¿¡¼­³ª º¸´ø ±×·± ÄÚµå °°´Ù¸é, Àû¾îµµ Competent¶ó°í º¼ ¼ö ÀÖ½À´Ï´Ù.



ÀÌ¿¡ ´ëÇÑ ÀÌÀ¯´Â »ý°¢º¸´Ù °£´ÜÇÕ´Ï´Ù.


Advanced Beginner´Â ±³°ú¼­¸¦ Èä³»³»·Á°í ÇÏÁö¸¸ »ý°¢Ã³·³ Àß µÇÁö ¾Ê½À´Ï´Ù. °íÄ£´Ù°í Çصµ Ã¥À» º¸¸é¼­ °íÃÄ¾ß ÇÕ´Ï´Ù.


Competent´Â ±³°ú¼­ ³»¿ë Á¤µµ´Â ¸ö¿¡ º£¿©ÀÖ½À´Ï´Ù. ÄÚĪÀ» ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº Àڱ⠸öÀÌ ±³°ú¼­¶ó´Â ÀǹÌÀÔ´Ï´Ù. ±×·¡¼­ 1½Ã°£À̸é ÃæºÐÈ÷ °íÄ¥¼ö ÀÖ½À´Ï´Ù.


Proficient ·¹º§Àº ¸öÀÌ ±³°ú¼­À롂 ¸¶Â÷°¡ÁöÁö¸¸, Á÷°üÀû ·¹º§¿¡¼­ °áÁ¤À» ³»¸®±â ¶§¹®¿¡ Competentº¸´Ù ´õ »¡¸® °íĨ´Ï´Ù. Àú°°Àº °æ¿ì¿¡´Â ÄÚµå Å©±â³ª ±â´É¿¡ µû¶ó ´Ù¸¥µ¥, 5ºÐ ~ 15ºÐÀÌ¸é ±³°ú¼­ÀûÀÎ ±¸Á¶·Î °íÄ¥¼ö ÀÖ½À´Ï´Ù.



±³°ú¼­ÀûÀÎ ÄÚµå¶ó´Â °ÍÀº Ä÷¸®Æ¼°¡ ÁÁÀº Äڵ带 ÀǹÌÇÕ´Ï´Ù. ±³°ú¼­¿¡´Â Àü»êÇÐÀÇ °³³äÀ» °¡Àå Àß º¸¿©ÁÙ ¼ö ÀÖ´Â Äڵ带 ½Ç¾î ³õ½À´Ï´Ù.


±×·¯¸é ¾î¶² Äڵ尡 Ä÷¸®Æ¼°¡ ÀÖ´Â °ÇÁö, ÄÚµå Ç°Áú¿¡ ´ëÇؼ­ ¿¹½Ã¸¦ µé°Ú½À´Ï´Ù.




The Quality Of Code


Äڵ忡´Â Ç°ÁúÀÌÀÖ½À´Ï´Ù.

ÀÌ°Ç ±â´É¿¡ µ¹¾Æ°¡´Â °Í°ú ÀüÇô »ó°ü¾øÀÌ ÄÚµå ÀÚüÀÇ ÁúÀÔ´Ï´Ù. ¶È°°ÀÌ 4ÀνÂÀ» ½Ç¾î ³ª¸¦¼ö ÀÖÁö¸¸ ƼÄÚ¿Í ¸µÄÁ ÄÁƼ³ÙÅ»Àº ´Ù¸¥°Ì´Ï´Ù.


¸®ºä ´ë»ó Äڵ带 Á¦°øÇØÁֽŠwonism ´Ô¿¡°Ô °¨»ç¸¦ Ç¥ÇÏ¸ç  

https://github.com/wonism/easy-map/blob/master/src/easy-map.js ¸¦ °¡Áö°í, ÄÚµå Ç°Áú¿¡ ´ëÇؼ­  ¾Ö±âÇغ¸°Ú½À´Ï´Ù.


wonism ´ÔÀÌ »ýÄÚ¿¡ ¼Ò°³ÇÑ ±Û¿¡ µû¸£¸é ¾Æ·¡ ±â´ÉÀ» ¼öÇàÇÕ´Ï´Ù.


Á¤ÀÇµÈ »ý¼ºÀÚ·Î °´Ã¼¸¦ »ý¼ºÇÑ µÚ ƯÁ¤ ¸Þ¼Òµå¸¦ ½ÇÇàÇϸé,

¸¶Ä¿¿Í ÀÎÆ÷À©µµ¿ì, Ŭ¸¯ À̺¥Æ®, °Å¸® Ç¥½Ã µîÀÇ ±â´ÉÀÌ ÀÚµ¿À¸·Î ±¸ÇöµË´Ï´Ù.

ÇöÀç´Â ±¸±Û, ³×À̹ö Áöµµ¸¸ »ç¿ë°¡´ÉÇÏÁö¸¸,

´ÙÀ½ Áöµµ, ¹ÙÀ̵ΠÁöµµµµ Ãß°¡Çغ¸·Á ÇÕ´Ï´Ù.

»ç¿ë ¹æ¹ý, µ¥¸ð ½ÇÇà ¹æ¹ý µî README.md ÆÄÀÏ¿¡ »ó¼¼È÷ ¼³¸íÇصξúÀ¸´Ï, °¡º±°Ô »ìÆìºÁÁÖ¼¼¿ä.



¿ì¼± ÄÚµåÀÇ Ã¹ ÀλóÀº Advanced Beginner°¡ ÀÛ¼ºÇÑ °ÍÀ¸·Î º¸Àδ٠ÀÔ´Ï´Ù..



¸â¹ö º¯¼ö À̸§ºÎÅÍ°¡ Áߺ¹ÀÌ °úÇÕ´Ï´Ù. prefix  ÇüÅ·Π¾²¿´´Âµ¥, ±×·± ¹Ý¸é¿¡ °°Àº ´ë»ó¿¡ ´ëÇÑ µ¥ÀÌÅ͸¦ °°ÀÌ ¹­´Â( structure³ª Class¸¦ ¾²´Â) ±â¹ýÀÌ º¸ÀÌÁö ¾Ê½À´Ï´Ù.


¾Æ·¡°¡¼­ ã¾Æº¸´Ï,



¿ª½Ã³ª 2°³´Â °°ÀÌ ¹­¿©¼­ ´Ù´Õ´Ï´Ù.

¿ÜºÎ°¡ Class EasyMap·Î °¨½Î¿©Á® ÀÖ±äÇϳª, Class¸¦ ±³°ú¼­Ã³·³ ¾µ ¼ö ¾ø´Ù°í ÆÇ´Ü ÇÒ ¼ö ÀÖ½À´Ï´Ù.




Á¶±Ý´õ º¸´Ï Switch¹®ÀÌ º¸ÀÔ´Ï´Ù.

oop¿¡¼­ Switch°¡ °úÇÏ°Ô µîÀåÇϸé, Ãß»óÈ­ °³³äÀ» ¾ÆÁ÷ Àû¿ë¸øÇß´Ù´Â ÀÇ¹Ì ÀÔ´Ï´Ù.



Ȥ½Ã³ª Çؼ­ °Ë»öÇغ¸´Ï, ´ÙÇؼ­ 7±ºµ¥ switch (this.mapType)ÀÌ ¾²¿´½À´Ï´Ù.

º¸´Ù º¸´Ï±î ÇÔ¼ö ±æÀ̵µ ¾öû³ª°Ô ±é´Ï´Ù.


markCurrentPosition() ÇÔ¼ö´Â 120ÁÙ Á¤µµ, createMarkers()  140ÁÙ Á¤µµ subscribeInfoWindow()µµ 100ÁÙ Á¤µµ ÀÔ´Ï´Ù.


±×¸®°í Àú ÇÔ¼öµé ¸¶´Ù Switch°¡ ´Ù µé¾î°¡ Àֳ׿ä.


ÀÛ¾÷ÀÚ´Â ¹®Á¦ ÇØ°áÇÏ´Â ·çƾÀ»  ÇÔ¼ö Çϳª ¾È¿¡ ÁÖ¸£¸¤ ¾²°í ÀÖ½À´Ï´Ù.

µû¶ó¼­ ü°èÀûÀ¸·Î °èȹÀ» ¼¼¿ì´Â ÇÔ¼ö ´ÜÀ§ÀÇ »ç°í Àû¿ëÀ» Àß ¸øÇÑ´Ù °í Æò°¡ÇÒ¼öÀÖ½À´Ï´Ù.



Àüü Äڵ带 ´Ù º» Æò°¡µµ

¾ÆÁ÷ ±³°ú¼­¸¦ Àڱ⠸ö¿¡ üȭÇÏÁö ¸øÇÑ Advanced Beginner·Î °á·ÐÀ» ³»¸®°Ú½À´Ï´Ù.


ÀÌÁ¦ º»°ÝÀûÀ¸·Î °íÃĺ¸°Ú½À´Ï´Ù.


ÀϺγª¸¶ Á» ´õ Àü»êÇÐÀûÀ¸·Î À̻ڰÔ(= ±³°ú¼­¿¡¼­ º¸´ø °Íó·³) °íÄ¡·Á¸é ÀÌ·¸°Ô ÇؾßÇÕ´Ï´Ù.



¿ì¼± Marker¸¦ Ŭ·¡½º¸¦ »ç¿ëÇؼ­ µ¥ÀÌÅ͸¦ ¹­½À´Ï´Ù.

markerNames¿Í Ids´Â ¾ø¾Ö°í, markers = [] ·Î ¼±¾ðÇÏ°í, MarkerŬ·¡½º´Â name°ú id¸¦ °¡Áö°Ô ÇÕ´Ï´Ù.

±×¸®°í À§ ·çƾÀº


for (let j = 0, len2 = tempCoordsArr.length; j < len2 ; j++){
	var coord = tempCoordsArr[j];
	var marker = new Marker(coord.__id, coord.__name )
	this.markers.push(marker);
}

À¸·Î °íÃÄ¾ß °Ú½À´Ï´Ù.

MarkerÀÇ »ý¼ºÀÚ´Â (id,name)À» ¹Þ¾Æ¼­  486, 487 ¶óÀΰú µ¿ÀÏÇÑ ÀÏÀ» Çϵµ·Ï ÇÕ´Ï´Ù.


ÀÌ·¸°Ô ÇÔÀ¸·Î½á, markerName°ú markerIds°¡ ÀÏÄ¡ÇÏÁö ¾Ê¾Æ,

¹®Á¦°¡ ¹ß»ýÇÒ °¡´É¼ºÀÌ »ç¶óÁ³½À´Ï´Ù.


±×¸®°í ´ë´ëÀûÀ¸·Î °íÄ¥°ÍÀº  Switch¸¦ ¼öÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù. Àüü ÇÔ¼ö ¿µ¿ª¿¡ °ÉÃļ­ switchºÐ±â°¡ ³ª¿À´Â °ÍÀº Ãß»óÈ­°¡ ¾ÈµÈ°ÍÀÔ´Ï´Ù.


±×·¯´Ï NaverMap Class¿Í GoogleMap Ŭ·¡½º¸¦ µû·Î ¸¸µé¾î¼­ °¢°¢¿¡ ÇØ´çÇÏ´Â ±â´É¸¸ ³Ö½À´Ï´Ù.


Á¤¸®ÇÏÀÚ¸é ±¸Á¶°¡ ¾Æ·¡¿Í °°°Ô ³ª¿Í¾ß ÇÕ´Ï´Ù.


class NaverMap  
markCurrentPosition()  { ¡¦ } 
createMarkers()   { ¡¦ } 
subscribeInfoWindow() { ¡¦ } 


class GoogleMap  
markCurrentPosition()  { ¡¦ } 
createMarkers()   { ¡¦ } 
subscribeInfoWindow() { ¡¦ } 



class EasyMap
	constructor(obj) {  
¡¦ 
if(this.isValid(obj)) { ¡¦ } 
this.createConcreteMap()
 }


markCurrentPosition() {
	this.MapImplement.markCurrentPosition() 
}
createMarkers() {
	this.MapImplement.createMarkers() 
}
	subscribeInfoWindow() {
	this.MapImplement.subscribeInfoWindow() 
}


createConcreteMap(){
switch(this.mapType)
	case ¡°naver¡±:
		this.MapImplement = new NaverMap()
	case ¡°google¡±:
		this.MapImplement = new GoogleMap()


}

ÀÌÁ¦ Ãß»óÈ­ °³³äÀ» Àû¿ëÇÏ¿© EasyMapÀº ±¸Ã¼Àû ±¸Çö Äڵ忡 ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù.


µðÀÚÀÎ ÆÐÅÏÀ¸·Î µûÁö¸é Adapter ÆÐÅÏÀ¸·Î ÇüŸ¦ ÀâÀº °ÍÀÔ´Ï´Ù.


¶ÇÇÑ subscribeInfoWindowµî 100ÁÙ ´ÜÀ§ÀÇ ÇÔ¼ö¸¦ mapTypeº°·Î Class¸¦ ¹­¾úÀ¸´Ï 50ÁÙ Á¤µµ µË´Ï´Ù.

50ÁÙÀÌ¸é ´õ ÂÉ°¶ ÇÊ¿ä´Â Àִµ¥ ¿©±â¼­´Â »ý·«ÇÏ°Ú½À´Ï´Ù.




±×¸®°í ¿ª½Ã switch ´Â Äڵ尡 ³ÊÀúºÐ ÇÏ´Ï±î  

createConcreteMap()À» Á»´õ ¼öÁ¤ÇÏ¿© ¾Æ·¡Ã³·³ °íĨ´Ï´Ù.

createConcreteMap(){
	var type = {
 naver: NaverMap, 
google: Googlemap
	}
	constructor = type[this.mapType]
	if(constructor  == undefined) 
throw new Error(¡°Not Supported¡±)  
	this.MapImplement  = new constructor()
}

ÀÌÁ¤µµ °íÄ¡´Âµ¥ 5~10ºÐ Á¤µµ µé¾î°©´Ï´Ù.


±×·¯³ª º¯°æ ÀÌÈÄ¿¡´Â

Naver¿Í Google¿¡ º¯µ¿»çÇ×ÀÌ »ý°Üµµ °¢°¢ÀÇ Adapter Class¿¡¸¸ ¿µÇâÀ» ÁÝ´Ï´Ù.

ÇϳªÀÇ ¿À·ù°¡ ½Ã½ºÅÛ Àüü·Î ÆÛÁöÁö ¾Ê°Ô º¸ÀåµË´Ï´Ù.


ÀüüÀûÀÎ ±¸Á¶´Â ÀÏ°üµÇ°Ô µ¿ÀÛÇÒ¼ö ÀÖÀ¸¸ç. DaumMap Ŭ·¡½º¸¦ ±¸ÇöÇÏ°í createConcreteMap ÇÔ¼ö¿¡ Áý¾î ³Ö±â¸¸ ÇÏ¸é ·çƾÀÌ µ¿ÀÛÇÒ¼ö ÀÖ½À´Ï´Ù.

À¯Áöº¸¼ö ¹× È®ÀåÀÌ ½±´Ù´Â ÀǹÌÀÔ´Ï´Ù.



¾Æ¸¶ ±âÁ¸ ¼Ò½º¿¡

DaumMapÀ» ºÙÀÌ·Á¸é, ¸ðµç Switch¸¦ ã¾Æ¼­, 100Á٠¥¸® ÇÔ¼öµéÀÌ ´Ù 150ÁÙÀÌ µÇ¾úÀ» °ÍÀÔ´Ï´Ù.


±×¸®°í ±¸±Û Áöµµ¿¡ ÆÐÄ¡¸¦ ÇßÀ»¶§ ³×À̹ö Áöµµ ±â´É¿¡ ¿µÇâÀ» ¾ÈÁÖ´Â °ÍÀ» º¸Àå ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.

°á±¹Àº ¸ðµç Áöµµ¸¦ ´Ù Å×½ºÆ®ÇØ¾ß Ãâ½ÃÇÒ¼ö ÀÖ°Ô µË´Ï´Ù.


ÄÚµå Ä÷¸®Æ¼´Â ÀÌ·±°ÍÀÔ´Ï´Ù.

±»ÀÌ Ç¥ÇöÇÏÀÚ¸é, Àü»êÇп¡¼­ Á¤¸³µÈ °³³äÀ» ¾ó¸¶³ª ¹Ý¿µÇߴ°¡°¡ ÄÚµå Ä÷¸®Æ¼ÀÇ Ã´µµ¶ó°í ¸» ÇÒ ¼ö ÀÖ½À´Ï´Ù.


±×¸®°í È¿°ú´Â ¾öû³¯ ¼ö ¹Û¿¡ ¾ø½À´Ï´Ù.

ÁÁÀº °ÍÀ» ¸¸µé±â´Â ¾î·ÆÁö¸¸,

ÁÁÀº °ÍÀ» ¾²±â´Â ½±½À´Ï´Ù.


Á¶Á÷À» ¿î¿µÇÏ´Â ºÐµéÀº ´À³¢¼ÌÀ»°Í °°Áö¸¸,

¸¸µå´Âµ¥ Ç°ÀÌ ¸¹ÀÌ µé¾î°¡´Â ÀÛ¾÷Àº Advanced Beginner°¡ °ÅÀÇ ÇÏ°í, Competent´Â ±×°É Á¤¸®Çؼ­ ¼öÁØÀ» ²ø¾î ¿Ã¸³´Ï´Ù.

ÇÏÁö¸¸ ÀÛ¾÷Çؼ­ ³ª¿Â °á°ú¹°ÀÇ »ç¿ë¼º / ¾ÈÁ¤¼ºÀº Competent°¡ ¸ðµÎ Á÷Á¢ ¸¸µç °Í¿¡ ºñÇؼ­ Å©°Ô ¶³¾îÁöÁö ¾Ê½À´Ï´Ù.

°Ô´Ù°¡ Advanced Beginner´Â ÀÚ½ÅÀÌ 100% ÀÛ¾÷ÇÑ Äڵ庸´Ùµµ Competent°¡ ü°èÀûÀ¸·Î Á¤¸®ÇصРÄڵ带 »ç¿ëÇؼ­ °³¹ßÇÒ¶§,  ¿À·ùµµ ÈξÀ Àû°í ¼Óµµµµ »¡¶óÁ® »ý»ê¼ºÀÌ ¿Ã¶ó°©´Ï´Ù.


±×¸®°í Advanced Beginner·¹º§¿¡ ÀÖ´Â ºÐµéÀº

¾î¶»°Ôµç ´É·ÂÀÖ´Â °³¹ßÀÚ¸¦ ã¾Æ¼­  ÁÁÀº°Å ¸¹ÀÌ º¸°í ¸ð¹æÇؼ­ Àڱ⠰ÍÀ¸·Î Çϱ⠹ٶø´Ï´Ù.


ÈçÈ÷, ´Ù¸¥ »ç¶÷ÀÌ ÀÛ¼ºÇÑ ÁÁÀº Äڵ带 º¸¸é ¸¹ÀÌ ¹è¿î´Ù°í ÇÕ´Ï´Ù.


ÇÏÁö¸¸, ±×°Íº¸´Ù ´õ »¡¸® ¹è¿ì´Â ¹æ¹ýÀº

ÀڱⰡ ÀÛ¼ºÇÑ Äڵ尡 ÁÁÀº ÄÚµå·Î º¯È­ÇÏ´Â ¸ð½ÀÀ» º¸´Â °ÍÀÔ´Ï´Ù.



¿Ö³Ä¸é,  ±³°ú¼­ÀûÀ¸·Î ÁÁÀº Äڵ带 º¼ ¶©,  ±× »ç¶÷ÀÌ ÀÌ¹Ì ÀßÇϴϱî ÀÌ·±°Ô °¡´ÉÇÏ°ÚÁö¶ó°í »ý°¢ÇÏ°Ô µË´Ï´Ù. ÇÏÁö¸¸, ³» Äڵ尡  Ç°Áú °³¼±ÀÌ µÇ´Â °úÁ¤À» Á÷Á¢º¸°í ÀÌÇØÇϸé, ³ªµµ Àú·¸°Ô ÇÒ¼ö ÀÖ´Ù ¶ó´Â »ý°¢À» °¡Áö°Ô µÇ±â ¶§¹®ÀÔ´Ï´Ù.



Àú´Â ¿©·¯ºÐµéÀÌ ´ÜÁö ¿ì¸®³ª¶ó¼­ ÇÏ´øÀϸ¸ ÀßÇصµ ÇØ¿Ü °³¹ß»çÀÇ ¿ÀÆÛ¸¦ ¹Þ´Â °ÍÀÌ °¡´ÉÇÏ´Ù´Â ¼Ò½ÄÀ» µè´Â °Í¸¸ÀÌ ¾Æ´Ï¶ó, ÄÚµå Ç°ÁúÀ» ´õ¿í Áß¿äÇÏ°Ô »ý°¢ÇØÁÖ¼ÌÀ¸¸é ÁÁ°Ú½À´Ï´Ù.


ÇØ¿Ü °³¹ß»ç¿¡¼­´Â ÄÚµå Ç°ÁúÀ» Áß¿ä½ÃÇÏ°í, ±×·± Ç°ÁúÀÇ Äڵ带 ¸¸µé¼ö ÀÖ´Â »ç¶÷À» ´ë¿ìÇϱ⠶§¹®¿¡, Àú¿¡°Ô Á¦ÀǸ¦ Çß´Ù°í »ý°¢ÇÕ´Ï´Ù. ¿ì¸®³ª¶ó¿¡¼­µµ °³¹ßÀ» ÇÒ¶§´Â »¡¸® / ¸¹ÀÌ ¸¸µå´Â °Íº¸´Ùµµ ÄÚµå Ç°ÁúÀ» ´õ Áß¿äÇÏ°Ô »ý°¢ÇÏ´Â ¹®È­°¡ »ý±â±æ ¹Ù¶ø´Ï´Ù.


¾Æ¿ï·¯ ¿©·¯ºÐµéÀÌ ´É·ÂÀÖ´Â °³¹ßÀÚ¸¦ ã¾Æ Æò»ý µ¿¾÷ÀÚ°¡ µÇ°Å³ª ¸ÇƼ¸¦ ÀÚóÇϰųª ¶Ç´Â ±× ¾î¶² ¹æÇâ¿¡¼­µçÁö »ý°¢ÇÏ´Â ¹Ù¸¦ ¾òÀ» ¼ö Àֱ⠹ٶø´Ï´Ù.


¿ø¹® ¸µÅ© : https://docs.google.com/document/d/1_phA5XUszSmN7Ta-QHs4DxRz9_iu8YlhxpVjSGEbWcg/edit