Junction Asia Hackathon

๊ธฐํš์ž, ๋””์ž์ด๋„ˆ์™€ ํ˜‘์—…ํ•˜์—ฌ โ€˜๋ถ€์‚ฐ ํƒ์‹œ ํˆฌ์–ด ์„œ๋น„์Šคโ€™์—์„œ Backend ๊ฐœ๋ฐœ์„ ๋งก์•„, FastAPI ๊ธฐ๋ฐ˜ ์ „์ฒด API๋ฅผ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿคท๐Ÿป ์ฐธ์—ฌ ์ด์œ ์™€ ๋ชฉ์ 

  • ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ํ•ญ์ƒ ํŒ€์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค. ์„ฑ๊ณต์ ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฐฐํฌํ•ด๋„ ํŒ€์›๋“ค์ด ํ•จ๊ป˜ํ•ด์„œ ๋งŒ๋“ค์–ด๋‚ธ ๊ฒฐ๊ณผ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ฌธ๋“ '๋‚˜ ํ˜ผ์ž์„œ ํ•ด๋„ ์ด์ •๋„๊นŒ์ง€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์„๊นŒ?'๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

  • ๋‚ด ์‹ค๋ ฅ์„ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ณ  ์ƒˆ๋กœ์šด ๊ณณ์—์„œ ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ๋“ค๊ณผ ๊ธด์žฅ๊ฐ ์žˆ๊ฒŒ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.

  • ๋งˆ์นจ ์ง€์ธ์ด Junction Asia Hackathon ์„ ์ถ”์ฒœํ•ด์คฌ๋‹ค. ์ด ๋•Œ ์Šฌ๋กœ๊ฑด์ด 'ํ•œ๊ณ„๋ฅผ ๋›ฐ์–ด๋„˜๋Š”' ๋ญ ์ด๋Ÿฐ ๋ฌธ๊ตฌ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ๊ฐœ๋ฐœ ์‹ค๋ ฅ์— ๋Œ€ํ•œ ์„ฑ์žฅ ์š•๊ตฌ๋Š” ๋Š˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ๋ฏผํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ง€์›ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

  • ๊ฒฐ๋ก  : ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์—์„œ ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ๋“ค๊ณผ ๊ฐœ๋ฐœํ•˜๋ฉฐ ํ•œ๊ณ„๋ฅผ ๋›ฐ์–ด๋„˜๊ณ  ๋‚ด ์‹ค๋ ฅ์„ ํ™•์ธ(ํ…Œ์ŠคํŠธ)ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค.

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿซ Project Presentation

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๊ฐœ๋ฐœ

๋ถ€์‚ฐ ํˆฌ์–ด ์„œ๋น„์Šค ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ

Stack

  • FastAPI

    • ํ•ด์ปคํ†ค์ด๋ผ๋Š” ์ƒ์‚ฐ์„ฑ๊ณผ ์†๋„๊ฐ€ ์ค‘์š”ํ•œ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์—ฌ, Python ๊ธฐ๋ฐ˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ–ˆ๋‹ค.

    • Python ๊ธฐ๋ฐ˜์—๋„ ๋‹ค์–‘ํ•œ ํ›„๋ณด๋“ค์ด ์žˆ์—ˆ์ง€๋งŒ, ์ต์ˆ™ํ•˜๊ณ  ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ •๋ง ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” FastAPI๋ฅผ ์„ ํƒํ–ˆ๋‹ค.

  • MySQL

    • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋Š” MySQL๋ฅผ ์„ ํƒํ–ˆ๋‹ค.

    • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ˜„์—…์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ , ์ต์ˆ™ํ•œ ์—”์ง„์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

  • Docker

    • ํ”„๋ก ํŠธ ๋ถ„๋“ค์ด ๋กœ์ปฌ์—์„œ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก Back-end server, DB๋ฅผ ์ปจํ…Œ์ด๋„ˆํ™” ํ•˜์—ฌ docker-compose.yml ํŒŒ์ผ๋กœ ์ž‘์„ฑํ•˜์˜€๋‹ค.

    • ๋ฐฐํฌ๋ฅผ ์•ˆ ํ•œ ์ƒํ™ฉ์—์„œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋™์ผํ•˜๊ฒŒ ์‹คํ–‰ํ•˜๋ ค๋Š” ๋ชฉ์ ๋„ ์žˆ์—ˆ๋‹ค.

Dev

๊ตฌ์ƒ

  • ๊ฐ„๋‹จํ•œ API 6๊ฐœ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด์—ˆ๋‹ค.

  • ํ”ผ๊ทธ๋งˆ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋…ธ์…˜์œผ๋กœ ๋ช…์„ธ๋ฅผ ํ•ด๋ณด๋‹ˆ ๋Œ€๋žต์ ์œผ๋กœ ์ดˆ์•ˆ์€ ์ €๋ ‡๊ฒŒ ๋‚˜์™”์—ˆ๋‹ค.

  • DB schema๋ฅผ ๋น ๋ฅด๊ฒŒ ์งœ๋ณด์•˜๋‹ค. ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์ˆ˜์ •๋„ ๋งŽ์ด ๋˜์—ˆ๋‹ค. (dbdiagram.io)

  • API test๋Š” Postman์œผ๋กœ ํ•˜๊ณ , ๋ช…์„ธ๋Š” Notion์œผ๋กœ ์ž‘์„ฑํ•˜์˜€๋‹ค.

  • ์ž๋™์œผ๋กœ ๋ฌธ์„œํ™”๋„ ํ•ด์ค€๋‹ค. (๋น ๋ฅด๊ฒŒ ์งœ๋А๋ผ RESTful ํ•˜์ง€๋Š” ์•Š๋‹ค.)

Docker-compose.yml & Dockerfile

๐Ÿ“ฆ Docker builds and run

Directory Structure

  • ๊ธ‰ํ•˜๊ฒŒ ์งœ์„œ ๋„ค์ด๋ฐ๋„ ๊ตฌ์กฐ๋„ ์—‰๋ง์ด์—ˆ๋‹ค ใ…‹ใ…Žใ…‹ใ…Ž

๐Ÿ–‡๏ธ ๋งํฌ

๐Ÿชฌ ํšŒ๊ณ 

  • ํŒ€ ๋‚ด ๋ฐฑ์—”๋“œ๊ฐ€ ๋‚˜ ํ˜ผ์ž๋ผ ๊ฑฑ์ •ํ–ˆ์—ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์—ฌ์œ ์žˆ๊ฒŒ PoC ๊ธฐ๋Šฅ์˜ API๋Š” ๊ฐœ๋ฐœ์„ ์™„๋ฃŒํ•˜์˜€๋‹ค.

  • ํ•˜์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ฐœ๋ฐœ ํ€„๋ฆฌํ‹ฐ ์ ์œผ๋กœ ์•„์‰ฌ์šด ๊ฒƒ์ด ๋งŽ์•˜๋‹ค. ๋๋‚˜๊ณ  ๋‚˜๋‹ˆ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ๋งŽ์ด ๋ณด์˜€๋‹ค ..

  • ๊ทธ๋ž˜๋„ ์ด๋ฒˆ ๊ฒฝํ—˜์„ ํ†ตํ•ด ๋‚˜ ํ˜ผ์ž์„œ๋„ ๊ฐ„๋‹จํ•œ PoC API ๊ฐœ๋ฐœ์ด ๋น ๋ฅด๊ฒŒ ๊ฐ€๋Šฅํ•˜๊ตฌ๋‚˜๋ฅผ ๋А๋‚„ ์ˆ˜ ์žˆ์–ด ์ž์‹ ๊ฐ์ด ์ƒ๊ฒผ๋‹ค.

  • ๋ฌด์—‡๋ณด๋‹ค ์ข‹์€ ํŒ€์›๊ณผ ์‚ฌ๋žŒ๋“ค์„ ๋งŒ๋‚  ์ˆ˜ ์žˆ์–ด ํ–‰์šด์ด์—ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋‚ ์— ํ•˜๋ฃจ ๋” ์žˆ์œผ๋ฉด์„œ ์นœํ•ด์ง„ ์นœ๊ตฌ๋ž‘ ํ•ด์šด๋Œ€ ์—ฌํ–‰๋„ ํ–ˆ๋‹ค ใ…Žใ…Ž

Last updated