[django] 2nd sprint - review

EMMAยท2022๋…„ 4์›” 5์ผ
0

๐Ÿ–ฅ 1์ฐจ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ ์ •๋ฆฌ

1์ฐจ ํ”„๋กœ์ ํŠธ: fruitz_company
scope: ํšŒ์›์กฐํšŒ/pagination views.py


1-1
pull request๋Š” ํ•ญ์ƒ ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ๋งŒ ํฌํ•จ
ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์ด๋ž€ = ํ•˜๋‚˜์˜ ํ•จ์ˆ˜ (def post 1๊ฐœ, def get 1๊ฐœ ๋“ฑ๋“ฑ)
๋งŒ์•ฝ get/post/delete ๋“ฑ์„ ํ•œ๋ฒˆ์— ํ•ด์„œ ์˜ฌ๋ฆฌ๋ฉด, get์€ okํ–ˆ๋Š”๋ฐ post ์ชฝ ์ฝ”๋“œ๊ฐ€ ์ด์ƒํ•˜๋ฉด get์€ ๋‹ค ์™„์„ฑ์ด ๋๋Š”๋ฐ๋„ ๊ณ„์† ok ์•ˆ๋œ ์ƒํƒœ๋กœ ๋จธ๋ฌผ๋Ÿฌ ์žˆ์–ด์•ผ
์ด๋ ‡๊ฒŒ ํ•ด์•ผ๋งŒ ์ฝ”๋”ฉ ๋ฆฌ๋ทฐ - ๋จธ์ง€ ๊ณผ์ •์˜ ์ƒ์‚ฐ์„ฑ์ด ์˜ฌ๋ผ๊ฐ

1-2
git conflict

git์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๋Š”๋ฐ, ๊ทธ๊ฒƒ์„ ์œ„์น˜๋กœ ํŒŒ์•…ํ•œ๋‹ค
๋งŒ์•ฝ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ๋Œ€ํ•ด get์ด ๊ตฌํ˜„๋œ PR๊ณผ post๊ฐ€ ๊ตฌํ˜„๋œ PR์„ ์˜ฌ๋ฆฌ๋ฉด ๋ฐ˜๋“œ์‹œ conflict๊ฐ€ ๋‚˜๊ฒŒ ๋˜์–ด ์žˆ์Œ
-> ๋‚ด๊ฐ€ feature/users-view๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ๋™๊ธฐ์˜ ์ฝ”๋“œ๊ฐ€ ์ƒˆ๋กญ๊ฒŒ main์— merge๋˜์–ด PR ์˜ฌ๋ ธ๋”๋‹ˆ conflict ๋ฐœ์ƒ
-> main ๋ธŒ๋žœ์น˜๋กœ ์˜ฎ๊ฒจ์„œ ๋จผ์ € git pull origin main
-> feature/users-view๋กœ ์ด๋™
-> git merge main, ๊ทธ๋Ÿผ conflict์— ๋Œ€ํ•œ ๋ฉ”์„ธ์ง€๊ฐ€ ๋‹ค์‹œ ๋œธ
-> code๋ฅผ ์—ด์–ด์„œ ํ•ด๋‹น ๋‚ด์šฉ ์ค‘ ์ตœ์‹  ๋ฒ„์ „(main ๋‚ด์šฉ)์œผ๋กœ ์„ ํƒํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์‚ญ์ œํ•จ
-> git status, git diff๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธ
-> git add, commit ์ง„ํ–‰ ํ›„ push origin ์ง„ํ–‰

์ตœ์‹  main์„ pull๋ฐ›๊ณ  users-view ๋ธŒ๋žœ์น˜๋กœ ๋‹ค์‹œ ์ด๋™ํ•˜๋Š” ๊ณผ์ •

conflict ํ•ด๊ฒฐ ํ›„ ๋ณ‘ํ•ฉ

2
git diff๋ฅผ ํ†ตํ•ด ํ•ญ์ƒ ํ™•์ธํ•˜๊ณ  PR ์˜ฌ๋ฆด ๊ฒƒ
๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ์ˆ˜์ •ํ–ˆ๋Š”๊ฐ€๋ฅผ ํ™•์ธํ•ด์„œ PR ์˜ฌ๋ ค์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ !

3
์—”๋“œํฌ์ธํŠธ

ํ”„๋ก ํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” url๊ณผ ์„œ๋ฒ„๊ฐ€ ํ”„๋ก ํŠธ์— ๋ณด๋‚ด๋Š” url์ด ๋‹ค๋ฅด๋‹ค.
์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ผ ๋•Œ๋Š”, url์„ ํ•ญ์ƒ ๋ฆฌ์†Œ์Šค ๊ธฐ์ค€์œผ๋กœ ์ •์˜ ๋‚ด๋ฆฐ๋‹ค
ํšŒ์›์ •๋ณดํŽ˜์ด์ง€๋ผ ์น˜๋ฉด, mypage -> users ๋กœ ๋ฐ”๊ฟ”์•ผ ํ•จ

4
๋ชจ๋ธ๋ง์ด ๋ฐ”๋€Œ๋ฉด ํ•ญ์ƒ migration์„ ํ•ด์•ผ ํ•œ๋‹ค

column์ด ๋ฐ”๋€Œ๋ฉด ํ•ญ์ƒ migrate๋ฅผ ํ•ด์ค˜์•ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ , ๋งŒ์•ฝ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ ํ†ต์ƒ์ ์œผ๋กœ๋Š” main์— ์žˆ๋Š” migration ํŒŒ์ผ์„ ํŽผ์ณ๋†“๊ณ  ์ตœ์‹ ๊ฒƒ๋ถ€ํ„ฐ 0001๋ฒ„์ „๊นŒ์ง€ ํƒ€๊ณ  ์˜ฌ๋ผ๊ฐ€์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค. (์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋„ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ™์ด ๋น„๊ตํ•ด๊ฐ€๋ฉฐ ํ•ด์•ผ.. ์ด ๊ณผ์ •์ด ๋งค์šฐ ๊นŒ๋‹ค๋กœ์›€. ๊ทธ๋ฆฌ๊ณ  db ์ƒ์—์„œ๋„ django_migration์„ ํ†ตํ•ด ๋ชจ๋“  ๋ฒ„์ „์„ ๊ธฐ๋กํ•˜๊ณ  ์žˆ์Œ. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด์œ ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฃผ๋‹ˆ์–ด๋“คํ•œํ…Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จํ•ด์„œ ์ž‘์—…์‹œํ‚ค์ง€ ์•Š์Œ)

5
์ฟผ๋ฆฌํŒŒ๋ผ๋ฏธํ„ฐ ์—๋Ÿฌ

ํ”„๋ก ํŠธ๋กœ๋ถ€ํ„ฐ category_id์™€ page_id ๋‘˜ ๋‹ค ๋ฐ›์•„์•ผ ํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, page_id๊ฐ€ ์ž…๋ ฅ๋˜์–ด ์žˆ์ง€ ์•Š์•„ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋Š” ์ฒ˜๋ฆฌ๋ฅผ ๋”ฐ๋กœ ํ•˜์ง€ ์•Š์Œ.
-> ํ”„๋ก ํŠธ์—์„œ ๋ฌด์กฐ๊ฑด ์–‘์‹๋Œ€๋กœ ์ „๋‹ฌํ•ด์ค˜์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋ผ ์„œ๋ฒ„์—์„œ ๊ณ ๋ คํ•ด์•ผ ํ•  case๊ฐ€ ์•„๋‹˜

6
paginationํ•  ๋•Œ๋Š” offset/limit ์‚ฌ์šฉ

๋งŒ์•ฝ ์ฒ˜์Œ์— ๋‚ด๊ฐ€ ์•„์˜ˆ 10๊ฐœ ์ด๋Ÿฐ์‹์œผ๋กœ ์žก์•„์„œ ๊ทธ ๋„˜๋ฒ„๋ฅผ ๋ฐ›๋Š” ์‹์œผ๋กœ ํ•˜๋ฉด, ํ•œ ํŽ˜์ด์ง€์— 10๊ฐœ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋ฐ›๊ณ  ์‹ถ๋„๋ก ๋ณ€๊ฒฝํ•  ๋•Œ ๋ณ€๊ฒฝํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ์ƒ๊น€.
์œ ๋™์„ฑ์„ ์œ„ํ•ด์„œ, offset/limit์œผ๋กœ ์จ์•ผ ํ•œ๋‹ค.
๊ด€๋ จ library๊ฐ€ ์žˆ๊ธด ํ•จ (ํ•˜์ง€๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ˜„์žฌ ๋‹จ๊ณ„์—์„œ ๋น„์ถ”)

offset์€ ์‹œ์ž‘์ ์ด๊ณ , Limit์€ ๋๋‚˜๋Š” ์ง€์ 
์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ์ž๋™์œผ๋กœ 1~50, 1~100๊นŒ์ง€ ์„ค์ •๋˜์–ด ๋ณด์—ฌ์ง€๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  2ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๋ฉด 51~100, 101~200 ์ด๋Ÿฐ ์‹์œผ๋กœ.
์ฆ‰, slicing์„ ํ•ด์ค„ ๋•Œ [offset:offset+limit]์„ ํ•ด์•ผ ์œ„์™€ ๊ฐ™์ด ์ •์ƒ ์ž‘๋™ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  limit์€ ์ƒ์ˆ˜๋กœ ์„ค์ • (10๊ฐœ์”ฉ ๋ณด์—ฌ์ค„๊ฑฐ๋ฉด 10).

๋งŒ์•ฝ [offset:limit]์œผ๋กœ ํ•ด๋ฒ„๋ฆฌ๋ฉด, 2ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ”์„ ๋•Œ 51~100 ์ด๋ ‡๊ฒŒ ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ 51~10์ด ๋˜์–ด ๋ฒ„๋ฆฐ๋‹ค.

profile
์˜ˆ๋น„ ๊ฐœ๋ฐœ์ž์˜ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ | explore, explore and explore

0๊ฐœ์˜ ๋Œ“๊ธ€