Django

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ƒํƒœ๊ณ„์—์„œ์˜ Django

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜, API Gateway, service discovery, ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ , ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„, outbox ํŒจํ„ด, contract testing

24 ๋ฉด์ ‘ ์งˆ๋ฌธยท
Senior
1

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ ๋ชจ๋†€๋ฆฌ์‹ Django ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฌ๋Ÿฌ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ์ฃผ์š” ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ต๋ณ€

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌํ•˜๋ฉด ๊ฐ ์„œ๋น„์Šค๋ฅผ ๊ณ ์œ ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋ณต์ œํ•  ์ˆ˜ ์žˆ์–ด ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํŒ€์€ ๋…๋ฆฝ์ ์ธ ๋ฐฐํฌ ์ฃผ๊ธฐ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค์—์„œ ์ž์œจ์ ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2

Django๋ฅผ ์‚ฌ์šฉํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ API Gateway์˜ ์ฃผ์š” ์—ญํ• ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ต๋ณ€

API Gateway๋Š” ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์˜ ๋‹จ์ผ ์ง„์ž…์  ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์„ ์ ์ ˆํ•œ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…ํ•˜๊ณ , ์ค‘์•™ ์ง‘์ค‘์‹ ์ธ์ฆ๊ณผ rate limiting์„ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์˜ ์‘๋‹ต์„ ์ง‘๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ์จ ํด๋ผ์ด์–ธํŠธ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋‹จ์ˆœํ•ด์ง€๊ณ  ๊ฐœ๋ณ„ ์„œ๋น„์Šค๊ฐ€ ์ด๋Ÿฌํ•œ ํšก๋‹จ ๊ด€์‹ฌ์‚ฌ์—์„œ ํ•ด๋ฐฉ๋ฉ๋‹ˆ๋‹ค.

3

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ƒํƒœ๊ณ„์—์„œ service discovery๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ต๋ณ€

service discovery๋Š” ์„œ๋น„์Šค๊ฐ€ IP ์ฃผ์†Œ๋‚˜ ํฌํŠธ๋ฅผ ์‚ฌ์ „์— ์•Œ์ง€ ๋ชปํ•ด๋„ ๋™์ ์œผ๋กœ ์„œ๋กœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. Consul, Eureka, Kubernetes DNS์™€ ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค์˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ์ž์‹ ์„ ๋“ฑ๋กํ•˜๊ณ , ๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ ์ด๋ฅผ ์ž๋™์œผ๋กœ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ Django ์„œ๋น„์Šค ๊ฐ„ ๋™๊ธฐ ํ†ต์‹ ์— ๊ถŒ์žฅ๋˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

5

Django ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„ message broker(RabbitMQ, Kafka)๋ฅผ ํ†ตํ•œ ๋น„๋™๊ธฐ ํ†ต์‹ ์˜ ์ฃผ์š” ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

+21 ๋ฉด์ ‘ ์งˆ๋ฌธ

๊ธฐํƒ€ Django ๋ฉด์ ‘ ์ฃผ์ œ

Python ๊ธฐ์ดˆ

Junior
25๊ฐœ ์งˆ๋ฌธ

Python ๊ฐ์ฒด ์ง€ํ–ฅ

Junior
20๊ฐœ ์งˆ๋ฌธ

Django ๊ธฐ์ดˆ

Junior
20๊ฐœ ์งˆ๋ฌธ

Django Models - ๊ธฐ์ดˆ

Junior
22๊ฐœ ์งˆ๋ฌธ

Django ๋ทฐ

Junior
20๊ฐœ ์งˆ๋ฌธ

Django ํ…œํ”Œ๋ฆฟ

Junior
18๊ฐœ ์งˆ๋ฌธ

Django ํผ

Mid-Level
22๊ฐœ ์งˆ๋ฌธ

๊ณ ๊ธ‰ QuerySet

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

Django ์ธ์ฆ

Mid-Level
22๊ฐœ ์งˆ๋ฌธ

Django ๋ฏธ๋“ค์›จ์–ด

Mid-Level
18๊ฐœ ์งˆ๋ฌธ

Django Admin

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

Django REST Framework

Mid-Level
30๊ฐœ ์งˆ๋ฌธ

Django ์‹œ๊ทธ๋„

Mid-Level
18๊ฐœ ์งˆ๋ฌธ

ํŒŒ์ผ ์—…๋กœ๋“œ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

Django ์บ์‹ฑ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

Django ์„ธ์…˜

Mid-Level
18๊ฐœ ์งˆ๋ฌธ

Django ์ด๋ฉ”์ผ

Mid-Level
18๊ฐœ ์งˆ๋ฌธ

Django ํ…Œ์ŠคํŠธ

Mid-Level
22๊ฐœ ์งˆ๋ฌธ

Django ๋ณด์•ˆ

Mid-Level
22๊ฐœ ์งˆ๋ฌธ

Django ๋ฐฐํฌ

Mid-Level
24๊ฐœ ์งˆ๋ฌธ

Django ORM ๊ณ ๊ธ‰

Senior
28๊ฐœ ์งˆ๋ฌธ

Django ์„ฑ๋Šฅ

Senior
24๊ฐœ ์งˆ๋ฌธ

Django & Celery

Senior
22๊ฐœ ์งˆ๋ฌธ

Django Channels

Senior
24๊ฐœ ์งˆ๋ฌธ

Django & GraphQL

Senior
24๊ฐœ ์งˆ๋ฌธ

Django & Docker

Senior
20๊ฐœ ์งˆ๋ฌธ

์‚ฌ์šฉ์ž ์ •์˜ Django ๋ช…๋ น์–ด

Senior
18๊ฐœ ์งˆ๋ฌธ

Django ๊ตญ์ œํ™”

Senior
20๊ฐœ ์งˆ๋ฌธ

Django ๋””์ž์ธ ํŒจํ„ด

Senior
24๊ฐœ ์งˆ๋ฌธ

Django Async ๋ฐ ASGI

Senior
26๊ฐœ ์งˆ๋ฌธ

Settings ๋ฐ ํ”„๋กœ๋•์…˜ ๊ตฌ์„ฑ

Senior
22๊ฐœ ์งˆ๋ฌธ

๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง

Senior
24๊ฐœ ์งˆ๋ฌธ

๋‹ค์Œ ๋ฉด์ ‘์„ ์œ„ํ•ด Django์„ ๋งˆ์Šคํ„ฐํ•˜์„ธ์š”

๋ชจ๋“  ์งˆ๋ฌธ, flashcards, ๊ธฐ์ˆ  ํ…Œ์ŠคํŠธ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์—ฐ์Šต, ๋ฉด์ ‘ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ์ ‘๊ทผํ•˜์„ธ์š”.

๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ