๐Ÿพ์ž ๋ฉ๋ฉ์Œค (๋ฐค ํ•˜๋Š˜ ์ž‘์€ โ˜…)
๐Ÿพ์ž ๋ฉ๋ฉ์Œค์˜ ์ปดํ“จํ„ฐ ๋ฐ ์ฝ”๋”ฉ ๊ณต๋ถ€
๐Ÿพ์ž ๋ฉ๋ฉ์Œค (๋ฐค ํ•˜๋Š˜ ์ž‘์€ โ˜…)
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€ (63)
    • Docker (๋„์ปค) (34)
      • ์„œ๋ฒ„๊ตฌ์ถ•(SSL) (19)
      • ์„œ๋ฒ„ ๋ชจ๋‹ˆํ„ฐ๋ง (5)
      • ModSecurity,Fail2ban (5)
      • ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ (3)
      • ๋„์ปค ์„ค์น˜ (2)
    • ๋ฆฌ๋ˆ…์Šค (2)
    • VSCODE (1)
    • ํด๋ผ์šฐ๋“œ (4)
      • ์˜ค๋ผํดํด๋ผ์šฐ๋“œ (2)
      • ๊ตฌ๊ธ€ํด๋ผ์šฐ๋“œ (2)
    • ๋ผ๋ผ๋ฒจ(laravel) (21)
    • ์žก๋™์‚ฌ๋‹ˆ (1)
๋ฐ˜์‘ํ˜•

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ์ž์ž‘ํ”„๋กœ๊ทธ๋žจ(๋ฉ๋ฉ์Œค์˜ ์ทจ๋ฏธ์ƒํ™œ)
  • ํ”„๋กœ๊ทธ๋žจ ๋ชจ๋‘ ๋ณด๊ธฐ(๋ฉ๋ฉํ™ˆ)
  • ์˜›๋‚  ๋ฉ๋ฉํ™ˆ
  • ์ถ”์–ต์˜์ž‘ํ’ˆ์ง‘
250x250

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๐Ÿพ์ž ๋ฉ๋ฉ์Œค (๋ฐค ํ•˜๋Š˜ ์ž‘์€ โ˜…)

๐Ÿพ์ž ๋ฉ๋ฉ์Œค์˜ ์ปดํ“จํ„ฐ ๋ฐ ์ฝ”๋”ฉ ๊ณต๋ถ€

๋ฉ๋ฉํ™ˆ->๋ผ๋ผ๋ฒจ_13. ๋กœ๊ทธ์ธ ๊ตฌํ˜„์„ ์œ„ํ•œ ์Šคํƒ€ํ„ฐํ‚คํŠธ Breeze ์„ค์น˜ ๋ฐ ๋กœ๊ทธ์ธ ์ž‘์—…
๋ผ๋ผ๋ฒจ(laravel)

๋ฉ๋ฉํ™ˆ->๋ผ๋ผ๋ฒจ_13. ๋กœ๊ทธ์ธ ๊ตฌํ˜„์„ ์œ„ํ•œ ์Šคํƒ€ํ„ฐํ‚คํŠธ Breeze ์„ค์น˜ ๋ฐ ๋กœ๊ทธ์ธ ์ž‘์—…

2022. 10. 4. 18:28
728x90
๋ฐ˜์‘ํ˜•
โ™ง '๋ฉ๋ฉํ™ˆ์„ ๋ผ๋ผ๋ฒจ๋กœ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ' ํ”„๋กœ์ ํŠธ ๋ชฉ์ฐจ โ™ง (๋ณด์‹œ๋ ค๋ฉด ์•„๋ž˜ ๋”๋ณด๊ธฐ ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”.)
๋”๋ณด๊ธฐ

0. ๋ผ๋ผ๋ฒจ(laravel) ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ-๋ฐฉ๋ฒ•1 (Windows & ๋„์ปค(docker) & ๋ผ๋ผ๋…(laradock) ํ™œ์šฉ)

0. ๋ผ๋ผ๋ฒจ(laravel) ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ-๋ฐฉ๋ฒ•2 (Windows & ๋„์ปค(docker) & sail ํ™œ์šฉ)

1. ๊ธฐ์กด ์†Œ์Šค

2. ๊ธฐ์กด ์†Œ์Šค๋ฅผ ํ•˜๋‚˜์˜ ๋ธ”๋ ˆ์ด๋“œ๋กœ

3. ์ปจํŠธ๋กค๋Ÿฌ ํ•˜๋‚˜ ์ƒ์„ฑ

4. javascript, css ์ •๋ฆฌ

5. ๊ธฐ์กด PHP ๋กœ์ง์„ ์ปจํŠธ๋กค๋Ÿฌ๋กœ

6. ๋ธ”๋ ˆ์ด๋“œ ๋ฌธ๋ฒ•์œผ๋กœ ์ˆ˜์ •

7. ์™ธ๋ถ€ ๋ธ”๋ ˆ์ด๋“œ ํŒŒ์ผ, component ํ™œ์šฉ

8. (DB) Model ๋ฐ ๊ธฐํƒ€ ํŒŒ์ผ ์ƒ์„ฑ

9. (DB) ๋”๋ฏธ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๊ธ€๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

10. (DB) ๋ชจ๋ธ, DB ํ™œ์šฉ ์—ฐ์Šต

11. (DB) ๊ธฐ์กด ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด์„ DB๋กœ ๋ณ€ํ™˜

12. (DB) DB ๋ฐ ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„

13. ๋กœ๊ทธ์ธ ๊ตฌํ˜„์„ ์œ„ํ•œ ์Šคํƒ€ํ„ฐํ‚คํŠธ Breeze ์„ค์น˜ ๋ฐ ๋กœ๊ทธ์ธ ์ž‘์—…

14. ๋กœ๊ทธ์ธ ์ฐฝ ๋’ท๋ฐฐ๊ฒฝ๋„ ๋™์˜์ƒ์ด ๋ณด์ด๋„๋ก ์ˆ˜์ •

15. ๊ด€๋ฆฌ์ž ํ™”๋ฉด์—์„œ ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๋ฆฌ์ŠคํŠธ ํ•œ๋ฒˆ์— ๋ณด๊ธฐ

16. ๊ด€๋ฆฌ์ž ํ™”๋ฉด์—์„œ ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •ํ•˜๊ธฐ

17. ๊ด€๋ฆฌ์ž ํ™”๋ฉด์—์„œ ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œํ•˜๊ธฐ

18. ๊ด€๋ฆฌ์ž ํ™”๋ฉด์—์„œ ๊ฒŒ์‹œ๊ธ€ ์ƒˆ๋กœ ์ž‘์„ฑํ•˜๊ธฐ

19. ๋ฐฉ๋ฌธ์ž ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ => ์‹คํŒจ => ์„ฑ๊ณต


์•ž์˜ ์ž‘์—…์„ ๋ชจ๋‘ ์™„์„ฑํ•œ ํ›„ ๋˜๋‹ค์‹œ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒƒ์ด ์ƒ๊ฒผ๋‹ค.

์ƒˆ๊ธ€ ์ž‘์„ฑ์‹œ ์›นํŽ˜์ด์ง€์—์„œ ์ง์ ‘ ์ž…๋ ฅ ํ›„ ์ €์žฅ์„ ํ•˜๋ฉด DB์— ์ €์žฅํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ.

๋ฌผ๋ก  ์ด ๊ธฐ๋Šฅ์„ ์œ„ํ•ด์„œ๋Š” ์šฐ์„  ๊ด€๋ฆฌ์ž๋กœ๋งŒ ๊ธ€์„ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•  ๊ฒƒ์ด๊ณ , ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๊ฐ„๋‹จํžˆ ์Šคํƒ€ํ„ฐํ‚คํŠธ๋กœ Breeze ๊ฐ€ ์ œ๊ณต๋œ๋‹คํ•˜์—ฌ ๊ณต๋ถ€ํ•  ๊ฒธ ์‹œ๋„๋ฅผ ํ•ด๋ณด๊ธฐ๋กœ ํ•œ๋‹ค.

0. ์ฃผ์˜ ์‚ฌํ•ญ

๊ฐ€. ์ฒ˜์Œ์— ํ•„์š”์—†๋Š” welcome.blade.php ํŒŒ์ผ์„ ์ง€์› ๋”๋‹ˆ, ์ด๋ฒˆ์— Breeze๋ฅผ ์„ค์น˜ํ•˜๋˜ ์ค‘ welcome.blade.php ํŒŒ์ผ์ด ์—†๋‹ค๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋ฉด์„œ ์„ค์น˜๊ฐ€ ๋˜์ง€๋ฅผ ์•Š๋„ค์š”. ๊ทธ๋ž˜์„œ ๋นˆ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜. ์ดํ›„ ๋ฌธ์ œ ์—†์ด ์„ค์น˜๋˜์—ˆ๋‹ค ์ƒ๊ฐํ•˜๊ณ , ์‚ดํŽด๋ณด๋‹ˆ ์ด๋Ÿฐ... web.php ํŒŒ์ผ์— ์žˆ๋˜ ๋‚ด์šฉ๋“ค์ด ๋ชจ๋‘ ์‚ฌ๋ผ์ง€๊ณ , ์ƒˆ๋กœ์šด ๋‚ด์šฉ๋“ค์ด ๋“ค์–ด๊ฐ€ ์žˆ๋„ค์š”. ๊ธฐ์กด ๋‚ด์šฉ์ด ๋ณต์žกํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์—ˆ๊ธฐ์— ๊ทธ๋ƒฅ ๋‹ค์‹œ ์ถ”๊ฐ€ ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

=> ๋”ฐ๋ผ์„œ, Breeze๋ฅผ ์„ค์น˜ํ•˜์‹œ๋ ค๋ฉด, ์•„์˜ˆ ์ฒ˜์Œ์— ์ž‘์—…์„ ํ•˜์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

1. Breeze ์„ค์น˜ 

composer require laravel/breeze --dev --ignore-platform-req=ext-fileinfo

php artisan breeze:install

 

2. Log in, Register ์†Œ์Šค ํ™œ์šฉ

๊ฐ€. ์ฒซ ํ™”๋ฉด์— ์•„๋ž˜์™€ ๊ฐ™์ด Log in, Register ์ด ๋ณด์ด๋ฉด ์ •์ƒ ์„ค์น˜ ์™„๋ฃŒ

 

๋‚˜. ์œ„ Log in, Register ๋ถ€๋ถ„์˜ ์†Œ์Šค ๋ณต์‚ฌ

@if (Route::has('login'))
    <div class="hidden fixed top-0 right-0 px-6 py-4 sm:block">
        @auth
            <a href="{{ url('/home') }}" class="text-sm text-gray-700 dark:text-gray-500 underline">Home</a>
        @else
            <a href="{{ route('login') }}" class="text-sm text-gray-700 dark:text-gray-500 underline">Log in</a>

            @if (Route::has('register'))
                <a href="{{ route('register') }}" class="ml-4 text-sm text-gray-700 dark:text-gray-500 underline">Register</a>
            @endif
        @endauth
   </div>
@endif

 

๋‹ค. ์œ„ ๋ณต์‚ฌํ•œ ์†Œ์Šค๋ฅผ header.blade.php ์˜ ์ ๋‹นํ•œ ์žฅ์†Œ์— ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•˜์—ฌ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.

- ์œ„ ํŒŒ๋ž€์ƒ‰ ๋ถ€๋ถ„์ด ๋กœ๊ทธ์ธ์„ ์œ„ํ•œ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์„œ ๋„ฃ์–ด์ค€ ๋ถ€๋ถ„์ž„. 

- Register ๋ถ€๋ถ„์€ ๊ฐ€์ž…์„ ๋ฐ›์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œํ•จ.

- ์œ„ ๋นจ๊ฐ„์ƒ‰ ๋ถ€๋ถ„์€ ์ถ”ํ›„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚จ๊ฒจ๋‘” ๋ถ€๋ถ„์ž„.

    <div style="left: 0px;width:100%;">
        <table border=0 width=100% cellspacing=0 cellpadding=0>
            <tr>
                <td class='p_title'>
                    &nbsp;๐Ÿพ์ž ๋ฉ๋ฉ์Œค์˜ ์ทจ๋ฏธ์ƒํ™œ<br>
                </td>
                <td align=center valign=bottom class='p_title1'>
                    <font size=3 color=white>
                    ์˜ค๋Š˜:11, ์–ด์ œ:22, ์ „์ฒด:33 (since 2003)
                    </font>
                </td>
                <td valign=bottom class='p_title1'>
                    @if (Route::has('login'))
                        <div class="hidden top-0 right-0 px-6 py-0 sm:block">
                            @auth
                                <a href="{{ url('/dashboard') }}" class="text-sm text-gray-700 dark:text-gray-500 ">๐Ÿพ</a>
                            @else
                                <a href="{{ route('login') }}" class="text-sm text-gray-700 dark:text-gray-500 ">๐Ÿพ</a>
                            @endauth
                        </div>
                    @endif
                </td>
                <td align=right valign=bottom class='p_title1'>
                    <a href='https://mungssem.kr/photo/port/port.php' target=_Blank>์ถ”์–ต์˜ ์ทจ๋ฏธ ์ž‘ํ’ˆ์ง‘
                        ๋ณด๊ธฐ</a>&nbsp;&nbsp;&nbsp;<br>
                </td>
                <td align=right valign=bottom class='p_title1'>
                    <a href='https://mungkhs2.cafe24.com/rb/?r=home' target=_Blank>์˜›๋‚  ๋ฉ๋ฉํ™ˆ ๋ฐฉ๋ฌธ</a>&nbsp;&nbsp;&nbsp;<br>
                </td>
            </tr>
        </table>
    </div>

 

3. tailwind.css 

๊ฐ€. ์œ„ ๋กœ๊ทธ์ธ ์ฝ”๋“œ ์ค‘ class ๋ถ€๋ถ„์— ๋ณด์ด๋Š” ์ฝ”๋“œ๋“ค์€ tailwind.css๋ฅผ ์ด์šฉํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•˜๋ ค๋ฉด index.blade.php ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€์‹œ์ผœ ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>๐Ÿพ์ž ๋ฉ๋ฉ์Œค ํ™ˆ</title>

    <link href="/css/app.css" rel="stylesheet">
    
    //์•„๋žซ์ค„ ์ถ”๊ฐ€
    <link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">
    
    <script src='http://code.jquery.com/jquery-latest.min.js'></script>
    <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery.mb.YTPlayer/3.3.9/jquery.mb.YTPlayer.min.js'></script>
    <script src="/js/app.js"></script>
</head>

๋‚˜. ํ˜น์‹œ ์œ„ tailwind.css ์‚ฌ์šฉ์‹œ ์ด๋ฏธ์ง€์™€ ๊ธ€์”จ๊ฐ€ ๊ฐ™์€ ์ค„์— ๋‚˜์˜ค์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.  ์ด๋Ÿด๋•Œ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<img src='/images/ball.gif'>

์œ„ ์ด๋ฏธ์ง€ ํ…Œ๊ทธ์— ์•„๋ž˜์™€ ๊ฐ™์ด class='inline' ๋ฅผ ๋ถ™์—ฌ์คŒ.

<img src='/images/ball.gif' class='inline'>

 

 

4. ๊ด€๋ฆฌ์ž ์ƒ์„ฑ

๊ฐ€. ์œ„ Register์—์„œ ์ •๋ณด ์ž…๋ ฅ ํ›„ ๊ด€๋ฆฌ์ž๋ฅผ ํ•œ๋ช… ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‚˜. ์ดํ›„ ๋‹ค๋ฅธ ํšŒ์› ๊ฐ€์ž…์ด ํ•„์š”์—†์„ ๊ฒฝ์šฐ ์œ„ 'Register' ๋ถ€๋ถ„ ๋ฐ 'Forgot your password?' ๋ถ€๋ถ„ ๋“ฑ์€ ์‚ญ์ œํ•ด์คŒ.

 


๐Ÿบ๐Ÿบ ์ž‘์—…ํ•œ ๋ชจ๋“  ์†Œ์Šค๋Š” ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿบ๐Ÿบ

https://github.com/mmssem/munghome

 

GitHub - mmssem/munghome

Contribute to mmssem/munghome development by creating an account on GitHub.

github.com

 

 

728x90
๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๋ผ๋ผ๋ฒจ(laravel)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฉ๋ฉํ™ˆ->๋ผ๋ผ๋ฒจ_15. ๊ด€๋ฆฌ์ž ํ™”๋ฉด์—์„œ ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๋ฆฌ์ŠคํŠธ ํ•œ๋ฒˆ์— ๋ณด๊ธฐ  (0) 2022.10.05
๋ฉ๋ฉํ™ˆ->๋ผ๋ผ๋ฒจ_14. ๋กœ๊ทธ์ธ ์ฐฝ ๋’ท๋ฐฐ๊ฒฝ๋„ ๋™์˜์ƒ์ด ๋ณด์ด๋„๋ก ์ˆ˜์ •  (0) 2022.10.04
๋ฉ๋ฉํ™ˆ์„ ๋ผ๋ผ๋ฒจ๋กœ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ_12. (DB) DB ๋ฐ ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„  (0) 2022.10.04
๋ฉ๋ฉํ™ˆ์„ ๋ผ๋ผ๋ฒจ๋กœ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ_11. (DB) ๊ธฐ์กด ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด์„ DB๋กœ ๋ณ€ํ™˜  (0) 2022.10.03
๋ฉ๋ฉํ™ˆ์„ ๋ผ๋ผ๋ฒจ๋กœ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ_10. (DB) ๋ชจ๋ธ, DB ํ™œ์šฉ ์—ฐ์Šต  (0) 2022.10.03
    ๐Ÿพ์ž ๋ฉ๋ฉ์Œค (๋ฐค ํ•˜๋Š˜ ์ž‘์€ โ˜…)
    ๐Ÿพ์ž ๋ฉ๋ฉ์Œค (๋ฐค ํ•˜๋Š˜ ์ž‘์€ โ˜…)
    ๐Ÿพ์ž(๊ฐœ๋ฐœ์ž) ๋ฉ๋ฉ์Œค์˜ ์ปดํ“จํ„ฐ ๋ฐ ์ฝ”๋”ฉ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•ด๋‘๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”