ÄÜÅÙÃ÷»ó¼¼º¸±â

ÆÄÀ̽ãÀ¸·Î »ìÆ캸´Â ¾ÆÅ°ÅØó ÆÐÅÏ
ÆÄÀ̽ãÀ¸·Î »ìÆ캸´Â ¾ÆÅ°ÅØó ÆÐÅÏ
  • ÀúÀÚ<Çظ® Æ۽ùú>,<¹ä ±×·¹°í¸®> Àú/<¿ÀÇö¼®> ¿ª
  • ÃâÆÇ»çÇѺû¹Ìµð¾î
  • ÃâÆÇÀÏ2021-05-28
  • µî·ÏÀÏ2021-08-27
º¸À¯ 2, ´ëÃâ 0, ¿¹¾à 0, ´©Àû´ëÃâ 14, ´©Àû¿¹¾à 2

Ã¥¼Ò°³

¾ÆÅ°ÅØó ÆÐÅÏÀÇ ±âÃʺÎÅÍ È°¿ë±îÁö ´Ù·ç´Â ½ÇÀü °¡À̵å

ÆÄÀ̽ãÀ» È°¿ëÇÑ ÇÁ·ÎÁ§Æ®ÀÇ ±Ô¸ð°¡ Ä¿Áö¸é¼­ À°°¢Çü/Ŭ¸° ¾ÆÅ°ÅØó, À̺¥Æ® ±â¹Ý ¾ÆÅ°ÅØó, µµ¸ÞÀΠÁÖµµ ¼³°è µî °í¼öÁØ µðÀÚÀΠÆÐÅÏ¿¡ ´ëÇÑ °ü½ÉÀÌ ³ô¾ÆÁö°í ÀÖ´Ù. À̠åÀº °ËÁõµÈ ¿¹Á¦¿Í ¾ÆÅ°ÅØó µðÀÚÀΠÆÐÅÏÀ» ¼Ò°³Çϸ砾ÖÇø®ÄÉÀ̼ÇÀÇ º¹À⼺, ÀÇÁ¸¼ºÀ» ³·Ãß°í, Å×½ºÆ® ½ºÀ§Æ®¿¡¼­ ÃÖ¼±ÀÇ °¡Ä¡¸¦ ¾ò´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù. ¶ÇÇÑ ÀÚ¹Ù³ª C#º¸´Ù °£´ÜÇÏ°í ¿ì¾ÆÇÑ ÆÄÀ̽ã ÄÚµåÀÇ ÀåÁ¡À» Àß »ì·Á °¢ ÆÐÅÏÀ» ¼³¸íÇÑ´Ù. 

ÀúÀÚ¼Ò°³

ÇöÀç ¸ÞÀ̵å´åÄÄ(MADE.com)¿¡¼­ ±Ù¹« ÁßÀÌ´Ù. PythonAnywhere LLP¿¡¼­ ±Ù¹«ÇÑ °æÇèÀÌ ÀÖ´Ù. ¿öÅ©¼óÀ̳ª ÄÁÆÛ·±½º µî¿¡¼­ TDDÀÇ À¯¿ë¼ºÀ» Àü ¼¼°è¿¡ ÀüÆÄÇÏ°í ÀÖ´Ù. Ä·ºê¸®Áö ´ëÇб³¿¡¼­ Ã¶ÇРÇлç ÇÐÀ§¸¦ ÃëµæÇÏ°í ¸®¹öÇ® ´ëÇб³¿¡¼­ ÄÄÇ»ÅÍ °úÇР¼®»ç ÇÐÀ§¸¦ ÃëµæÇß´Ù.

¸ñÂ÷

CHAPTER 0 µµÀÔ

0.1 ¼³°è°¡ ¿Ö À߸øµÇ´Â°¡?

0.2 Ä¸½¶È­¿Í Ãß»óÈ­

0.3 °èÃþÈ­

0.4 ÀÇÁ¸¼º ¿ªÀü ¿øÄ¢

0.5 ¸ðµç ºñÁî´Ï½º ·ÎÁ÷À» À§ÇÑ Àå¼Ò: µµ¸ÞÀΠ¸ðµ¨



 

[PART I µµ¸ÞÀΠ¸ðµ¨¸µÀ» Áö¿øÇϴ ¾ÆÅ°ÅØ󠱸Ãà]



CHAPTER 1 µµ¸ÞÀΠ¸ðµ¨¸µ

1.1 µµ¸ÞÀΠ¸ðµ¨À̶õ?

1.2 µµ¸ÞÀΠ¾ð¾î Å½±¸

1.3 µµ¸ÞÀΠ¸ðµ¨ ´ÜÀ§ Å×½ºÆ®

1.4 ¸ðµç °ÍÀ» °´Ã¼·Î ¸¸µé ÇÊ¿ä´Â ¾ø´Ù: µµ¸ÞÀΠ¼­ºñ½º ÇÔ¼ö

 

CHAPTER 2 ÀúÀå¼Ò ÆÐÅÏ

2.1 µµ¸ÞÀΠ¸ðµ¨ ¿µ¼ÓÈ­

2.2 ÀÇ»çÄÚµå: ¹«¾ùÀÌ ÇÊ¿äÇÒ±î?

2.3 µ¥ÀÌÅÍ Á¢±Ù¿¡ DIP Àû¿ëÇϱâ

2.4 ±â¾ï µÇ»ì¸®±â: ¿ì¸®°¡ »ç¿ëÇϴ ¸ðµ¨

2.5 ÀúÀå¼Ò ÆÐÅÏ ¼Ò°³

2.6 Å×½ºÆ®¿¡ »ç¿ëÇϴ °¡Â¥ ÀúÀå¼Ò¸¦ ½±°Ô ¸¸µå´Â ¹æ¹ý

2.7 ÆÄÀ̽㿡¼­ Æ÷Æ®´Â ¹«¾ùÀÌ°í, ¾î´ðÅͶõ ¹«¾ùÀΰ¡

2.8 ¸¶Ä¡¸ç

 

CHAPTER 3 ¸·°£: °áÇÕ°ú Ãß»óÈ­

3.1 Ãß»óÀûÀΠ»óÅ´ Å×½ºÆ®¸¦ ´õ ½±°Ô ÇØÁØ´Ù

3.2 ¿Ã¹Ù¸¥ Ãß»óÈ­ ¼±ÅÃ

3.3 ¼±ÅÃÇÑ Ãß»óÈ­ ±¸Çö

3.4 ¸¶Ä¡¸ç

 

CHAPTER 4 Ã¹ ¹ø° À¯½º ÄÉÀ̽º: Çöó½ºÅ© API¿Í ¼­ºñ½º °èÃþ

4.1 ¾ÖÇø®ÄÉÀ̼ÇÀ» ½Ç¼¼°è¿Í ¿¬°áÇϱâ

4.2 Ã¹ ¹ø° ¿£µåÅõ¿£µå Å×½ºÆ®

4.3 Á÷Á¢ ±¸ÇöÇϱâ

4.4 µ¥ÀÌÅͺ£À̽º °Ë»ç°¡ ÇÊ¿äÇÑ ¿À·ù Á¶°Ç

4.5 ¼­ºñ½º °èÃþ ¼Ò°³¿Í ¼­ºñ½º °èÃþ Å×½ºÆ®¿ë FakeRepository »ç¿ë

4.6 ¸ðµç °ÍÀ» ¿Ö ¼­ºñ½º¶ó°í ºÎ¸£´Â°¡?

4.7 ¸ðµç ¿ä¼Ò¸¦ Æú´õ¿¡ ³Ö°í °¢ ºÎºÐÀÌ ¾î¶² À§Ä¡¿¡ ÀÖ´ÂÁö »ìÆ캸±â

4.8 ¸¶Ä¡¸ç

 

CHAPTER 5 ³ôÀº ±â¾îºñ¿Í ³·Àº ±â¾îºñÀÇ TDD

5.1 Å×½ºÆ® ÇǶó¹Ìµå´Â ¾î¶»°Ô »ý°å´Â°¡?

5.2 µµ¸ÞÀΠ°èÃþ Å×½ºÆ®¸¦ ¼­ºñ½º °èÃþÀ¸·Î ¿Å°Ü¾ß Çϴ°¡?

5.3 ¾î¶² Á¾·ùÀÇ Å×½ºÆ®¸¦ ÀÛ¼ºÇÒÁö °áÁ¤Çϴ ¹æ¹ý

5.4 ³ôÀº ±â¾îºñ¿Í ³·Àº ±â¾îºñ

5.5 ¼­ºñ½º °èÃþ Å×½ºÆ®¸¦ µµ¸ÞÀÎÀ¸·ÎºÎÅÍ ¿ÏÀüÈ÷ ºÐ¸®Çϱâ

5.6 E2E Å×½ºÆ®¿¡ µµ´ÞÇÒ ¶§±îÁö °è¼Ó °³¼±Çϱâ

5.7 ¸¶Ä¡¸ç

 

CHAPTER 6 ÀÛ¾÷ ´ÜÀ§ ÆÐÅÏ

6.1 ÀÛ¾÷ ´ÜÀ§´Â ÀúÀå¼Ò¿Í Çù·Â

6.2 Å×½ºÆ®-ÅëÇÕ Å×½ºÆ®·Î UoW Á¶Á¤Çϱâ

6.3 ÀÛ¾÷ ´ÜÀ§¿Í ÀÛ¾÷ ´ÜÀ§ÀÇ ÄÜÅؽºÆ® °ü¸®ÀÚ

6.4 UoW¸¦ ¼­ºñ½º °èÃþ¿¡ »ç¿ëÇϱâ

6.5 Ä¿¹Ô/·Ñ¹é µ¿ÀÛ¿¡ ´ëÇÑ ¸í½ÃÀûÀΠÅ×½ºÆ®

6.6 ¸í½ÃÀû Ä¿¹Ô°ú ¾Ï½ÃÀû Ä¿¹Ô

6.7 ¿¹Á¦: UoW¸¦ »ç¿ëÇØ ¿©·¯ ¿¬»êÀ» ¿øÀÚÀû ´ÜÀ§·Î ¹­±â

6.8 ÅëÇÕ Å×½ºÆ® ±ò²ûÇÏ°Ô Á¤¸®Çϱâ

6.9 ¸¶Ä¡¸ç

 

CHAPTER 7 ¾Ö±×¸®°ÔÀÌÆ®¿Í ÀÏ°ü¼º °æ°è

7.1 ¸ðµç °ÍÀ» ½ºÇÁ·¹µå½ÃÆ®¿¡¼­ Ã³¸®ÇÏÁö ¾Ê´Â ÀÌÀ¯

7.2 ºÒº¯Á¶°Ç, Á¦¾à, ÀÏ°ü¼º

7.3 ¾Ö±×¸®°ÔÀÌÆ®¶õ?

7.4 ¾Ö±×¸®°ÔÀÌÆ® ¼±ÅÃ

7.5 ÇÑ ¾Ö±×¸®°ÔÀÌÆ® = ÇÑ ÀúÀå¼Ò

7.6 ¼º´ÉÀº ¾î¶³±î?

7.7 ¹öÀü ¹øÈ£¿Í ³«°üÀû µ¿½Ã¼º

7.8 µ¥ÀÌÅÍ ¹«°á¼º ±ÔÄ¢ Å×½ºÆ®

7.9 ¸¶Ä¡¸ç

7.10 1ºÎ µ¹¾Æº¸±â

 

 

[PART II À̺¥Æ® ±â¹Ý ¾ÆÅ°ÅØó]



CHAPTER 8 À̺¥Æ®¿Í ¸Þ½ÃÁö ¹ö½º

8.1 ÁöÀúºÐÇØÁöÁö ¾Ê°Ô ¸·±â

8.2 ´ÜÀϠåÀÓ ¿øÄ¢

8.3 ¸Þ½ÃÁö ¹ö½º¿¡ ÀüºÎ ´Ù ½ÆÀÚ

8.4 Ã¹ ¹ø° ¼±ÅÃÁö: ¼­ºñ½º °èÃþÀÌ ¸ðµ¨¿¡¼­ À̺¥Æ®¸¦ °¡Á®¿Í ¸Þ½ÃÁö ¹ö½º¿¡ ½Æ´Â´Ù

8.5 µÎ ¹ø° ¼±ÅÃÁö: ¼­ºñ½º °èÃþÀº ÀڽŸ¸ÀÇ À̺¥Æ®¸¦ ¹ß»ýÇÑ´Ù

8.6 ¼¼ ¹ø° ¼±ÅÃÁö: UoW°¡ ¸Þ½ÃÁö ¹ö½º¿¡ À̺¥Æ®¸¦ ¹ßÇàÇÑ´Ù

8.7 ¸¶Ä¡¸ç

 

CHAPTER 9 ¸Þ½ÃÁö ¹ö½º¸¦ Å¸°í ½Ã³»·Î ³ª°¡±â

9.1 »õ·Î¿î ¾ÆÅ°ÅØó°¡ ÇÊ¿äÇÑ »õ·Î¿î ¿ä±¸ »çÇ×

9.2 ¼­ºñ½º ÇÔ¼ö¸¦ ¸Þ½ÃÁö Çڵ鷯·Î ¸®ÆÑÅ͸µÇϱâ

9.3 »õ·Î¿î ¿ä±¸ »çÇ× ±¸ÇöÇϱâ

9.4 »õ Çڵ鷯 ½Ã¹ü¿î¿µÇϱâ

9.5 ¼±ÅÃ: °¡Â¥ ¸Þ½ÃÁö ¹ö½º¿Í µ¶¸³ÀûÀ¸·Î À̺¥Æ® Çڵ鷯 ´ÜÀ§ Å×½ºÆ®Çϱâ

9.6 ¸¶Ä¡¸ç

 

CHAPTER 10 Ä¿¸Çµå¿Í Ä¿¸Çµå Çڵ鷯

10.1 Ä¿¸Çµå¿Í À̺¥Æ®

10.2 ¿¹¿Ü Ã³¸® ¹æ½ÄÀÇ Â÷ÀÌÁ¡

10.3 ³íÀÇ: À̺¥Æ®, Ä¿¸Çµå, ¿À·ù Ã³¸®

10.4 µ¿±âÀûÀ¸·Î ¿À·ù º¹±¸Çϱâ

10.5 ¸¶Ä¡¸ç



CHAPTER 11 À̺¥Æ® ±â¹Ý ¾ÆÅ°ÅØó: À̺¥Æ®¸¦ »ç¿ëÇÑ ¸¶ÀÌÅ©·Î¼­ºñ½º ÅëÇÕ

11.1 ºÐ»êµÈ ÁøÈë °ø, ¸í»ç·Î »ý°¢Çϱâ

11.2 ºÐ»ê ½Ã½ºÅÛ¿¡¼­ ¿À·ù Ã³¸®Çϱâ

11.3 ´ë¾È: ºñµ¿±â ¸Þ½Ã¡À» »ç¿ëÇÑ ½Ã°£Àû °áÇÕ

11.4 ·¹µð½º ¹ßÇà/±¸µ¶ Ã¤³ÎÀ» ÅëÇÕ¿¡ »ç¿ëÇϱâ

11.5 ¿£µåÅõ¿£µå Å×½ºÆ®¸¦ »ç¿ëÇØ ¸ðµç ±â´É ½Ã¹ü¿î¿µÇϱâ

11.6 ³»ºÎ À̺¥Æ®¿Í ¿ÜºÎ À̺¥Æ® ºñ±³

11.7 ¸¶Ä¡¸ç

 

CHAPTER 12 ¸í·É-ÁúÀǠåÀÓ ºÐ¸®(CQRS)

12.1 ¾²±â À§ÇØ Á¸ÀçÇϴ µµ¸ÞÀΠ¸ðµ¨

12.2 °¡±¸¸¦ ±¸¸ÅÇÏÁö ¾ÊÀº »ç¿ëÀÚ

12.3 Post/¸®µð·º¼Ç/Get°ú CQS

12.4 Á¡½ÉÀ» Àá±ñ ¹Ì·ï¶ó

12.5 CQRS ºä Å×½ºÆ®Çϱâ

12.6 ¡®¸íÈ®ÇÑ¡¯ ´ë¾È 1: ±âÁ¸ ÀúÀå¼Ò »ç¿ëÇϱâ

12.7 Àб⠿¬»ê¿¡ ÃÖÀûÈ­µÇÁö ¾ÊÀº µµ¸ÞÀΠ¸ðµ¨

12.8 ¡®¸íÈ®ÇÑ¡¯ ´ë¾È 2: ORM »ç¿ëÇϱâ

12.9 SELECT N+1°ú ´Ù¸¥ °í·Á »çÇ×

12.10 ÀÌÁ¦´Â »ó¾î¸¦ ¿ÏÀüÈ÷ ¶Ù¾î ³ÑÀ» ¶§ÀÌ´Ù

12.11 Àб⠸𵨠±¸ÇöÀ» º¯°æÇϱ⠽±´Ù

12.12 ¸¶Ä¡¸ç

 

CHAPTER 13 ÀÇÁ¸¼º ÁÖÀÔ(±×¸®°í ºÎÆ®½ºÆ®·¡ÇÎ)

13.1 ¾Ï½ÃÀû ÀÇÁ¸¼º°ú ¸í½ÃÀû ÀÇÁ¸¼º

13.2 ¸í½ÃÀû ÀÇÁ¸¼ºÀº ¿ÏÀüÈ÷ ÀÌ»óÇÏ°í ÀÚ¹Ù½º·¯¿î°¡?

13.3 Çڵ鷯 Áغñ: Å¬·ÎÀú¿Í ºÎºÐÇÔ¼ö¸¦ »ç¿ëÇÑ ¼öµ¿ DI

13.4 Å¬·¡½º¸¦ »ç¿ëÇÑ ´ë¾È

13.5 ºÎÆ®½ºÆ®·¦ ½ºÅ©¸³Æ®

13.6 ½ÇÇà µµÁß Çڵ鷯°¡ Á¦°øµÈ ¸Þ½ÃÁö ¹ö½º

13.7 ÁøÀÔÁ¡¿¡¼­ ºÎÆ®½ºÆ®·¦ »ç¿ëÇϱâ

13.8 Å×½ºÆ®¿¡¼­ DI ÃʱâÈ­Çϱâ

13.9 ¾î´ðÅÍ ¡®ÀûÀýÈ÷¡¯ ±¸ÃàÇϱâ: ½ÇÁ¦ »ç·Ê

13.10 ¸¶Ä¡¸ç

 

CHAPTER 14 ¸ÎÀ½¸»

14.1 ¿Ö Áö±ÝÀΰ¡?

14.2 ¿©±â¼­ °Å±â±îÁö ¾î¶»°Ô °¥ ¼ö ÀÖÀ»±î?

14.3 µÚ¾ûŲ Ã¥ÀÓ ºÐ¸®

14.4 ¾Ö±×¸®°ÔÀÌÆ®¿Í Á¦ÇѵȠÄÜÅؽºÆ® ½Äº°Çϱâ

14.5 ½ºÆ®·©±Û·¯ ÆÐÅÏÀ» ÅëÇØ ¸¶ÀÌÅ©·Î¼­ºñ½º·Î ÀüȯÇϴ À̺¥Æ® ±â¹Ý Á¢±Ù ¹æ¹ý

14.6 »õ·Î¿î ÀÏÀ» ½ÃÀÛÇϵµ·Ï ÀÌÇØ°ü°èÀÚ ¼³µæÇϱâ

14.7 ±â¼ú ¸®ºä¾îµéÀÇ Áú¹®

14.8 Ç²°Ç

14.9 Ãß°¡ ÀÚ·á

14.10 ¸¶Ä¡¸ç

 

 

[PART III ºÎ·Ï]



APPENDIX A Á¤¸® ´ÙÀ̾î±×·¥°ú Ç¥



APPENDIX B ÇÁ·ÎÁ§Æ® ±¸Á¶ Æ²

B.1 È¯°æ º¯¼ö, 12ÆÑÅÍ, ¼³Á¤, ÄÁÅ×À̳ʠ³»ºÎ¿Í ¿ÜºÎ

B.2 config.py

B.3 docker-compose¿Í ÄÁÅ×À̳ʠ¼³Á¤

B.4 ¼Ò½º¸¦ ÆÐÅ°Áö·Î ¼³Ä¡Çϱâ

B.5 Dockerfile

B.6 Å×½ºÆ®

B.7 ¸¶Ä¡¸ç

 

APPENDIX C ÀÎÇÁ¶ó ±³Ã¼: CSV·Î ¸ðµç µ¥ÀÌÅ͠ó¸®Çϱâ

C.1 CSV¸¦ »ç¿ëÇÑ ÀúÀå¼Ò¿Í ÀÛ¾÷ ´ÜÀ§ ±¸ÇöÇϱâ

 

APPENDIX D Àå°í¿¡¼­ ÀÛ¾÷ ´ÜÀ§¿Í ÀúÀå¼Ò ÆÐÅÏ »ç¿ëÇϱâ

D.1 Àå°í¸¦ »ç¿ëÇÑ ÀúÀå¼Ò ÆÐÅÏ

D.2 Àå°í ÀÛ¾÷ ´ÜÀ§ ÆÐÅÏ

D.3 API: Àå°í ºä´Â ¾î´ðÅÍ´Ù

D.4 ÀÌ ¸ðµç °Ô ¿Ö ±×·¸°Ô ¾î·Á¿ü´Â°¡?

D.5 À̹̠Àå°í ¾ÛÀ» »ç¿ë ÁßÀ̶ó¸é

D.6 Àå°í¿Í ÇÔ²² ÁøÇàÇÒ ¼ö Àִ ´Ü°èµé

 

APPENDIX E °ËÁõ

E.1 °ËÁõÀ̶õ ¹«¾ùÀΰ¡?

E.2 ¹®¹ý °ËÁõ

E.3 Æ÷½ºÅÚÀÇ ¹ýÄ¢°ú Åç·¯·±Æ® ¸®´õ ÆÐÅÏ

E.4 °¡ÀåÀÚ¸®¿¡¼­ °ËÁõÇϱâ

E.5 Àǹ̠°ËÁõÇϱâ

E.6 °ËÁõ È­¿ë·Ð