J1Yun
ZU-TECHLOG
J1Yun
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ“‘ Category (135)
    • Algorithm (61)
      • ๐Ÿ“š Concept (6)
      • ๐Ÿ“˜ Baekjoon Judge (53)
      • ๐Ÿ“— Programmers (2)
    • Computer Science (42)
      • ๐Ÿ”’ Operating System (14)
      • ๐Ÿ“ก Network (15)
      • ๐Ÿ’พ Database (8)
      • ๐Ÿงฉ Design Pattern (4)
      • ๐Ÿ”‘ Security (1)
    • Activities (12)
      • ๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ (6)
      • ๐Ÿ’ป SW๋งˆ์—์ŠคํŠธ๋กœ 13๊ธฐ (6)
    • Infra (1)
      • โ˜๏ธ AWS (1)
    • Languages (1)
      • ๐Ÿ’™ Python (1)
    • Backend (7)
      • ๐Ÿ”ต Django (4)
      • ๐ŸŸข Node.js (3)
    • Ect. (8)
      • ๐Ÿ’ฌ Talk (0)
      • ๐Ÿ—‚๏ธ ๊ฐœ๋ฐœ์ง๊ตฐ ์ทจ์—… ์ค€๋น„์ž๋ฃŒ (8)

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

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
J1Yun

ZU-TECHLOG

[๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 4์ฃผ์ฐจ - Wordcount, Git
Activities/๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ

[๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 4์ฃผ์ฐจ - Wordcount, Git

728x90

Wordcount, Git ๊ต์œก ๋‚ด์šฉ ํ•„๊ธฐ (๊ณผ์ œ)

  • template ์–ธ์–ด
    • html ์•ˆ์— ํŒŒ์ด์ฌ ๋ณ€์ˆ˜/๋ฌธ๋ฒ• ์“ฐ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
    • template ๋ณ€์ˆ˜ : ํŒŒ์ด์ฌ ๋ณ€์ˆ˜๋ฅผ html ํ™”๋ฉด์— ์ถœ๋ ฅ {{python_variable}}
    • template ํ•„ํ„ฐ : ํ…œํ”Œ๋ฆฟ ๋ณ€์ˆ˜์— ์ถ”๊ฐ€์ ์ธ ์†์„ฑ ๋ฐ ๊ธฐ๋Šฅ ์ œ๊ณต {{python_variable | filter}}
      ex) {{ value| length }} -> value์˜ ๋ฌธ์ž์—ด ๊ธธ์ด ๋ฐ˜ํ™˜
      ex) {{ value| lower }} -> value๋ฅผ ์†Œ๋ฌธ์ž๋กœ ์ถœ๋ ฅ
    • template ํƒœ๊ทธ : html ์ƒ์—์„œ ํŒŒ์ด์ฌ ๋ฌธ๋ฒ• ์‚ฌ์šฉ, url ์ƒ์„ฑ ๋“ฑ์˜ ๊ธฐ๋Šฅ ์ œ๊ณต {% tag %} … {% endtag %}
      ex) {% for student in class %} 
               {{ student }}
           {% endfor %}
  • Github ๋ฐฐํฌ
    • Code ์ €์žฅ ๊ธฐ๋Šฅ
    • Undo ๊ธฐ๋Šฅ
    • ํ˜‘์—… ๊ธฐ๋Šฅ
    • Web Hosting ๊ธฐ๋Šฅ
  • Github ์‚ฌ์šฉ๋ฒ•
    • echo “# firstproject” >> README.md : readme.md ๋งŒ๋“ค๊ณ , #firstproject ์ž‘์„ฑ
    • git init : ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒˆ๋กœ์šด git ์ €์žฅ์†Œ๋กœ ์ดˆ๊ธฐํ™”
    • git add : ์ €์žฅํ•  ํŒŒ์ผ ์„ ํƒ ->staging area๋กœ ์˜ฌ๋ฆผ
    • git commit –m “message” : ์ฃผ์„์ฒ˜๋Ÿผ message ์ €์žฅ
    • git branch –M main : master branch์˜ ์ด๋ฆ„์„ main์œผ๋กœ ๋ณ€๊ฒฝ -> ์ƒˆ๋กœ์šด ๋ถ„๊ธฐ์  ์ƒ์„ฑ
    • git remote add origin repository์ฃผ์†Œ : repository ์ฃผ์†Œ๋ฅผ origin์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์—ฐ๊ฒฐ
    • git push origin main : main์˜ ๋‚ด์šฉ์„ origin์— ์—…๋กœ๋“œ

 

์‹ค์Šต) ๋‹จ์–ด ๊ฐœ์ˆ˜ ์„ธ๊ธฐ ์›น

์™ผ์ชฝ home.html์˜ ์ž…๋ ฅ ์นธ์„ ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ์ œ์ถœํ•˜๋ฉด ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ๋„์–ด์“ฐ๊ธฐ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์ด ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ ๋‹จ์–ด๊ฐ€ ์“ฐ์—ฌ์ง„ ํšŸ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด ์˜ค๋ฅธ์ชฝ์˜ result.html์— ๋ณด์—ฌ์ง€๋„๋ก ํ•˜๋Š” ์‹ค์Šต์„ ์ง„ํ–‰ํ–ˆ๋‹ค.

์œ„ ์‹ค์Šต์˜ ์ฝ”๋“œ ์ž‘์„ฑ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. App ์ƒ์„ฑํ•˜๊ธฐ
    • ํ„ฐ๋ฏธ๋„์—์„œpython manage.py startapp wordCount๋กœ App ์ƒ์„ฑ
    • counter>counter>settings.py์˜ INSTALLED_APPS ๋ฆฌ์ŠคํŠธ์— 'wordCount.apps.WordCountConfig' ์ถ”๊ฐ€
  2. home.html - Template ์ƒ์„ฑํ•˜๊ธฐ
    • wordCount ํด๋” ์•„๋ž˜ templates ํด๋” ์ƒ์„ฑ
    • templates ํด๋” ์•„๋ž˜ home.htmlํŒŒ์ผ ์ƒ์„ฑ ํ›„ ์ฝ”๋“œ ์ž‘์„ฑ
    • <div style="text-align: center">
          <h1>WordCount ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.</h1>
          <br>
          <h3>์—ฌ๊ธฐ์— ๋ฌธ์žฅ์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.</h3>
          <form action=''>
              <textarea name="sentence" cols='60' rows='30'></textarea>
              <br>
              <br>
              <input type="submit" value='์ œ์ถœ'>
          </form>
      </div>
  3. Home - View ์ƒ์„ฑํ•˜๊ธฐ
    • counter>wordCount>views.py์—home.htmlํŽ˜์ด์ง€๋ฅผ renderํ•ด์ฃผ๋Š” home ํ•จ์ˆ˜ ์ž‘์„ฑ
    • def home(request):
          return render(request, "home.html")
  4. Home - URL ์—ฐ๊ฒฐํ•˜๊ธฐ
    • counter>counter>urls.py์— views๋ฅผ importํ•œ ํ›„ urlpatterns ๋ฆฌ์ŠคํŠธ์— views.py์˜ home ํ•จ์ˆ˜์™€ ์—ฐ๊ฒฐ๋˜๋Š” path ์ถ”๊ฐ€
    • from django.contrib import admin
      from django.urls import path
      from wordCount import views as wc #
      
      urlpatterns = [
          path('admin/', admin.site.urls),
          path('', wc.home, name='wc'), #
      ]
      
  5. result.html - Template ์ƒ์„ฑํ•˜๊ธฐ
    • templates ํด๋” ์•„๋ž˜ result.htmlํŒŒ์ผ ์ƒ์„ฑ ํ›„ ์ฝ”๋“œ ์ž‘์„ฑ
    • veiws.py์—์„œ ์ „๋‹ฌ๋ฐ›์€ ์ธ์ž {{fulltext}}, {{count}}, {{wordDict}}
    • <div style="text-align: center">
          <h2>์ž…๋ ฅํ•œ ํ…์ŠคํŠธ ์ „๋ฌธ</h2>
          <div>
              {{fulltext}}
          </div>
      
          <h3>๋‹น์‹ ์ด ์ž…๋ ฅํ•œ ํ…์ŠคํŠธ๋Š” {{count}}๊ฐœ์˜ ๋‹จ์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.</h3>
          <div>
              {% for word, totalCount in wordDict %}
                  {{word}}: {{totalCount}}
                  <br>
              {% endfor %}
          </div>
      </div>
  6. Result - View ์ƒ์„ฑํ•˜๊ธฐ
    • counter>wordCount>views.py์— result.htmlํŽ˜์ด์ง€๋ฅผ renderํ•ด์ฃผ๋Š” result ํ•จ์ˆ˜ ์ž‘์„ฑ
    • welcome.html๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ๊ฐ€์ ธ์™€ ์ „์ฒด ๋ฌธ์ž์—ด, ์ด ๋‹จ์–ด ์ˆ˜, ๋‹จ์–ด์™€ ๊ทธ ๋“ฑ์žฅ ํšŸ์ˆ˜๊ฐ€ ์ €์žฅ๋œ dictionary๋ฅผ ๊ฐ๊ฐ 'fulltext', 'count', 'wordDict'๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ result.html render ์‹œ ์ธ์ž ์ „๋‹ฌ
    • def result(request):
          sentence = request.GET['sentence']
          wordList = sentence.split()
          wordDict={}
      
          for word in wordList:
              if word in wordDict:
                  wordDict[word] += 1
              else:
                  wordDict[word] = 1
      
          return render(request, "result.html", {'fulltext':sentence, 'count':len(wordList), 'wordDict':wordDict.items})
  7. Result - URL ์—ฐ๊ฒฐํ•˜๊ธฐ
    • counter>counter>urls.py์˜ urlpatterns ๋ฆฌ์ŠคํŠธ์— views.py์˜ result ํ•จ์ˆ˜์™€ ์—ฐ๊ฒฐ๋˜๋Š” path ์ž‘์„ฑ
    • urlpatterns = [
          path('admin/', admin.site.urls),
          path('', wc.home, name='wc'), 
          path('result/', wc.result, name="result"), #
      ]
  8. home.html ์ˆ˜์ •
    • home.html์—์„œ input ๊ฐ’(๋ฌธ์ž์—ด)์ด ์ œ์ถœ๋˜๋ฉด 'result' url์„ ํ†ตํ•ด result.html๋กœ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋„๋ก formํƒœ๊ทธ์˜ action ์†์„ฑ์„ 'result'์œผ๋กœ ์ง€์ •
    • <form action='result'>
          <textarea name="sentence" cols='60' rows='30'></textarea>
          <br>
          <br>
          <input type="submit" value='์ œ์ถœ'>
      </form>

์ „์ฒด ์‹ค์Šต ์ฝ”๋“œ๋Š” ์•„๋ž˜ ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

https://github.com/J1Yun/likelion/tree/main/3.%20Django/wordCounter

 

J1Yun/likelion

๐Ÿฆ๋‹จ๊ตญ๋Œ€ํ•™๊ต ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ. Contribute to J1Yun/likelion development by creating an account on GitHub.

github.com

 

 

Github repository ์ƒ์„ฑ ๋ฐ ์—…๋กœ๋“œ

  ๋‚˜์˜ Github ๊ณ„์ •์— ๋ฉ‹์‚ฌ ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ธ likelion repository๋ฅผ ๋งŒ๋“ค๊ณ , git ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์—…๋กœ๋“œ ํ•˜์˜€๋‹ค. ์ด ๊ฒŒ์‹œ๊ธ€์„ ํฌํ•จํ•ด ์•ž์„œ ๊ณต์œ ํ–ˆ๋˜ ๋ชจ๋“  github ์ฝ”๋“œ๋Š” ์ด๋•Œ ์—…๋กœ๋“œ๋œ ๊ฒƒ์ด๋‹ค. ์•ž์œผ๋กœ๋„ ๋‚˜์˜ ๋ฉ‹์‚ฌ ํ™œ๋™์„ ์ด repository์— ๊พธ์ค€ํžˆ ๊ธฐ๋กํ•ด ๋†“์„ ์˜ˆ์ •์ด๋‹ค!๐Ÿ˜Š

728x90

'Activities > ๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 5~7์ฃผ์ฐจ - Blog Project  (0) 2021.07.20
[๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 3์ฃผ์ฐจ - Django ๊ธฐ์ดˆ  (0) 2021.06.24
[๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 2์ฃผ์ฐจ - Python ๊ธฐ์ดˆ  (0) 2021.06.20
[๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 1์ฃผ์ฐจ - ์›น ๊ธฐ์ดˆ, HTML/CSS  (0) 2021.05.25
[๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์„œ๋ฅ˜ ๋ฐ ๋ฉด์ ‘ ํ•ฉ๊ฒฉ ํ›„๊ธฐ  (2) 2021.05.12
    'Activities/๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€์ด๋‹ค
    • [๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 5~7์ฃผ์ฐจ - Blog Project
    • [๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 3์ฃผ์ฐจ - Django ๊ธฐ์ดˆ
    • [๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 2์ฃผ์ฐจ - Python ๊ธฐ์ดˆ
    • [๋‹จ๊ตญ๋Œ€] ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ ์ •๊ทœ์„ธ์…˜ 1์ฃผ์ฐจ - ์›น ๊ธฐ์ดˆ, HTML/CSS
    J1Yun
    J1Yun
    ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธฐ์ˆ  ๋ฐ ๊ณต๋ถ€ ๋‚ด์šฉ ๊ธฐ๋ก์žฅ

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