Skip to content

jiminkyung/Pholog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

74 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ธ Pholog

1. ๋ชฉํ‘œ์™€ ๊ธฐ๋Šฅ

1.1 ๋ชฉํ‘œ

  • Django ํ•™์Šต: ์‹ค์ œ๋กœ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉฐ Django์— ์ต์ˆ™ํ•ด์ง€๊ธฐ
  • DB ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ• ๊ฒฝํ—˜: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„(ERD), ๋ชจ๋ธ๋ง
  • ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๊ฒฝํ—˜

1.2 ๊ธฐ๋Šฅ

  • ํšŒ์›๊ธฐ๋Šฅ
    • ๋กœ๊ทธ์ธ / ๋กœ๊ทธ์•„์›ƒ
    • ํšŒ์›๊ฐ€์ž…
  • CRUD
    • ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ/์ฝ๊ธฐ/์ˆ˜์ •/์‚ญ์ œ
    • ์ด๋ฏธ์ง€ ๋‹ค์ค‘ ์ฒจ๋ถ€
  • ์นดํ…Œ๊ณ ๋ฆฌ
    • ๊ฒŒ์‹œ๊ธ€๋งˆ๋‹ค ์นดํ…Œ๊ณ ๋ฆฌ ์ง€์ • ๊ฐ€๋Šฅ
  • ํƒœ๊ทธ
    • ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ์‹œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํƒœ๊ทธ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
    • ํƒœ๊ทธ๋ณ„๋กœ ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ
  • ๋Œ“๊ธ€
    • ํƒ€ ๊ฒŒ์‹œ๊ธ€์— ๋Œ“๊ธ€ ์ž‘์„ฑ/์ˆ˜์ •/์‚ญ์ œ

2. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฐ ๋ฐฐํฌ URL

2.1 ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • ์‚ฌ์šฉ ํˆด
    • VSCode
  • ์‚ฌ์šฉ ์–ธ์–ด
    • HTML, CSS, JS
    • Python
  • Web Framework
    • Django 5.0.2
  • ์„œ๋น„์Šค ๋ฐฐํฌ
    • AWS Lightsail

2.2 ๋ฐฐํฌ URL

http://15.164.3.24:8000/

ํ…Œ์ŠคํŠธ์šฉ ๊ณ„์ •
ID: test
PW: test1234!

2.3 URL ๊ตฌ์กฐ (๋ชจ๋†€๋ฆฌ์‹)

  • main
App URL Views Function HTML File Name Note
main "/" index main/index.html ๋ฉ”์ธ ํ™”๋ฉด
  • blog
App URL Views Function HTML File Name Note
blog "/" post_list posts/post_list.html ์‚ฌ์šฉ์ž ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก
blog "all/" all_post_list posts/all_post_list.html ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก
blog "create/" post_create posts/post_form.html ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ
blog "int:pk/" post_detail posts/post_detail.html ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธํŽ˜์ด์ง€
blog "int:pk/update/" post_update posts/post_form.html ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •
blog "int:pk/delete/" post_delete posts/post_confirm_delete.html ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ์—ฌ๋ถ€ ํ™•์ธ
blog "int:pk/comment/" comment_create posts/post_detail.html ๋Œ“๊ธ€ ์ž‘์„ฑ
blog "comment/int:pk/update/" comment_update comments/comment_form.html ๋Œ“๊ธ€ ์ˆ˜์ •
blog "comment/int:pk/delete/" comment_delete comments/comment_confirm_delete.html ๋Œ“๊ธ€ ์‚ญ์ œ์—ฌ๋ถ€ ํ™•์ธ
blog "category/" category_list categories/category_list.html ์นดํ…Œ๊ณ ๋ฆฌ ๋ชฉ๋ก
blog "category/create/" category_create categories/category_form.html ์นดํ…Œ๊ณ ๋ฆฌ ์ƒ์„ฑ
blog "category/int:pk/update/" category_update categories/category_form.html ์นดํ…Œ๊ณ ๋ฆฌ ์ˆ˜์ •
blog "category/int:pk/delete/" category_delete categories/category_confirm_delete.html ์นดํ…Œ๊ณ ๋ฆฌ ์‚ญ์ œ์—ฌ๋ถ€ ํ™•์ธ
blog "tag/str:tag_name/" tag_list posts/tag_list.html ํƒœ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก
  • accounts
App URL Views Function HTML File Name Note
accounts "signup/" signup accounts/form.html ํšŒ์›๊ฐ€์ž…
accounts "login/" login accounts/form.html ๋กœ๊ทธ์ธ
accounts "logout/" logout base.html ๋กœ๊ทธ์•„์›ƒ(๋ชจ๋‹ฌ)
accounts "profile/" profile accounts/profile.html ํ”„๋กœํ•„

3. ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์™€ ๊ธฐ๋Šฅ ๋ช…์„ธ

graph TD
    A[๋ธ”๋กœ๊ทธ ์„œ๋น„์Šค] --> B[์‚ฌ์šฉ์ž ์ธ์ฆ]
    A --> C[๊ฒŒ์‹œ๊ธ€ ๊ด€๋ฆฌ]
    A --> D[๋Œ“๊ธ€ ๊ด€๋ฆฌ]
    
    B --> B1[ํšŒ์›๊ฐ€์ž…]
    B --> B2[๋กœ๊ทธ์ธ]
    B --> B3[๋กœ๊ทธ์•„์›ƒ]
    
    C --> C1[๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ]
    C1 --> C1a{์‚ฌ์ง„ ์ฒจ๋ถ€ ์—ฌ๋ถ€}
    C1a -->|Yes| C1a1[์—ฌ๋Ÿฌ ์‚ฌ์ง„ ์ฒจ๋ถ€]
    C1a -->|No| C1a2[์‚ฌ์ง„ ์ฒจ๋ถ€ ์—†์Œ]
    C --> C2[๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ]
    C --> C3[๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •]
    C --> C4[๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ]
    C --> C5[์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ๋Šฅ]
    C --> C6[ํƒœ๊ทธ ๊ธฐ๋Šฅ]
    C2 --> C2a[๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก]
    C2 --> C2b[๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธ]
    
    D --> D1[๋Œ“๊ธ€ ์ž‘์„ฑ]
    D --> D2[๋Œ“๊ธ€ ์ˆ˜์ •]
    D --> D3[๋Œ“๊ธ€ ์‚ญ์ œ]
    
    C3 -.-> E{๊ถŒํ•œ ํ™•์ธ}
    C4 -.-> E
    D2 -.-> E
    D3 -.-> E
    
    E -->|์†Œ์œ ์ž| E1[ํ—ˆ์šฉ]
    E -->|๋น„์†Œ์œ ์ž| E2[๊ฑฐ๋ถ€]
    
    B1 -.-> F[์ด๋ฉ”์ผ ์ธ์ฆ]
    B2 -.-> G[๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ]
    
    style A fill:#f9f,stroke:#333,stroke-width:4px
    style C1 fill:#bbf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5
    style D1 fill:#bbf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5
Loading

4. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์™€ ๊ฐœ๋ฐœ ์ผ์ •

4.1 ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

๐Ÿ“ฆPholog
 โ”ฃ ๐Ÿ“‚accounts
 โ”ƒ โ”ฃ ๐Ÿ“‚migrations
 โ”ƒ โ”ฃ ๐Ÿ“‚__pycache__
 โ”ƒ โ”ฃ ๐Ÿ“œadmin.py
 โ”ƒ โ”ฃ ๐Ÿ“œapps.py
 โ”ƒ โ”ฃ ๐Ÿ“œmodels.py
 โ”ƒ โ”ฃ ๐Ÿ“œtests.py
 โ”ƒ โ”ฃ ๐Ÿ“œurls.py
 โ”ƒ โ”ฃ ๐Ÿ“œviews.py
 โ”ƒ โ”— ๐Ÿ“œ__init__.py
 โ”ฃ ๐Ÿ“‚blog
 โ”ƒ โ”ฃ ๐Ÿ“‚migrations
 โ”ƒ โ”ฃ ๐Ÿ“‚__pycache__
 โ”ƒ โ”ฃ ๐Ÿ“œadmin.py
 โ”ƒ โ”ฃ ๐Ÿ“œapps.py
 โ”ƒ โ”ฃ ๐Ÿ“œforms.py
 โ”ƒ โ”ฃ ๐Ÿ“œmodels.py
 โ”ƒ โ”ฃ ๐Ÿ“œtests.py
 โ”ƒ โ”ฃ ๐Ÿ“œurls.py
 โ”ƒ โ”ฃ ๐Ÿ“œviews.py
 โ”ƒ โ”— ๐Ÿ“œ__init__.py
 โ”ฃ ๐Ÿ“‚config
 โ”ƒ โ”ฃ ๐Ÿ“‚__pycache__
 โ”ƒ โ”ฃ ๐Ÿ“œasgi.py
 โ”ƒ โ”ฃ ๐Ÿ“œsettings.py
 โ”ƒ โ”ฃ ๐Ÿ“œurls.py
 โ”ƒ โ”ฃ ๐Ÿ“œwsgi.py
 โ”ƒ โ”— ๐Ÿ“œ__init__.py
 โ”ฃ ๐Ÿ“‚main
 โ”ƒ โ”ฃ ๐Ÿ“‚migrations
 โ”ƒ โ”ฃ ๐Ÿ“‚__pycache__
 โ”ƒ โ”ฃ ๐Ÿ“œadmin.py
 โ”ƒ โ”ฃ ๐Ÿ“œapps.py
 โ”ƒ โ”ฃ ๐Ÿ“œmodels.py
 โ”ƒ โ”ฃ ๐Ÿ“œtests.py
 โ”ƒ โ”ฃ ๐Ÿ“œurls.py
 โ”ƒ โ”ฃ ๐Ÿ“œviews.py
 โ”ƒ โ”— ๐Ÿ“œ__init__.py
 โ”ฃ ๐Ÿ“‚media
 โ”ƒ โ”— ๐Ÿ“‚blog
 โ”ฃ ๐Ÿ“‚static
 โ”ƒ โ”— ๐Ÿ“œgit_icon.png
 โ”ฃ ๐Ÿ“‚templates
 โ”ƒ โ”ฃ ๐Ÿ“‚accounts
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œform.html
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œprofile.html
 โ”ƒ โ”ฃ ๐Ÿ“‚categories
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œcategory_confirm_delete.html
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œcategory_form.html
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œcategory_list.html
 โ”ƒ โ”ฃ ๐Ÿ“‚comments
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œcomment_confirm_delete.html
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œcomment_form.html
 โ”ƒ โ”ฃ ๐Ÿ“‚main
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œindex.html
 โ”ƒ โ”ฃ ๐Ÿ“‚posts
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œall_post_list.html
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œpost_confirm_delete.html
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œpost_detail.html
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œpost_form.html
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œpost_list.html
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œtag_list.html
 โ”ƒ โ”— ๐Ÿ“œbase.html
 โ”ฃ ๐Ÿ“œ.gitignore
 โ”ฃ ๐Ÿ“œdb.sqlite3
 โ”ฃ ๐Ÿ“œmanage.py
 โ”ฃ ๐Ÿ“œREADME.md
 โ”— ๐Ÿ“œrequirements.txt

4.2 ๊ฐœ๋ฐœ ์ผ์ •(WBS)

  • ์•„๋ž˜ ์ผ์ •ํ‘œ๋Š” ๋จธ๋ฉ”์ด๋“œ๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
gantt
    dateFormat  YYYY-MM-DD
    title ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ ์Šค์ผ€์ค„
    section ๊ธฐํš ๋ฐ ์ค€๋น„
    ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ: 2024-03-07, 1d
    ํ”„๋กœ์ ํŠธ ์•„์ด๋””์–ด ๊ธฐํš: 2024-03-07, 1d
    WBS ์ž‘์„ฑ: 2024-03-07, 1d
    section ๋””์ž์ธ
    ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ œ์ž‘: 2024-03-08, 1d
    ERD: 2024-03-08, 2d
    section ๊ฐœ๋ฐœ
    URL ๊ตฌํ˜„: 2024-03-09, 1d
    ํšŒ์›๊ธฐ๋Šฅ ๊ตฌํ˜„: 2024-03-09, 1d
    ๋ชจ๋ธ ๊ตฌํ˜„: 2024-03-10, 2d
    CRUD ๊ตฌํ˜„: 2024-03-10, 2d
    ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„: 2024-03-11, 3d
    section ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ
    ์ˆ˜์ • ๋ฐ ํ…Œ์ŠคํŠธ: 2024-03-12, 2d
    ๋ฐฐํฌ: 2024-03-13, 1d
Loading

5. ์™€์ด์–ดํ”„๋ ˆ์ž„ / UI / BM

5.1 ์™€์ด์–ดํ”„๋ ˆ์ž„

Pholog

  • Pigma๋กœ ์ œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋งํฌ

5.2 ํ™”๋ฉด ์„ค๊ณ„

์ด๋ฆ„ ์ด๋ฏธ์ง€ ์ด๋ฆ„ ์ด๋ฏธ์ง€
๋ฉ”์ธ ํŽ˜์ด์ง€ Pholog (1) ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ํšŒ์›๊ฐ€์ž…
์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๋ธ”๋กœ๊ทธ ๋‚ด ๊ฒŒ์‹œ๊ธ€ ๋‚ดํ™œ๋™ _ ๊ธ€ ๋ชฉ๋ก
๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธํŽ˜์ด์ง€ ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธํŽ˜์ด์ง€ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ๋‚ด ํ™œ๋™ _ ๊ธ€ ์ž‘์„ฑ
ํƒœ๊ทธ๋ณ„ ๊ฒŒ์‹œ๊ธ€ ํƒœ๊ทธ๋ณ„ ๊ฒŒ์‹œ๊ธ€ ์นดํ…Œ๊ณ ๋ฆฌ ๊ด€๋ฆฌ ๋‚ด ํ™œ๋™ _ ์นดํ…Œ๊ณ ๋ฆฌ ๊ด€๋ฆฌ

6. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง (ERD)

ERD_light

7. ๋ฉ”์ธ ๊ธฐ๋Šฅ

  • CRUD

    • User๋งŒ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ๊ฐ€๋Šฅ
    • ๊ฒŒ์‹œ๊ธ€ ์ฝ๊ธฐ
    • ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•œ User๋งŒ ์ˆ˜์ •, ์‚ญ์ œ ๊ฐ€๋Šฅ
  • ๋‹ค์ˆ˜์˜ Image ์ฒจ๋ถ€ ๊ฐ€๋Šฅ

    • ImageFormset(inlineformset)์„ ์ด์šฉ
    • ํ•œ ๊ฒŒ์‹œ๋ฌผ์— ์ตœ๋Œ€ 5๊ฐœ์˜ ์ด๋ฏธ์ง€ ์ฒจ๋ถ€ ๊ฐ€๋Šฅ (์ฒจ๋ถ€ ๊ฐฏ์ˆ˜ ์กฐ์ • ๊ฐ€๋Šฅ)
    • ์ฒจ๋ถ€ํ•œ ์ด๋ฏธ์ง€ ์‚ญ์ œ, ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • ์นดํ…Œ๊ณ ๋ฆฌ

    • ๊ฐ User๋ณ„๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ๋Šฅ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ์นดํ…Œ๊ณ ๋ฆฌ ์ˆ˜์ •, ์‚ญ์ œ
  • ๋Œ“๊ธ€

    • ๊ฒŒ์‹œ๊ธ€ ์•„๋ž˜์— ๋Œ“๊ธ€ ์ž‘์„ฑ ๊ฐ€๋Šฅ
    • ์ž‘์„ฑํ•œ User๋งŒ ์ˆ˜์ •, ์‚ญ์ œ ๊ฐ€๋Šฅ
  • ํƒœ๊ทธ

    • ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ์‹œ #์„ ๊ธฐ์ค€์œผ๋กœ ํƒœ๊ทธ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
    • ํƒœ๊ทธ๋ณ„๋กœ ๊ฒŒ์‹œ๊ธ€์„ ๋ชจ์•„๋ณผ ์ˆ˜ ์žˆ์Œ
  • ๊ฒ€์ƒ‰

    • ์ œ๋ชฉ, ๋‚ด์šฉ์— ํ•ด๋‹น ํ‚ค์›Œ๋“œ๊ฐ€ ํฌํ•จ๋œ ๊ฒŒ์‹œ๊ธ€์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Œ
  • All / User ๋ถ„๋ฆฌ

    • ์ „์ฒด ํฌ์ŠคํŒ…/๊ฐœ์ธ ํฌ์ŠคํŒ… ์œผ๋กœ ๋‚˜๋ˆ” -> ์ปค๋ฎค๋‹ˆํ‹ฐ/๊ฐœ์ธ๊ณต๊ฐ„์˜ ํšจ๊ณผ
    • ๊ฒ€์ƒ‰ ์—ญ์‹œ ์ „์ฒด/๊ฐœ์ธ ๋ณ„๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค.

โ‰๏ธ 8. ์—๋Ÿฌ์™€ ์—๋Ÿฌ ํ•ด๊ฒฐ

  • ImageFormSet(inlineformset)์„ ์ด์šฉํ•ด ๋‹ค์ค‘ ์ด๋ฏธ์ง€ ์ฒจ๋ถ€๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค.

    • ์‚ญ์ œ/์ˆ˜์ • ๊ธฐ๋Šฅ์ด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜์Œ.
      • ImageFormSet์€ DELETE ์†์„ฑ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์—…๋กœ๋“œํ•œ ์ด๋ฏธ์ง€ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
      • ํ•˜์ง€๋งŒ ์‚ญ์ œํ•œ ์ด๋ฏธ์ง€๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚จ์•„์žˆ๊ฑฐ๋‚˜, Form์ด ๋ฆฌ์…‹๋˜๋Š” ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚จ.
      • ๋˜ํ•œ ๊ธฐ์กด์— ์ฒจ๋ถ€ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๊ฒฝ๋กœ๋ฅผ ์ฐพ์ง€ ๋ชปํ•จ.
      • ๊ฒฝ๋กœ ์ง€์ • ๋ฌธ์ œ๋ผ๊ณ  ํŒ๋‹จ.
    • ์ด๋ฏธ์ง€ ์ €์žฅ ์‹œ uuid๋ฅผ ์ด์šฉํ•ด ์ค‘๋ณต๋ฐฉ์ง€, ๋ณด์•ˆ์„ฑ์„ ๋†’์˜€์œผ๋‚˜ ์—๋Ÿฌ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ์ œ๊ฑฐ.
    • uuid ์ œ๊ฑฐ ํ›„ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด๋„ ํ•ด๊ฒฐ X
    • update view์— try-except๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€, post_form ํ…œํ”Œ๋ฆฟ ์ˆ˜์ • -> ํ•ด๊ฒฐ
    • ์ •ํ™•ํ•œ ์›์ธ ์ฐพ๋Š”์ค‘
  • ํƒœ๊ทธ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ

    • #์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌ -> ์ฐจ๋ก€๋Œ€๋กœ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ -> DB์— ๋ฐ˜์˜์„ ๊ณ„ํšํ–ˆ์ง€๋งŒ ์—๋Ÿฌ
      • tagsํ•„๋“œ๋ฅผ ์ค‘๋ณต ์ž‘์„ฑํ•ด์„œ ์ƒ๊ธด ์—๋Ÿฌ๋กœ form ์ˆ˜์ • ํ›„ ํ•ด๊ฒฐ
    • ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ • ์‹œ ์ž…๋ ฅํ–ˆ๋˜ ํƒœ๊ทธ๋“ค์ด Queryset ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚จ.
      • Postform์˜ __init__ํ•จ์ˆ˜์—์„œ ์ฟผ๋ฆฌ์…‹ => ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ join
  • ์นดํ…Œ๊ณ ๋ฆฌ

    • ์•„๋ฌด๊ฒƒ๋„ ์„ ํƒ/์ƒ์„ฑํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ -> ์—๋Ÿฌ!
    • (1)์ž๋™์œผ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ์ƒ์„ฑํ•ด์ฃผ๊ธฐ (2)์นดํ…Œ๊ณ ๋ฆฌ ํผ ์ž์ฒด๋ฅผ multiple๋กœ ์„ค์ •
    • (2)๋กœ ๊ฒฐ์ •. ๋Œ€์‹  ๋””์ž์ธ์„ multipleํ•˜์ง€์•Š๊ฒŒ ๋ณ€๊ฒฝ.
      • form์€ multipleํ•œ form์œผ๋กœ ๊ตฌ์„ฑ, <select>์œ ํ˜•์„ single selectํ˜•ํƒœ๋กœ ์ง€์ •.
      • ์ •๋‹ต์ด ์•„๋‹˜์„ ์ด์šฉํ•œ ์ •๋‹ต
    • ๋‹ค๋ฅธ ์œ ์ €๊ฐ€ ์ƒ์„ฑํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ๋ณด์ด๋Š” ์—๋Ÿฌ
      • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Postform์˜ __init__ํ•จ์ˆ˜ ์ˆ˜์ •.
      • ์นดํ…Œ๊ณ ๋ฆฌ์˜ auther = user ์ธ ์ผ€์ด์Šค๋งŒ ๋ณด์—ฌ์ฃผ๋„๋ก ๋ณ€๊ฒฝ.
  • ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„์—์„œ ์ด ์‹œ๊ฐ„์˜ 80%๋Š” ์†Œ๋น„ํ•œ๊ฒƒ๊ฐ™๋‹ค.

โœ๏ธ 8. ๊ฐœ๋ฐœํ•˜๋ฉฐ ๋А๋‚€์ 

  • ๋ชจ๋ธ ์„ค๊ณ„ ๋ถ€๋ถ„์ด ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์ž˜๋ชป๋œ ์„ค๊ณ„๋•Œ๋ฌธ์— ์ž์ž˜ํ•œ ์—๋Ÿฌ๊ฐ€ ์žˆ์—ˆ๋‹ค. (1:N ๊ด€๊ณ„ ์„ค์ • ๋“ฑ...)
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์˜ค๊ณ ๊ฐ€๋Š”์ง€ ์ œ๋Œ€๋กœ ์•Œ์•„์•ผ๊ฒ ๋‹ค.
  • ์›น ๊ฐœ๋ฐœ์„ ํ•˜๋ ค๋ฉด JS๋Š” ํ•„์ˆ˜์ธ๋“ฏํ•˜๋‹ค.
  • ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋”๋ผ๋„ ์ดˆ๋ฐ˜์— ๊ธธ์„ ์ž˜ ์žก์•„๋†”์•ผํ•œ๋‹ค... ๊ณ„ํš๊ณผ ๊ตฌ์„ฑ, ๊ตฌ์„ฑ ๊ณ„ํš์˜ ์ค‘์š”์„ฑ.

9. ํ”ผ๋“œ๋ฐฑ

  • ์ฐจ๋ณ„ํ™”๋œ ๊ธฐ๋Šฅ, ์ฝ”๋“œ๊ฐ€ ๋ถ€์กฑํ•จ
  • ์‚ฌ์ง„ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋” ์ƒ๊ฐํ•ด๋ณด๊ธฐ
    • ๋ณดํ†ต์˜ ๋ธ”๋กœ๊ทธ ์„œ๋น„์Šค์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€
    • (์•„๋ฌด๋ž˜๋„ JS๋กœ ๋™์  ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด ๋‚˜์„๊ฒƒ๊ฐ™๋‹ค.)

10. Self-Code review

์ฒซ Django ํ”„๋กœ์ ํŠธ์ธ๊ฑธ ๊ฐ์•ˆํ•ด๋„ ์•„์‰ฌ์›€์ด ๋‚จ๋Š”๋‹ค.
์ด๋ฏธ์ง€ ๊ตฌํ˜„์— ๋งค๋‹ฌ๋ ค์„œ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค์„ ๋†“์นœ๊ฒƒ๊ฐ™๋‹ค.
์ถ”ํ›„์— ๋ถ€์กฑํ•œ ๋ถ€๋ถ„๋“ค, ์ถ”๊ฐ€ํ•˜๊ณ ์‹ถ์€ ๋ถ€๋ถ„๋“ค์„ ๋ณด๊ฐ•ํ•  ์˜ˆ์ •์ด๋‹ค.

About

Photo + Log

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors