ÄÜÅÙÃ÷ »ó¼¼º¸±â
FastAPI °³Á¤ÆÇ


FastAPI °³Á¤ÆÇ

FastAPI °³Á¤ÆÇ

<¿Â°³¹ßÆÀ> Àú | ¿Â³ëÆ®

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

ÄÜÅÙÃ÷ ¼Ò°³

¿À¸®Áö³ÎÆÇÀÌ ÀÖ´Â °æ¿ì °³Á¤ÆÇÀ» ´Ù½Ã ±¸¸ÅÇÒ ÇÊ¿ä ¾øÀÌ ¿À¸®Áö³ÎÆÇÀ» ¾÷µ¥ÀÌÆ®ÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÆÄÀ̽㿡¼­ °í¼º´É API¸¦ ±¸ÃàÇϱâ À§ÇÑ FastAPI ÇÁ·¹ÀÓ¿öÅ©¸¦ ¸¶½ºÅÍÇϱâ À§ÇÑ Á¾ÇÕ °¡À̵åÀÎ "FastAPI"¿¡ ¿À½Å °ÍÀ» ȯ¿µÇÕ´Ï´Ù. FastAPI´Â ¼Óµµ, È¿À²¼º, »ç¿ë ÆíÀǼºÀ¸·Î ÀÎÇØ ÃֽŠAPI °³¹ßÀ» À§ÇÑ °¡Àå Àαâ ÀÖ´Â ÇÁ·¹ÀÓ¿öÅ© Áß Çϳª·Î ºü¸£°Ô ÀÚ¸® Àâ¾Ò½À´Ï´Ù. ÀÌ Ã¥Àº ±âº»ºÎÅÍ ½ÃÀÛÇÏ¿© °í±Þ °³³äÀ¸·Î ¹ßÀüÇÏ´Â FastAPIÀÇ ÁÖ¿ä ±â´É°ú ÀÌÁ¡À» ¾È³»ÇÏ¿© ÇÁ·Î´ö¼Ç ȯ°æ¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â °­·ÂÇÑ API¸¦ ±¸ÃàÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇÕ´Ï´Ù.

1Àå, 'FastAPI ¼Ò°³'¿¡¼­´Â FastAPIÀÇ °³¿ä, ±â´É ¹× ÀÌÁ¡À» ¼³¸íÇÕ´Ï´Ù. FastAPI°¡ ºûÀ» ¹ßÇÏ´Â ½ÇÁ¦ »ç¿ë »ç·Ê¸¦ »ìÆ캸°í, °³¹ß ȯ°æÀ» ¼³Ä¡ÇÏ°í ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¹è¿ö API¸¦ ºü¸£°Ô ±¸ÃàÇÒ ¼ö ÀÖµµ·Ï ÁغñÇÕ´Ï´Ù.

2Àå, 'ù ¹ø° API ºôµå'¿¡¼­´Â ù ¹ø° FastAPI ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Â °úÁ¤À» ¾È³»ÇÕ´Ï´Ù. °æ·Î¸¦ Á¤ÀÇÇÏ°í, °æ·Î ¹× Äõ¸® ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ°í, °³¹ß ¼­¹ö¸¦ ½ÇÇàÇÏ´Â ¹æ¹ýÀ» ¹è¿ì°Ô µË´Ï´Ù. ÀÌ Àå¿¡¼­´Â FastAPI ÇÁ·ÎÁ§Æ®ÀÇ Çʼö ±¸¼º ¿ä¼Ò¸¦ ¼Ò°³ÇÔÀ¸·Î½á źźÇÑ ±âÃʸ¦ ´ÙÁý´Ï´Ù.

3Àå, 'µ¥ÀÌÅÍ ¸ðµ¨ ¹× °ËÁõ'¿¡¼­´Â µ¥ÀÌÅÍ ¸ðµ¨À» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëÇÏ´Â µ¥ÀÌÅÍ À¯È¿¼º °Ë»ç ¶óÀ̺귯¸®ÀÎ PydanticÀ» ¼Ò°³ÇÕ´Ï´Ù. ¿äû µ¥ÀÌÅÍÀÇ À¯È¿¼ºÀ» °Ë»çÇÏ°í ¿À·ù¿Í ¿¹¿Ü¸¦ ó¸®ÇÏ¿© API¸¦ °­·ÂÇÏ°í »ç¿ëÀÚ Ä£È­ÀûÀ¸·Î ¸¸µå´Â ¹æ¹ýÀ» ¹è¿ì°Ô µË´Ï´Ù.

4Àå, 'CRUD ÀÛ¾÷'¿¡¼­´Â SQLite ¶Ç´Â PostgreSQL°ú °°Àº µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇϸ鼭 °£´ÜÇÑ CRUD API¸¦ ¸¸µå´Â µ¥ ÁßÁ¡À» µÓ´Ï´Ù. µ¥ÀÌÅͺ£À̽º Äõ¸®¸¦ ½ÇÇàÇÏ°í CRUD ¿£µåÆ÷ÀÎÆ®ÀÇ ±â´É°ú Á¤È®¼ºÀ» Å×½ºÆ®ÇÏ´Â ¹æ¹ýÀ» ¹è¿ì°Ô µË´Ï´Ù.

5Àå, 'ÀÎÁõ ¹× ±ÇÇÑ ºÎ¿©'¿¡¼­´Â FastAPI ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾È¿¡ ´ëÇØ ÀÚ¼¼È÷ »ìÆ캾´Ï´Ù. OAuth2 ºñ¹Ð¹øÈ£ È帧À» ±¸ÇöÇÏ°í, Á¾¼Ó¼ºÀ» »ç¿ëÇÏ¿© °æ·Î¸¦ º¸È£ÇÏ°í, FastAPIÀÇ ±âº» Á¦°ø º¸¾È ±â´ÉÀ¸·Î ÅäÅ«À» °ü¸®ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¾´Ï´Ù.

6Àå, 'ºñµ¿±â ÇÁ·Î±×·¡¹Ö'¿¡¼­´Â ÆÄÀ̽ãÀÇ ºñµ¿±â ¹× ´ë±â ÇÔ¼ö¸¦ »ç¿ëÇÑ ºñµ¿±â ÇÁ·Î±×·¡¹ÖÀ» ¼Ò°³ÇÕ´Ï´Ù. ¸ð¹ü »ç·Ê¸¦ µû¸£°í ÀϹÝÀûÀÎ ÇÔÁ¤À» ÇÇÇϸ鼭 ºñµ¿±â È£ÃâÀ» ÇÏ°í µ¥ÀÌÅͺ£À̽º ÀÛ¾÷À» ºñµ¿±â½ÄÀ¸·Î ½ÇÇàÇÏ´Â ¹æ¹ýÀ» ¹è¿ó´Ï´Ù.

7Àå, '¹Ìµé¿þ¾î ¹× ÀÇÁ¸¼º'¿¡¼­´Â FastAPIÀÇ ¹Ìµé¿þ¾î¸¦ ´Ù·ç¸ç ¾ÖÇø®ÄÉÀ̼ǿ¡ ¹Ìµé¿þ¾î ·¹À̾ Ãß°¡ÇÏ¿© ±â´ÉÀ» Çâ»ó½ÃÅ°´Â ¹æ¹ýÀ» ¾Ë·ÁÁÝ´Ï´Ù. ¶ÇÇÑ ÀÇÁ¸¼º ÁÖÀÔ ÆÐÅÏ°ú ÀÇÁ¸¼ºÀ» È¿°úÀûÀ¸·Î »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.

8Àå, '¹é±×¶ó¿îµå ÀÛ¾÷'¿¡¼­´Â FastAPI ¾Û¿¡¼­ ¹é±×¶ó¿îµå ÀÛ¾÷À» ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. ¹é±×¶ó¿îµå ÀÛ¾÷À» ó¸®Çϱâ À§ÇØ Celery¸¦ ÅëÇÕÇÏ°í ÀÌ·¯ÇÑ ÀÛ¾÷À» È¿À²ÀûÀ¸·Î ¸ð´ÏÅ͸µÇÏ°í °ü¸®ÇÏ´Â ¹æ¹ýÀ» »ìÆ캾´Ï´Ù.

9Àå, 'Å×½ºÆ® ¹× µð¹ö±ë'¿¡¼­´Â Å×½ºÆ® ÄÉÀ̽º ÀÛ¼º°ú FastAPI ¾ÖÇø®ÄÉÀÌ¼Ç µð¹ö±ë¿¡ ÁßÁ¡À» µÓ´Ï´Ù. FastAPIÀÇ TestClient¸¦ »ç¿ëÇØ ¿£µåÆ÷ÀÎÆ®¸¦ Å×½ºÆ®ÇÏ°í ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¾ÈÁ¤ÀûÀÌ°í ¹ö±×°¡ ¾ø´ÂÁö È®ÀÎÇϱâ À§ÇÑ Å×½ºÆ® ¸ð¹ü »ç·Ê¿¡ ´ëÇÑ ÅëÂû·ÂÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

10Àå, '¹èÆ÷ ¹× ÇÁ·Î´ö¼Ç'¿¡¼­´Â ¹èÆ÷¸¦ À§ÇØ FastAPI ¾ÖÇø®ÄÉÀ̼ÇÀ» ÁغñÇÕ´Ï´Ù. Docker¸¦ »ç¿ëÇÏ¿© ¾ÛÀ» ÄÁÅ×À̳ÊÈ­ÇÏ°í, AWS ¶Ç´Â Heroku¿Í °°Àº Ŭ¶ó¿ìµå Á¦°ø¾÷ü¿¡ ¹èÆ÷ÇÏ°í, ÇÁ·Î´ö¼Ç ȯ°æ¿¡¼­ ¼º´ÉÀ» ÃÖÀûÈ­ÇÏ´Â ¹æ¹ýÀ» ¹è¿ó´Ï´Ù.

11Àå, '°í±Þ ÁÖÁ¦'¿¡¼­´Â WebSocket Áö¿ø, GraphQL ÅëÇÕ, ij½Ì Àü·«, ¼Óµµ Á¦ÇÑ°ú °°Àº º¸¾È ¸ð¹ü »ç·Ê¿Í °°Àº °í±Þ ±â´ÉÀ» »ìÆ캾´Ï´Ù. ÀÌ·¯ÇÑ ÁÖÁ¦¸¦ ÅëÇØ ´õ º¹ÀâÇÏ°í ±â´ÉÀÌ Ç³ºÎÇÑ API¸¦ ±¸ÃàÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» È®ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.

12Àå, 'Ä¿¹Â´ÏƼ ¹× ¸®¼Ò½º'¿¡¼­´Â ¹æ´ëÇÑ FastAPI Ä¿¹Â´ÏƼ¸¦ ¼Ò°³ÇÕ´Ï´Ù. ¹®¼­, Æ©Å丮¾ó, Æ÷·³À» ãÀ» ¼ö ÀÖ´Â °÷°ú ¿ÀÇ ¼Ò½º ÇÁ·ÎÁ§Æ®¿¡ ±â¿©ÇÏ´Â ¹æ¹ýÀ» ¹è¿ï ¼ö ÀÖ½À´Ï´Ù.

ÀÌ Ã¥À» ´Ù ÀÐ°í ³ª¸é ù ¹ø° API ±¸ÃàºÎÅÍ ÇÁ·Î´ö¼Ç ȯ°æ¿¡ ¹èÆ÷ÇÏ´Â °Í±îÁö FastAPI¿¡ ´ëÇØ ±íÀÌ ÀÖ°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. °í¼º´É API¸¦ °³¹ßÇÏ´Â µ¥ ÇÊ¿äÇÑ µµ±¸, ±â¼ú ¹× ¸ð¹ü »ç·Ê¸¦ °®Ãß°í FastAPIÀÇ ÀáÀç·ÂÀ» ÃÖ´ëÇÑ È°¿ëÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù.

º» µµ¼­´Â ÀΰøÁö´É ±â¹ÝÀ¸·Î °Ë»öµÈ ÄÜÅÙÃ÷¸¦ ¹ÙÅÁÀ¸·Î, ÀÏ¹Ý ¼­½Ä, Áú¹®°ú ´äº¯, ¹®Á¦ Ç®ÀÌ µî ´Ù¾çÇÑ Çü½ÄÀ» ÅëÇØ ÇÙ½É °³³äÀ» ü°èÀûÀ¸·Î ¼³¸íÇÕ´Ï´Ù. µ¶ÀÚµéÀÌ °³³äÀ» º¸´Ù ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï, ¸í·áÇÏ°í °£°áÇÑ ±¸Á¶¸¦ À¯ÁöÇÏ¿´À¸¸ç, °¢ ¼Ò½º Äڵ忡 ÀûÇÕÇÑ ÇÏÀ̶óÀÌÆ® ±â´ÉÀ» Á¦°øÇÏ¿© °¡µ¶¼ºÀ» ±Ø´ëÈ­ÇÏ¿´½À´Ï´Ù.

ÀÌ Ã¥Àº Á¾ÀÌÃ¥ ÇüÅ°¡ ¾Æ´Ñ EPUB ÀüÀÚÃ¥À¸·Î Á¦À۵Ǿî, ÀüÅëÀûÀÎ ÆäÀÌÁö ·¹À̾ƿô°ú´Â ´Ù¸¥, À¥ ±â¹ÝÀÇ È帧À» ÃëÇÏ°í ÀÖ½À´Ï´Ù. µû¶ó¼­ Á¾ÀÌÃ¥°ú °°Àº ±¸¼º¿¡ Àͼ÷ÇÑ µ¶ÀÚ¶ó¸é ´Ù¼Ò ÀÌÁú°¨À» ´À³¥ ¼ö ÀÖ½À´Ï´Ù.

º» ÁÖÁ¦¿¡ óÀ½ Á¢ÇÏ´Â µ¶ÀÚ¿¡°Ô´Â ÀÌ µµ¼­°¡ ´Ù¼Ò ¹æ´ëÇÑ ³»¿ë°ú ±íÀÌ ÀÖ´Â °³³äÀ» ´Ù·ç°í ÀÖ¾î ÁÖÁ¦¸¦ ÀÌÇØÇÏ´Â µ¥ ¾î·Á¿òÀ» ´À³¥ ¼ö ÀÖÀ¸¹Ç·Î, °ü·Ã ºÐ¾ß¿¡ ¾î´À Á¤µµ °æÇèÀÌ ÀÖ´Â µ¶Àڵ鿡°Ô ÀÌ Ã¥À» ±ÇÀåÇÕ´Ï´Ù. ±âÁ¸ Áö½ÄÀ» ³ÐÈ÷°íÀÚ ÇÏ´Â À̵鿡°Ô´Â ½ÉÈ­µÈ ÀÌÇØ¿Í Áö½ÄÀÇ È®ÀåÀ» µµ¿ï ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

¸ñÂ÷

1Àå : FastAPI ¼Ò°³
___1. FastAPI °³¿ä
___2. ±â´É ¹× ÀÌÁ¡
___3. »ç¿ë »ç·Ê ¹× ¾ÖÇø®ÄÉÀ̼Ç
___4. ¼³Ä¡ ¹× ¼³Á¤
2Àå : ù ¹ø° API ºôµå
___1. ±âº» FastAPI ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â
___2. °æ·Î Á¤ÀÇ
___3. °æ·Î ¹× Äõ¸® ¸Å°³º¯¼ö »ç¿ë
___4. °³¹ß ¼­¹ö ½ÇÇà
3Àå : µ¥ÀÌÅÍ ¸ðµ¨ ¹× °ËÁõ
___1. Pydantic ¼Ò°³
___2. µ¥ÀÌÅÍ ¸ðµ¨ Á¤ÀÇ
___3. ¿äû µ¥ÀÌÅÍ °ËÁõ
___4. ¿À·ù ¹× ¿¹¿Ü ó¸®
4Àå : CRUD ÀÛ¾÷
___1. °£´ÜÇÑ CRUD API ¸¸µé±â
___2. µ¥ÀÌÅͺ£À̽º ÀÛ¾÷(SQLite, PostgreSQL µî)
___3. µ¥ÀÌÅͺ£À̽º Äõ¸® ½ÇÇà
___4. CRUD ¿£µåÆ÷ÀÎÆ® Å×½ºÆ®
5Àå : ÀÎÁõ ¹× ±ÇÇÑ ºÎ¿©
___1. FastAPIÀÇ ÀÎÁõ ÀÌÇØ
___2. OAuth2 ºñ¹Ð¹øÈ£ È帧 ±¸Çö
___3. ÀÇÁ¸¼ºÀ» »ç¿ëÇÏ¿© °æ·Î º¸¾È
___4. ÅäÅ« °ü¸® ¹× ÅäÅ« »õ·Î °íħ
6Àå : ºñµ¿±â ÇÁ·Î±×·¡¹Ö
___1. Async ¹× Await ¼Ò°³
___2. ºñµ¿±â È£ÃâÇϱâ
___3. µ¥ÀÌÅͺ£À̽º¿¡¼­ ºñµ¿±â »ç¿ë ¿î¿µ
___4. ÀϹÝÀûÀÎ ÇÔÁ¤°ú ¸ð¹ü »ç·Ê
7Àå : ¹Ìµé¿þ¾î ¹× ÀÇÁ¸¼º
___1. FastAPIÀÇ ¹Ìµé¿þ¾î ÀÌÇØ
___2. ¾ÖÇø®ÄÉÀ̼ǿ¡ ¹Ìµé¿þ¾î Ãß°¡
___3. ÀÇÁ¸¼º »ý¼º ¹× »ç¿ë
___4. ÀÇÁ¸¼º ÁÖÀÔ ÆÐÅÏ
8Àå : ¹é±×¶ó¿îµå ÀÛ¾÷
___1. ¹é±×¶ó¿îµå ÀÛ¾÷ ¼Ò°³
___2. ¹é±×¶ó¿îµå ÀÛ¾÷ ±¸Çö
___3. FastAPI¿Í ÇÔ²² Celery »ç¿ë
___4. ¹é±×¶ó¿îµå ÀÛ¾÷ ¸ð´ÏÅ͸µ ¹× °ü¸®
9Àå : Å×½ºÆ® ¹× µð¹ö±ë
___1. FastAPI¿¡ ´ëÇÑ Å×½ºÆ® »ç·Ê ÀÛ¼º
___2. ¿£µåÆ÷ÀÎÆ®¿¡ TestClient »ç¿ë
___3. FastAPI ¾ÖÇø®ÄÉÀÌ¼Ç µð¹ö±ë
___4. Å×½ºÆ® ¸ð¹ü »ç·Ê
10Àå : ¹èÆ÷ ¹× ÇÁ·Î´ö¼Ç
___1. ¹èÆ÷ Áغñ
___2. µµÄ¿·Î ÄÁÅ×À̳ÊÈ­
___3. Ŭ¶ó¿ìµå °ø±ÞÀÚ(AWS, Heroku µî)¿¡ ¹èÆ÷
___4. ¸ð´ÏÅ͸µ ¹× ¼º´É ÃÖÀûÈ­
11Àå : °í±Þ ÁÖÁ¦
___1. FastAPI¸¦ »ç¿ëÇÑ WebSocket
___2. GraphQL ÅëÇÕ
___3. ij½Ì Àü·«
___4. ¼Óµµ Á¦ÇÑ ¹× º¸¾È ¸ð¹ü »ç·Ê
12Àå : Ä¿¹Â´ÏƼ ¹× ¸®¼Ò½º
___1. FastAPI ¹®¼­ ¹× Æ©Å丮¾ó
___2. Ä¿¹Â´ÏƼ Æ÷·³ ¹× Áö¿ø
___3. ¿ÀǼҽº ±â¿©