architecture

๋ผ๋ผ๋ฒจ ๊ธฐ๋ณธ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

  • .env : ๊ธ€๋กœ๋ฒŒ ์„ค์ • ์ค‘ ๋ฏผ๊ฐํ•œ ๊ฐ’

  • app

    • Console : ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ์ฝ˜์†” ๋ช…๋ น๋“ค

      • Kernel.php : ์ฝ˜์†” ๋ช…๋ น, ํฌ๋ก  ์žก๋“ฑ ๋“ฑ๋ก

    • Exceptions

      • Handler.php : ์ „์—ญ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์ •์˜

    • Http

      • Controllers : http ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ

        • Auth : ๋ผ๋ผ๋ฒจ์— ๊ธฐ๋ณธ ๋‚ด์žฅ๋œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ปจํŠธ๋กค๋Ÿฌ

      • Middleware : Authenticate, Encrypt,csrfToken๋“ฑ๊ณผ ๊ฐ™์ด ๋ฏธ๋“ค์›จ์–ด๋“ค ์ •์˜

      • Kernel.php : http ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ธฐ๋ณธ์ด ๋˜๋Š” ์ปค๋„

    • Providers

      • AppServiceProvider.php : ์„œ๋น„์Šค๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค

      • AuthServiceProvider.php : ์‚ฌ์šฉ์ž ์ธ๊ฐ€์™€ ๊ด€๋ จ๋œ ์ •์ฑ… ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค

      • BroadcastServiceProvider.php : ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฉ”์‹œ์ง€ ์ „์†ก ์ œ์–ด ํด๋ž˜์Šค

      • EventServiceProvider.php : ์ด๋ฒคํŠธ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ ์—ฐ๊ฒฐ ํด๋ž˜์Šค

      • RouteServiceProvider.php : routes ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ •์˜ํ•œ ๋ผ์šฐํŒ… ํ™œ์„ฑํ™” ํด๋ž˜์Šค

    • Models

      • User.php : ๊ธฐ๋ณธ ๋‚ด์žฅ User model

  • bootstrap : ํ”„๋ ˆ์ž„์›Œํฌ ๋ถ€ํŒ… ์Šคํฌ๋ฆฝํŠธ

  • composer.json : npm์˜ package.json๊ณผ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ ๊ด€๋ฆฌ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

  • composer.lock : ํ˜„์žฌ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•œ ์˜์กด์„ฑ์˜ ๋ฒ„์ „ ์ž ๊ธˆ ํŒŒ์ผ

  • config : db, ํ, ๋ฉ”์ผ๋“ฑ ์ „์—ญ ์„ค์ •์„ ๋‹ด๋Š” ๋””๋ ‰ํ† ๋ฆฌ

  • database

    • factories : ๋”๋ฏธ ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ ˆ์‹œํ”ผ๋ฅผ ๋‹ด๋Š” ๋””๋ ‰ํ† ๋ฆฌ

    • migrations : ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ dbํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ๋ฅผ ๋‹ด๋Š” ๋””๋ ‰ํ† ๋ฆฌ

    • seeds : ์ƒ์„ฑํ•œ ํ…Œ์ด๋ธ”์— ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๋ ˆ์‹œํ”ผ๋ฅผ ๋‹ด๋Š” ๋””๋ ‰ํ† ๋ฆฌ

  • package.json : ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜์กดํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๋ฆฌ์†Œ์Šค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

  • phpunit.xml : PhpUnit(ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ) ์„ค์ •

  • public : ์›น์„œ๋ฒ„ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ

  • resources

    • css/js

    • lang : ๋‹ค๊ตญ์–ด ์ง€์›์„ ์œ„ํ•œ ์–ธ์–ด๋ณ„ ์‚ฌ์ „์„ ๋‹ด๋Š” ๋””๋ ‰ํ† ๋ฆฌ

    • vies : ๋ทฐ ํŒŒ์ผ์„ ๋‹ด๋Š” ๋””๋ ‰ํ† ๋ฆฌ

  • routes

    • api.php : api ์—”๋“œ ํฌ์ธํŠธ

    • console.php : ํด๋กœ์ € ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•œ artisan ์ฝ˜์†” ๋ช…๋ น

    • web.php : ์›น ์—”๋“œ ํฌ์ธํŠธ

  • server.php: ๋กœ์ปฌ ์›น ์„œ๋ฒ„ ๊ตฌ๋™์„ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ

  • storage : ๋ผ๋ผ๋ฒจ์˜ ํŒŒ์ผ ์ €์žฅ์†Œ(์บ์‹œ, ๋กœ๊ทธ ๋“ฑ)

  • tests : ํ…Œ์ŠคํŠธ ํŒŒ์ผ๋“ค์„ ๋‹ด๋Š” ๋””๋ ‰ํ† ๋ฆฌ

  • vendor : ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜์กดํ•˜๋Š” ์˜์กด์„ฑ๋“ค์„ ๋‹ด๋Š” ๋””๋ ‰ํ† ๋ฆฌ

์„œ๋น„์Šค ์ž‘๋™์›๋ฆฌ

  1. ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€(ํŠน์ • url)์š”์ฒญ

  2. ์š”์ฒญ์ด ์›น์„œ๋ฒ„์— ๋„์ฐฉํ•˜๊ณ  css/image๋“ฑ ๋ฐ”๋กœ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ์€ ์‘๋‹ตํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด index.php๋กœ ์š”์ฒญ์„ ๋„˜๊ธด๋‹ค.

  3. index.php์—๋Š” ๋ผ๋ผ๋ฒจ์˜ ๋ถ€ํŒ…์‹œํ€€์Šค๊ฐ€ ๋‹ด๊ฒจ์žˆ์–ด php์—๊ฒŒ ์ž‘์—…์„ ๋„˜๊ธด๋‹ค.

  4. routes/web.php์— ์ •์˜ํ•œ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์—์„œ ์š”์ฒญ์— ์ ํ•ฉํ•œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š”๋‹ค.

    1. ์ ํ•ฉํ•œ ๊ฒฝ๋กœ๊ฐ€ ์—†๋‹ค๋ฉด ์˜ค๋ฅ˜๋ฅผ ์‘๋‹ตํ•œ๋‹ค.

  5. ์ ํ•ฉํ•œ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ „์—ญ ๋ฏธ๋“ค์›จ์–ด์™€ ํ•ด๋‹น ๊ฒฝ๋กœ์— ๋งž๋Š” route์— ์ •์˜ํ•œ ๋ผ์šฐํŠธ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ http์š”์ฒญ์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค.

    1. ๋ฏธ๋“ค์›จ์–ด๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์˜ˆ์™ธ๋Š” ์ „์—ญ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์ฒ˜๋ฆฌํ•œ๋‹ค.

  6. ๋ฏธ๋“ค์›จ์–ด๋ฅผ ํ†ต๊ณผํ•˜๋ฉด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ปจํŠธ๋กค๋Ÿฌ์—๊ฒŒ ์ž‘์—…์„ ์œ„์ž„ํ•˜๊ณ  ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

    1. ์ด๋•Œ, ๋ผ๋ผ๋ฒจ ์ปดํฌ๋„ŒํŠธ, ์™ธ๋ถ€ ์ปดํฌ๋„ŒํŠธ, ์‚ฌ์šฉ์ž ์ •์˜ ์ปดํฌ๋„ŒํŠธ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ

  7. ์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ๋ฅผ ์—˜๋กœํ€€ํŠธ(orm)๋ฅผ ์ด์šฉํ•ด db์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ณ  ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์™ธ๋ถ€ ๋ผ๋ผ๋ฒจ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ ์‚ดํŽด๋ณผ๋•Œ composer.json๊ณผ routes/web.php๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๋ด์•ผ ์–ด๋–ค ์™ธ๋ถ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”์ง€์™€ url์™€ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ„ ์—ฐ๊ฒฐ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

app ํ™˜๊ฒฝ ์„ค์ •

  • APP_ENV=local : ๋ผ๋ผ๋ฒจ ์‹คํ–‰ ํ™˜๊ฒฝ

  • APP_DEBUG=true : ๋””๋ฒ„๊ทธ ์˜ต์…˜ ํ™œ์„ฑํ™”

  • APP_KEY=base64:xxxx.. : ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ‚ค ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’

    • php artisan key:generate๋ช…๋ น์–ด๋กœ ์ตœ์ดˆ์— ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

    • ์‹ค์ œ ์šด์˜์ค‘์ธ ์„œ๋น„์Šค์— ์ด ๊ฐ’์ด ๋ฐ”๋€Œ๊ฒŒ ๋˜๋ฉด ์ฟ ํ‚ค์™€ ๊ฐ™์€ ๋ฏผ๊ฐ์ •๋ณด๋“ค์„ ๋ณตํ˜ธํ™” ํ•  ์ˆ˜ ์—†์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  • APP_URL=htpp://localhost : ์ฝ˜์†”์—๋Š” $_SERVER['HTTP_HOST']๊ฐ’์ด ์—†์–ด ์•„ํ‹ฐ์ฆŒ ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด ์„ค์ •์„ ๋Œ€์ฒด๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

php artisan serve๋ช…๋ น์–ด๋กœ ๋ผ๋ผ๋ฒจ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

Last updated