ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ(Two Pointers Algorithm) ๋ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ด๋ ์ ๋ ฌ๋ ๋ฐฐ์ด(๋๋ ๋ฆฌ์คํธ)์์ ์ํ๋ ๊ฐ์ ์ฐพ๊ฑฐ๋ ๊ตฌ๊ฐํฉ์ ๊ตฌํ ๋ ์ ์ฉํ ์๊ณ ๋ฆฌ์ฆ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์ ์ ์ฌํ๋, ๊ณ ์ ๋ ๊ตฌ๊ฐ์ด ์๋ ๊ฐ๋ณ์ ์ธ ๊ตฌ๊ฐ์ ํ์ํ๋ค๋ ์ ์์ ์ฐจ์ด
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ ์ด๋ธ ์์ฑid ์ปฌ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ง์ PK ์ปฌ๋ผ์ ์ ์ํ์ง ์์ผ๋ฉด rowid ์ปฌ๋ผ์ด ์๋์ผ๋ก ์์ฑ๋จ(์จ๊ฒจ์ ธ ์์)๊ธฐ์กด ํ ์ด๋ธ์ ๊ตฌ์กฐ ๋ณ๊ฒฝ(์์ )ALTER TABLE ~ RENAME : ํ ์ด๋ธ ๋ช ๋ณ๊ฒฝALTER TABLE ~ RENAME COLUMN ~
Structured Query LanguageRDBMS์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ค๊ณ๋ ํน์ ๋ชฉ์ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋ฏธRDBMS์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์์ฑ ๋ฐ ์์ ํ ์ ์์ผ๋ฉฐ, ํ ์ด๋ธ์์์ ์๋ฃ ๊ฒ์ ๋ฐ ๊ด๋ฆฌ๋ ํ ์ ์์๋ฐ์ดํฐ
์ ๋ก๋์ค..ํ ์ด๋ธ ๊ฐ์ ์ํธ์์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ค์ ๋๋ ์ฌ๋ฌ ํ ์ด๋ธ ๊ฐ์ ๋ ผ๋ฆฌ์ ์ธ ์ฐ๊ฒฐ์๋ฅผ ๋ค์ด, ์ผํ๋ชฐ์์ ์ฃผ๋ฌธ์ด ๋ค์ด์์ ๋, ํด๋น ์ฃผ๋ฌธ์ด ์ด๋ค ๊ณ ๊ฐ์ด ์ฃผ๋ฌธํ๋์ง ์ ์ ์๋๋ก ์ฃผ๋ฌธ ์ํ ์ ๋ณด์ ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ์ฐ๊ฒฐ์ง๋ ๊ฒ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ, ํ, ์ด ๋ฑ์ผ๋ก ๋๋์ด ๊ตฌ์กฐํํ๋
์ฒด๊ณํ๋ ๋ฐ์ดํฐ์ ๋ชจ์๊ฒ์, ๊ตฌ์กฐํ ๊ฐ์ ์์ ์ ๋ณด๋ค ์ฝ๊ฒ ํ๊ธฐ ์ํด ์กฐ์งํ๋ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ์ ์ฅ ์์คํ ๊ธฐ๋ณธ ๊ตฌ์กฐ์คํค๋ง(Schema)๋ผ๋๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋ฃ์ ๊ตฌ์กฐ, ํํ ๋ฐฉ๋ฒ, ๊ด๊ณ ๋ฑ์ ์ ์ํ ๊ตฌ์กฐํ ์ด๋ธ(Table)ํ๋์ ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํด ์กฐ์ง๋ ๋ฐ์ดํฐ ์์๋ค์
๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๊ฒฝ์ฐ Web API๋ก ๋ค์ด์ค๋ ์์ฒญ ์์๊ฐ ์๋, ์์ ์ด ์๋ฃ๋๋ ์์์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋๋ค๋ ํน์ง์ด ์๋ค.์ด ๊ฒฝ์ฐ ์คํ๊ณผ์ ์ ์์ํ ์ ์์ด ์ฝ๋์ ์คํ ์์๊ฐ ๋ถ๋ช ํํด์ง๋ค๋ ๋จ์ ์ด ์๊น.์ด ๊ฒฝ์ฐ Callback ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์์๋ฅผ ๋ช ํํ ํ ์ ์์๋ค๋ฅธ
์์ ์ ์์ฐจ์ ์ผ๋ก ํ๋์ฉ ์ฒ๋ฆฌํ๋ ๊ฒ์ผ๋ก, ์ด์ ์์ ์ด ์๋ฃ๋ ์ดํ์ ๋ค์ ์์ ์ ์คํํ๊ฒ ๋๋ค.์์ ์ ์์ํ ํ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ฐ๋ก ๋ค์ ์์ ์ ์ํํ๋ ๊ฒ์ผ๋ก, ์์ฒญ์ ๋ํ ์๋ต์ ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค.์๋ฅผ ๋ค์ด, ์ฉ๋์ด ํฐ ์ฌ์ง์ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ ๋ค์ ์คํ
DOM์ ์น ํ์ด์ง์ ๊ฐ์ฒด ์งํฅ ํํ์ด๋ฉฐ, JavaScript์ ๊ฐ์ ์คํฌ๋ฆฝํธ ์ธ์ด๋ฅผ ์ด์ฉํ์ฌ DOM์ ์์ ํ ์ ์์๋ฌธ์์ ๊ตฌ์กฐํ๋ ํํ์ ์ ๊ณตํ๋ฉฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ DOM ๊ตฌ์กฐ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ฌธ์์ ๊ตฌ์กฐ๋ ์คํ์ผ, ๋ด์ฉ ๋ฑ์ ๋ณ๊ฒฝํ
์น ์์ ์กด์ฌํ๋ ์ปจํ ์ธ ๋ฅผ ์์งํ๋ ์์ ์ ์๋ฏธํฌ๋กค๋งํ๋ ์ํํธ์จ์ด๋ฅผ ํฌ๋กค๋ฌ(Crawler)๋ผ๊ณ ๋ถ๋ฆํฌ๋กค๋ง : ์ฌ๋ฌ ์ธํฐ๋ท ์ฌ์ดํธ์ ํ์ด์ง๋ฅผ ์์งํด์ ๋ถ๋ฅํ๊ณ , ์ ์ฅํ ํ ์ธ๋ฑ์ฑํ๋ ๊ฒํ์ฑ : ์ด๋ค ํ์ด์ง์์ ๋ด๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ํน์ ํจํด์ด๋ ์์๋ก ์ถ์ถํ์ฌ ์ ๋ณด๋ฅผ
์๋น์ค ๊ฐ๋ฐ์ ํ์ํ ๊ธฐ๋ฅ๋ค์ ๋ฏธ๋ฆฌ ๊ตฌํํด์ ๋ชจ์๋์ ๊ฒ. ํ๋ ์ ์ํฌ๋ฅผ ํ์ฉํ๋ฉด ์น ์๋น์ค ๊ฐ๋ฐ์ ์์ด์ ๋ชจ๋ ๊ฒ๋ค์ ์ง์ ๊ฐ๋ฐํ ํ์ ์์ด, ๋ง๋ค๊ณ ์ ํ๋ ๋ณธ์ง์ ์ง์คํ์ฌ ๊ฐ๋ฐ ๊ฐ๋ฅ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ๊ฐ๋ฐ ์ผ๊ด์ฑ ํฅ์, ์ ์ง๋ณด์ ์ฉ์ด์ํํธ์จ์ด์ ์์ฐ์ฑ๊ณผ ํ์ง์ ๋์ผ
bootstrap ์ค์นsettings.py์ INSTALLED_APPS์ โbootstrap4โ ์ถ๊ฐbase.html์ bootstrap CDN ์ฝ๋ ์ฝ์ ์์๋ฐ์ htmlํ์ผ ์ต์๋จ์ {% load bootstrap4 %} ์ถ๊ฐ
Authentication(์ธ์ฆ) : ์ฌ์ฉ์์ ์ ์ ํ์ธAuthorization(๊ถํ, ํ๊ฐ) : ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ์ํํ ์ ์๋ ์์ ๊ถํ ๋ถ์ฌdjango.contrib.authsettings.py์ ํฌํจ๋์ด ์์ผ๋ฉฐ, INSTALLED_APPS์์ ํ์ธ ๊ฐ๋ฅauth์
์ ๋ก๋์ค..widthratio ๋ด์ฅ ํ ํ๋ฆฟ ํ๊ทธ ์ด์ฉwidthratio : ์ฃผ์ด์ง ๊ฐ์ด ์ต๋๊ฐ์์ ์ฐจ์งํ๋ ๋น์จ์ Bar ์ฐจํธ๋ก ํํํ๋๋ฐ ์ฌ์ฉํ๋ ํ๊ทธ
Django ์๋ฒ๋ ๋ค์ด์ค๋ ์์ฒญ์ ๋ชจ๋ ์์ฉํ๊ณ ์๋๋ฐ, ์ด๋ฌํ ์์ฒญ ์ค์๋ ๋น์ ์์ ์ธ ํน์ ์ ์์ ์ธ ์์ฒญ์ด ์์ ์๋ ์์.์ด์ฒ๋ผ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฐ์ดํฐ๊ฐ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ฐ์ดํฐ ํ์์ด ๋ง๋์ง์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฆ์ด ๋ฐ๋์ ํ์Django Form์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๋จ์
๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ๋ฐ ์กฐํํ๊ธฐ ์ํด์๋ SQL ์ฟผ๋ฆฌ๋ฌธ์ ์ด์ฉDjango๋ Model์ ํตํด SQL ์ฟผ๋ฆฌ๋ฌธ ์์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ๊ณ ๊ด๋ฆฌํจ์ฌ์ฉ์๊ฐ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ค์ ํ์์ ์ธ ํ๋๋ค๊ณผ ๋์๋ค์ ํฌํจํ๊ณ ์์์ผ๋ฐ์ ์ผ๋ก ๊ฐ๊ฐ์ ๋ชจ๋ธ์ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด
์ค์ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ, ํ์ผ์ ๊ตฌ์กฐ๋ ๋ ์ด์์์ ์ ์HTML ํ์ผ ๋ด์์ ํ์ด์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ์ฌ์ฉํ ์ ์๋๋ก ํจDjango Template์ ์ด์ฉํ HTML ์ ์ ๋ถ๋ถ๊ณผ ๋์ ์ปจํ ์ธ ์ฝ์ Django Template System๋ฐ์ดํฐ ํํ์ ์ ์ดํ๋ ๋๊ตฌ์ด
์ฅ๊ณ ๋ URL โ VIEW โ TEMPLATE ์์ผ๋ก ์์ฒญ์ด ์ด๋ฃจ์ด์ง๊ณ ์ญ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ฐํ๋จ๊ฐ๋ฐ ๊ณผ์ ๋ํ urls.py โ views.py โ templates ์์ผ๋ก ์งํ ํ์ด์ง ์์ฒญ์ด ๋ฐ์ํ๋ฉด ๊ฐ์ฅ ๋จผ์ ํธ์ถ๋๋ ํ์ผ๋ก, URL๊ณผ VIEW ํจ์ ๊ฐ์ ๋งคํ์
ํ๋ก์ ํธ(Project) ์ฅ๊ณ ์ ํ๋ก์ ํธ๋ ์ฑ์ ์งํฉ ํ๋ก์ ํธ์๋ ์ฌ๋ฌ ์ฑ์ด ํฌํจ๋ ์ ์์ผ๋ฉฐ, ๋ํ ์ฑ์ ์ฌ๋ฌ ํ๋ก์ ํธ์ ์์ ์ ์์ ํ๋ก์ ํธ ์์ฑ ํ๋ก์ ํธ ์ด๋ฆ์๋ Python์ด๋ Django์์ ์ฌ์ฉ ์ค์ธ ํค์๋ ๋ฐ โ-โ(ํ์ดํ) ์ฌ์ฉ ๋ถ๊ฐ โ.โ(dot
์ ๋ก๋์ค..๊ฐ์ํ๊ฒฝ ์ค์ ๋ฐ ํ์ฑํ ๋ง์น ๋ค ์ค์น ์งํDjango 4.0 ๋ฆด๋ฆฌ์ฆ๋ก ์ธํด 3.2(LTS)๋ฒ์ ๋ช ์ํด์ ์ค์น์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ๋ณด๋ค ์ฅ๊ธฐ๊ฐ์ ๊ฑธ์ณ ์ง์ํ๋๋ก ๊ณ ์๋ ์ํํธ์จ์ด์ ๋ฒ์ ์ปดํจํฐ ์ํํธ์จ์ด์ ์ ํ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ ์ ์ฑ ๋ฐฐํฌ์๋ LTS ํ์ ์ ํตํด ์ฅ๊ธฐ์ ์ด๊ณ
์น ์๋ฒ ๋๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ API๋ก, ํ๋๋ถํฐ ์ด๊น์ง ๋ชจ๋ ์ง์ ๊ฐ๋ฐํ๋ ๊ฒ์ด ์๋, ๊ณต๊ฐ๋ Open API๋ฅผ ํตํด ๊ฐ๋ฐํ๋ ์ถ์ธOpen API : ๊ฐ๋ฐ์์๊ฒ ์ํํธ์จ์ด๋ ์น ์๋น์ค์ ๊ฐ๋ฐ ๊ถํ์ ์ ๊ณตํ๋ฉฐ, ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐ๋ API๋ค์ํ ํ์ ์ ๋ฐ