Backend ๐Ÿ’ป

ยทBackend ๐Ÿ’ป
1. entities.pyfrom uuid import UUIDfrom advanced_alchemy.base import UUIDAuditBasefrom sqlalchemy.orm import Mapped, mapped_columnfrom sqlalchemy.dialects.postgresql import UUID as psql_UUID # postgresql ์—์„œ๋„ string type ์ด ์•„๋‹Œ UUID type์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด importclass IdempotencyKey(UUIDAuditBase): idempotency_key: Mapped[UUID] = mapped_column(psql_UUID(as_uuid=True), unique=True, nullable=False) 2. auto..
CORS ๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋ณด์•ˆ์ƒ์˜ ์•ˆ์ „์„ ์œ„ํ•ด์„œ cross-origin HTTP ์š”์ฒญ์„ ์ œํ•œํ•œ๋‹ค. ๋”ฐ๋ผ์„œ cross-origin ์š”์ฒญ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„ ์ธก์—์„œ ํ—ˆ์šฉ์„ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด๋Š” HTTP-header ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ CORS๋ผ๊ณ  ํ•œ๋‹ค. CORS ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์—์„œ ์›๋ž˜์˜ ์‚ฌ์ดํŠธ๋ฅผ ํ‰๋‚ด๋‚ด์„œ ์•…์˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ๊ธฐ์กด ์‚ฌ์ดํŠธ์™€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์•…์˜์ ์œผ๋กœ ๊ฐ€๋กœ์ฑ„๋Š” ๋“ฑ์˜ ๊ณต๊ฒฉ์„ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก CORS๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ํ˜‘์˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์ด๋‹ค. CROSS-ORIGIN ์ด๋ž€ cross-origin ์ด๋ž€ ์ด๋“ค ์ค‘ ํ•œ๊ฐ€์ง€๋ผ๋„ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 1. protocol : ํ”„๋กœํ† ์ฝœ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ์ด๋‹ค. ex. ht..
ยทBackend ๐Ÿ’ป
GitHub๊ฐ€ 2023๋…„ 3์›” 24์ผ ์ดํ›„๋กœ RSA SSH host key ์ •์ฑ… ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์ƒ๊ธด ์ด์Šˆ๋ผ๊ณ  ํ•œ๋‹ค. private key๊ฐ€ public repository์— ๋…ธ์ถœ์ด ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์—…๋ฐ์ดํŠธ๋ฅผ ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค old host key๋ฅผ ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ key๋ฅผ ์ƒ์„ฑํ•ด์คŒ์œผ๋กœ์จ ์‚ญ์ œํ•˜๊ณ , ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค. ssh-keygen -R github.com ๊ทธ๋‹ค์Œ์— Are you sure you want to continue connecting (yes/no/[fingerprint])? ๋ผ๋Š” ์งˆ๋ฌธ์ด ๋‚˜์˜ค๋ฉด yes ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.
Django ์—์„œ ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด UserCreationForm ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Django์˜ UserCreationForm ํด๋ž˜์Šค๋Š” django.contrib.auth.form ํŒจํ‚ค์ง€์— ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์ƒ์†ํ•ด์„œ ์œ ์ € ์ƒ์„ฑ form ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. from django import forms from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User class UserForm(UserCreationForm): email = forms.EmailField(label="email") # ์žฅ๊ณ  ๋ชจ๋ธ ํผ์€ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋กœ Meta ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ ธ์•ผ ํ•˜๋ฉฐ, Meta ํด๋ž˜์Šค..
minjiwoo
'Backend ๐Ÿ’ป' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก