๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

๐Ÿ’ป Deep Wide Programming

(79)
[โ›บ๏ธ Django] Django basic #3 #4 ๋ณต์Šต ๋ฉ”๋ชจ ๐Ÿ“ŒUserAdmin (Django๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์–ด๋“œ๋ฏผ ํŒจ๋„) ํŒŒ๋ž€ ๋ผ์ธ ์žˆ๋Š” ๋ฐ•์Šค = fieldset ๊ธฐ๋ณธ ์žฅ๊ณ  ์–ด๋“œ๋ฏผ fieldset + ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ํ•˜๋‹จ์ฒ˜๋Ÿผ. banana fieldset์„ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค. from django.contrib import admin from django.contrib.auth.admin import UserAdmin from . import models # Register your models here. @admin.register(models.User) class CustomUserAdmin(UserAdmin): """ Custom User Admin """ fieldsets = UserAdmin.fieldsets + ( ("Banana", {"fields": ("..
[โ›บ๏ธํด๋ก ์ฝ”๋”ฉ] django App ๋งŒ๋“ค๊ธฐ ์‹ค์Šต #๋ฉ”๋ชจ ๐Ÿ“Œ ํ•„์š”ํ•œ App folder๋“ค ์ƒ์„ฑ ์ดํ›„, 1. ์ฒซ์งธ, Config ํด๋”์˜ settings.py์˜ INSTALLED_APPS ์•ˆ์— ์ƒ์„ฑํ•ด์ค€ ํ•˜์œ„ ์•ฑ๋“ค์„ ๋„ฃ์–ด์ค€๋‹ค. [๊ฐ์ฒด์ง€ํ–ฅ!]ex. users ํด๋”์˜ apps.py์˜ UsersConfig ํด๋ž˜์Šค, rooms ํด๋”์˜ apps.py์˜ UsersConfig ํด๋ž˜์Šค 2. ๋‘˜์งธ, models.py์—์„œ ํ•ด๋‹น App์˜ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•ด์ค€๋‹ค.์ผ๋‹จ ์žฅ๊ณ ์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ , โŽˆ ์ปค์Šคํ…€ ํ•ด์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด, AbstractUser์„ ์ž„ํฌํŠธํ•ด์˜จ๋‹ค. 3. ์…‹์งธ, admin.py์—์„œ Model์„ importํ•˜๊ณ , ํ•ด๋‹นApp์–ด๋“œ๋ฏผ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ด ์–ด๋“œ๋ฏผ ํ™˜๊ฒฝ์„ ์„ธํŒ…ํ•ด์ค€๋‹ค. ๐Ÿ“ŒTip! ๋ชจ๋“  App admin.py์— ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค˜์•ผํ•  ๋•Œ! => App CoreCore..
[โ›บ๏ธํด๋ก ์ฝ”๋”ฉ] django Creating the Apps/ Models django Creating the Apps (๋ฒ„๋ธ” ์•ˆ์—์„œ)django-admin startapp ์•ฑ์ด๋ฆ„ django-admin startapp rooms๋ฅผ ์ž…๋ ฅํ–ˆ๋”๋‹ˆ, rooms๋ผ๋Š” ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋Š”๋ฐ ์•ˆ์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ค€๋น„๋ฌผ๋“ค์ด ์ด๋ฏธ ์ฑ™๊ฒจ์ ธ ์žˆ๋‹ค.(์ด๋•Œ ์ƒ์„ฑ๋œ ํŒŒ์ผ ๋ช…๋“ค์„ ์ž„์˜๋กœ ๋ฐ”๊พธ๋ฉด ์•ˆ๋œ๋‹ค. library๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, framework๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ!!โ—๏ธframework = ์ •ํ•ด์ง„ ๋ฃฐ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. โ—๏ธlibrary = ๋ญ”๊ฐ€๋ฅผ ์ง“๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ex. react ) ๊ณ„ํšํ•œ ์žฅ๊ณ  app์— ํ•„์š”ํ•œ ํ•˜์œ„ app ํด๋”๋“ค์„ ์ƒ์„ฑํ•ด์ค€๋‹ค.๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ํด๋”์— urls.py ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์ค€๋‹ค. ์‚ฌ์šฉํ•˜๊ฒŒ๋  url์ด ๊ต‰์žฅํžˆ ๋งŽ์„ ๊ฑฐ๊ธฐ ๋•Œ๋ฌธ์—, configํด๋”์˜ url ํŒŒ์ผ์—์„œ๊ฐ€ ์•„๋‹ˆ๋ผ, ..
[โ›บ๏ธํด๋ก ์ฝ”๋”ฉ] ์žฅ๊ณ  ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๊ธฐ, ์žฅ๊ณ  App ๊ธฐํš ์žฅ๊ณ  ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๊ธฐ terminal์—์„œ ๋ฒ„๋ธ”์ด ์žˆ๋Š” ์ž‘์—…ํด๋”์— ๋“ค์–ด๊ฐ„ ๋’ค, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. ๐Ÿ‘ฉโ€๐Ÿ’ป pipenv shell python manage.py runserver ๊ทธ๋Ÿฌ๋ฉด ์žฅ๊ณ ๊ฐ€ ์ฃผ๋Š” ๋งํฌ๊ฐ€ ํ•˜๋‚˜ ๋œจ๋Š”๋ฐ, ํด๋ฆญํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์˜ ์›นํŽ˜์ด์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. http://127.0.0.1:8000/ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™์‹œํ‚จ ๊ฒƒ์ด๋‹ค! ์„œ๋ฒ„ ์ฃผ์†Œ์— /admin์„ ์ถ”๊ฐ€ํ•ด์„œ ๊ฒ€์ƒ‰ํ•ด๋ณด๋ฉด, ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€๋„ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š”๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (๋กœ๊ทธ์ธํ•˜๋ผ๊ณ  ๋œธ) \ [๋งŒ์•ฝ ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค๋ฉด] ์„œ๋ฒ„ ๋„๋Š” ๋ฒ•: ํ„ฐ๋ฏธ๋„> ctrl + z (์œ„ ์„œ๋ฒ„ ํŽ˜์ด์ง€ ๋ฆฌํ”„๋ ˆ์‹œ ํ•˜๋ฉด ๊ตฌ๋™ ์•ˆํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ ๊ฐ€๋Šฅ) ์„œ๋ฒ„๋ฅผ ๋ˆ ์ƒํƒœ์—์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ python manage.py migrate python manage.py ..
[ํด๋ก ์ฝ”๋”ฉโ›บ๏ธ] #2 INTRODUCTION TO DJANGO ๐Ÿ“ŒCreating a Django Project ์ด์–ด์„œ, ๊ฐ™์€ ํŒŒ์ผ/๊ฐœ๋ฐœํ™˜๊ฒฝ ๋‚ด์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ django-admin startproject config django-admin startproject config . (๋์— .์„ ๋ถ™์ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ ˆ์ฐจ ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š”๋“ฏ.,?) ๊ทธ๋Ÿฌ๋ฉด ์œ„์™€ ๊ฐ™์€ ํŒŒ์ผ๋“ค์ด ์ƒ์„ฑ๋œ๋‹ค. ํด๋”๋ช…์„ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์•ˆ์— ๋“ค์–ด์žˆ๋˜ configํด๋”์™€ manage.py๋ฅผ ๋ฐ–์œผ๋กœ ๊บผ๋‚ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ Aconfig ํด๋”๋Š” ์ง€์šด๋‹ค. ํ•˜๋‹จ์—์„œ ๋ฒ„์ „์ด pipenv๊ฐ€ ํฌํ•จ๋œ ๋ฒ„์ „์ธ์ง€ ํ™•์ธํ•˜๊ณ  ๋ณ€๊ฒฝํ•ด์ค€๋‹ค. ๐Ÿ“ŒSetting up VSCode and Python Like a PRO Linting Python in Visual Studio Code Linting Python in Vis..
[โ›บ๏ธํด๋ก ์ฝ”๋”ฉ] pipenv, Django ์„ค์น˜, ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ ๐Ÿ“Œ์•ž์œผ๋กœ ์‚ฌ์šฉํ•  Framework ๐Ÿ‘‰django : Prevent "reinventing the wheel" ๐Ÿ‘‰tailwindcss(utility first css framework) ๐Ÿ“Œpipenv ์„ค์น˜ pipenv : ์žฅ๊ณ  ์„ค์น˜ ์‹œ, pipenv๋กœ ์„ค์น˜ํ•  ๊ฒƒ. pipenv๋ฅผ ์ด์šฉํ•˜๋ฉด, ๋ฒ„๋ธ”์„ installํ•ด์ค€๋‹ค. global๋กœ ๋‹ค์šด๋˜์ง€ ์•Š๊ณ , ๋ฒ„๋ธ”์— ๋ฒ„์ „๋ณ„๋กœ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅ ๐Ÿ‘‰Mac OS/๋ฆฌ๋ˆ…์Šค๋ผ๋ฉด brew install pipenv ๋ฅผ ์ด์šฉํ•ด ๋‹ค์šด๋กœ๋“œ! brew install pipenv ๐Ÿ‘จโ€๐Ÿ’ป brew๊ฐ€ ๊น”๋ ค์žˆ์ง€ ์•Š๋‹ค๋ฉด, ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋กœ home brew์„ค์น˜ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/instal..
[SOPT, ์ง€์˜ฅ์˜ ๊นƒํ„ฐ๋””] Git, Github ์Šคํ„ฐ๋”” 1์ผ์ฐจ ๐Ÿ“Œ์˜ค๋Š˜ ์Šคํ„ฐ๋””์˜ ๋ชฉ์ : ๊นƒ์—์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…, ๊นƒํ—ˆ๋ธŒ์—์„œ ํ•˜๋Š” ์ž‘์—…์˜ ์ฐจ์ด๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ๐Ÿ“Œ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ(VCS) Git, Github๐Ÿ‘‰CI : ๋‚ด๊ฐ€ ์ง€๊ธˆ ํ•˜๋Š” ์ž‘์—…์ด ์ด์ „ ์ž‘์—…์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ง€์†์ ์ธ ๊ฒ€์ฆ (์‹ ๊ธฐ๋Šฅ ์ถ”๊ฐ€์‹œ ์˜ˆ์ „ ๊ธฐ๋Šฅ์ด ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ณผ์ •)๐Ÿ‘‰CD :์ปค๋ฐ‹๋งŒ ํ•˜๋ฉด, ์•Œ์•„์„œ Deployํ•ด์ฃผ๋Š” ์ž‘์—… Git, Github์˜ ์ฐจ์ด์  ๐Ÿ‘‰Git: ๋‹ค๋ฅธ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ณ (๋„คํŠธ์›Œํฌ ์—†์ด) ๋กœ์ปฌ์—์„œ ์ €์žฅ์†Œ(์†Œ์Šค ์ฝ”๋“œ๋“ค์„ ๋ชจ๋‘ ์ €์žฅํ•ด๋†“๋Š” ๊ณณ)๋ฅผ ๋งŒ๋“ค๊ณ , ๋˜๋Œ๋ฆฌ๊ณ  ๋“ฑ์˜ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ. ๐Ÿ‘‰Github:(์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๊ฐœ๋…) ์ƒˆ๋กœ์šด ์ž‘์—…์„ ์„œ๋ฒ„์— push(์ €์žฅ)ํ•ด์ฃผ๋Š” ๊ฒƒ_push๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ ์ €์žฅ์†Œ์™€ ๋™๊ธฐํ™”๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ. (commit์€ ๋กœ์ปฌ์˜ ์ €์žฅ์†Œ์— ์ €์žฅํ•ด์ฃผ๋Š” ๊ฒƒ) ๐Ÿ“Œ..
[์ƒํ™œ์ฝ”๋”ฉ JS] object inheritance ๊ฐ์ฒด ์ƒ์† (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ๋ฆฌ์ฆˆ) ๐Ÿ“Œํด๋ž˜์Šค๋ฅผ ํ†ตํ•œ ์ƒ์†์ด ์•„๋‹Œ, ๊ฐ์ฒด๋ฅผ ํ†ตํ•œ ์ƒ์†์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. โœ๏ธ ์ฃผ๋ฅ˜ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์˜ ๋ฐฉ์‹ ๊ฐ์ฒด์˜ ์†์„ฑ์€ ํด๋ž˜์Šค ๋‹จ์—์„œ ์ด๋ฏธ ๊ฒฐ์ •์ด ๋œ๋‹ค. ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋‹ค๋ฅด๋‹ค! ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐ์ฒด๊ฐ€ ์ง์ ‘ ๋‹ค๋ฅธ ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ์–ผ๋งˆ๋“ ์ง€ ์ƒ์†๊ด€๊ณ„๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ! ๋˜ ๋‹ค๋ฅธ ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด, ๋งํฌ ๊ต์ฒด๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ์†๊ด€๊ณ„๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋งํฌ๋ฅผ 'prototype link'๋ผ๊ณ  ํ•œ๋‹ค. ์ด ๋งํฌ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ 'prototype object'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๐Ÿ“Œ__proto__๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. or ๐Ÿ“ŒObject.create(); ๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•