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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

(6)
[Django REST framework] (4) JWT ์ธ์ฆ, Kakao ์†Œ์…œ ๋กœ๊ทธ์ธ ์ง€๋‚œ ๊ธ€[Django REST framework] (1) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ณผ ์„ค์ •[Django REST framework] (2) Serializer, Viewset, Router[Django REST framework] (3) Nginx, Gunicorn, AWS EC2 ๋ฐฐํฌ ์ง€๋‚œ ๊ธ€์— ์ด์–ด 2024 ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ์—ฌ๋ฆ„๋ฐฉํ•™ ์„ธ์…˜ 3์ฃผ์ฐจ์˜ ์ž๋ฃŒ์ด๋‹ค. ์ค‘๊ฐ„์— ์ˆ˜์ •๋œ ๋‚ด์šฉ์ด ์žˆ์–ด โŒ ๋กœ ํ‘œ์‹œํ–ˆ๊ณ  ๋งจ ๋’ค์— ์ˆ˜์ •๋œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.
[Django REST framework] (3) Nginx, Gunicorn, AWS EC2 ๋ฐฐํฌ ์ง€๋‚œ ๊ธ€[Django REST framework] (1) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ณผ ์„ค์ •[Django REST framework] (2) Serializer, Viewset, Router 2024๋…„ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ์—ฌ๋ฆ„๋ฐฉํ•™ ์„ธ์…˜์„ ์œ„ํ•ด ์ค€๋น„ํ–ˆ๋˜ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•œ๋‹ค. ์„ธ์…˜ ๋‚ด์šฉ์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด ์ƒˆ ๊ธ€์„ ์จ๋ณด๊ณ  ์‹ถ์—ˆ์ง€๋งŒ... ์ด๋ฏธ ๋งŽ์€ ์‹œ๊ฐ„์ด ์ง€๋‚ฌ๊ณ  ๋‚ด์šฉ๋“ค์„ ๋‹ค์‹œ ๋Œ์•„๋ณด๊ธฐ์—” ๋ถ„๋Ÿ‰์ด ๋„ˆ๋ฌด ๋งŽ์•˜๋‹ค. ๋‹น์‹œ์— ์ด์šฉํ–ˆ๋˜ PDF ํŽ˜์ด์ง€๋ฅผ ์˜ฌ๋ฆฌ๊ณ  ์ด์— ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‹ค๋Š” ์ •๋„์—์„œ ๋งˆ๋ฌด๋ฆฌํ•˜์˜€๋‹ค. ๋ธ”๋กœ๊ทธ ์—ด์‹ฌํžˆ ์จ์•ผ์ง€ ๋งˆ์Œ ๋จน๊ณ ์„  ๋ฌตํ˜€๋†จ๋˜ ์˜ค๋ž˜๋œ ์ˆ™์ œ์˜€๋Š”๋ฐ ์ด๋ ‡๊ฒŒ๋ผ๋„ ๋นจ๋ฆฌ ํ•ด์น˜์›Œ์•ผ ๋‹ค์Œ ์ž‘์—…์„ ํ•  ๋งˆ์Œ์ด ์ƒ๊ธธ ๊ฒƒ ๊ฐ™๋‹ค.
[Django REST framework] (2) Serializer, Viewset, Router ์ง€๋‚œ ๊ธ€[Django REST framework] (1) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ณผ ์„ค์ •   Django REST framework๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœํ•  ๋•Œ ๋“ฑ์žฅํ•˜๋Š” ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.SerializerSerializers allow complex data such as querysets and model instances to be converted to native Python datatypes that can then be easily rendered into JSON, XML or other content types. Serializers also provide deserialization, allowing parsed data to be converted back into com..
[go lang] ์ธํ„ฐํŽ˜์ด์Šค ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜, ๊ตฌํ˜„์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ฉ”์†Œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜์˜ ์ง‘ํ•ฉ์œผ๋กœ, ์–ด๋–ค ํƒ€์ž…์ด ํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ๋ช…์‹œ๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. ์•„๋ž˜๋Š” DBManager ๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•˜๊ณ  *MySQLDBManager ํƒ€์ž…์ด ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.// ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜type DBManager interface { Connect(ip string, user string, pw string) bool Query(q string) Data Commit() bool Disconnect() bool}// Concrete Type ์ •์˜type MySQLDBManager struct { ...}// MySQLDBManager์˜ DBManager ๊ตฌํ˜„func (m *..
[go lang] ๋ฐฐ์—ด, ์Šฌ๋ผ์ด์Šค, ๋งต ์ •์  ๋ฐฐ์—ด๋ฐฐ์—ด์˜ ํƒ€์ž… ์ด๋ฆ„์€ [#count] ํ˜•ํƒœ๋กœ int ์›์†Œ 5๊ฐœ๋ฅผ ๋‹ด๋Š” ๋ฐฐ์—ด์˜ ํƒ€์ž… ์ด๋ฆ„์€ [5]int, bool ์›์†Œ 100๊ฐœ๋ฅผ ๋‹ด๋Š” ๋ฐฐ์—ด์˜ ํƒ€์ž… ์ด๋ฆ„์€ [100]bool์ด ๋œ๋‹ค. ํƒ€์ž… ์ด๋ฆ„ ๋’ค์— {์™€ }๋กœ ์ดˆ๊ธฐํ™” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค.func main() { var array [5]int even := [4]int{2, 4, 6, 8} vertexes := [3]Vertex{{1, 2}, {2, 3}}}์Šฌ๋ผ์ด์Šค์Šฌ๋ผ์ด์Šค์˜ ํƒ€์ž… ์ด๋ฆ„์€ [] ํ˜•ํƒœ๋กœ int ์›์†Œ๋ฅผ ๋‹ด๋Š” ์Šฌ๋ผ์ด์Šค์˜ ํƒ€์ž… ์ด๋ฆ„์€ []int, bool ์›์†Œ๋ฅผ ๋‹ด๋Š” ์Šฌ๋ผ์ด์Šค์˜ ํƒ€์ž… ์ด๋ฆ„์€ []bool์ด ๋œ๋‹ค. ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์ „์ฒด ์›์†Œ ๊ฐœ์ˆ˜๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.func main() { // ๋ฐฐ์—ด๋กœ๋ถ€ํ„ฐ ๋ฒ”์œ„๋ฅผ ์ง€์ • pri..
[Django REST framework] (1) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ณผ ์„ค์ • ๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์ •, ์ง„์ž…Django๋Š” Python ๊ธฐ๋ฐ˜์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ด๊ณ  ์—ฌํƒ€์˜ Python ํ”„๋กœ์ ํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ด์šฉํ•ด Python ๋ฒ„์ „, ํŒจํ‚ค์ง€ ๋ฒ„์ „ ๋“ฑ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. venv ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด venv๋ผ๋Š” ์ด๋ฆ„์˜ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜์ž. ๊ฐ€์ƒํ™˜๊ฒฝ ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” Python ์ธํ„ฐํ”„๋ฆฌํ„ฐ, ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค.python3 -m venv venvsource venv/bin/activate์ด๋•Œ ์ƒ์„ฑํ•˜๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ด๋ฆ„์ด ๋ฐ˜๋“œ์‹œ venv์ผ ํ•„์š”๋Š” ์—†์œผ๋ฉฐ, ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์— ์œ„์น˜ํ•  ํ•„์š”๋„ ์—†๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ‘์— ๊ฐ€์ƒํ™˜๊ฒฝ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋‘๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด๋Š” ์–ด๋””๊นŒ์ง€๋‚˜ ์ด์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž์˜ ๊ธฐํ˜ธ์ด๋‹ค.python3 -m venv ~/.venv/djangopr..