์ €๋Š” ์‚ฌ์šฉ์ž์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ”„๋กœ๋•ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ œ์ž‘ํ•œ ํ”„๋กœ๋•ํŠธ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ์„ ๋ณด๋ฉฐ ์„ฑ์ทจ๊ฐ์„ ๋Š๋‚๋‹ˆ๋‹ค.

GitHub LinkedIn Velog


ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜

ํ•™์ƒํšŒ ๊ธฐ๋Šฅ๋ถ€

2022.03 ~ ํ˜„์žฌ

Untitled

ํ•œ์›€ - ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ

2022. 4 ~ 2022. 10

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

ํ•œ์›€์€ ํ•œ์„ธ์‚ฌ์ด๋ฒ„๋ณด์•ˆ๊ณ ๋“ฑํ•™๊ต ๊ต๋‚ด ํ†ตํ•ฉ ์ธํŠธ๋ผ๋„ท ์•ฑ์ž…๋‹ˆ๋‹ค.

๊ธ‰์‹ / ์‹œ๊ฐ„ํ‘œ / ํ•™์‚ฌ์ผ์ • ์ •๋ณด๋ถ€ํ„ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ, ํ•™์ƒํšŒ ์—…๋ฌด๊นŒ์ง€ ๊ต๋‚ด ๋ชจ๋“  ์ •๋ณด๊ฐ€ ํ•˜๋‚˜์˜ ์•ฑ์œผ๋กœ ํ†ตํ•˜๊ฒŒ ๋งŒ๋“ค์ž๋Š” ๋ชฉ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ์•ฑ์ž…๋‹ˆ๋‹ค.

์ˆ˜ํ–‰ํ•œ ์—ญํ• 

์‚ฌ์šฉ๊ธฐ์ˆ 

๊ฐœ๋ฐœ: Python, FastAPI, TypeScript, Nest.js, MySQL, SQLAlchemy, Prisma, Redis ์ธํ”„๋ผ: gRPC, Docker Compose (Kubernetes ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘)

https://github.com/hansei-hanum


2023 ํ•œ์„ธํ†ค

2023.07

wetogether.png

โ€˜์šฐ๋ฆฌ, ๊ฐ™์ดโ€™ - ๊ธฐํš ๋ฐ ๋””์ž์ธ

2023.07

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

โ€˜์šฐ๋ฆฌ, ํ•จ๊ป˜โ€™๋Š” ๋‚ด ์ฃผ๋ณ€ ๋™๋„ค์—์„œ ํ•จ๊ป˜ ์—ฌ๊ฐ€ ์ƒํ™œ์„ ํ•  ์‚ฌ๋žŒ์„ ์ฐพ๊ณ , ํ™œ๋™ ์ง„ํ–‰ ๊ณผ์ •๊นŒ์ง€ ๊ด€๋ฆฌํ•ด ์ฃผ๋Š” โ€˜๋™๋„ค ์—ฌ๊ฐ€ ์ƒํ™œ ํ”Œ๋žซํผโ€™ ์ž…๋‹ˆ๋‹ค.

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋กœ 2023 ๊ต๋‚ด ํ•ด์ปคํ†ค์—์„œ ์ตœ์šฐ์ˆ˜์ƒ (2์œ„)๋ฅผ ์ˆ˜์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ˆ˜ํ–‰ํ•œ ์—ญํ• 

https://github.com/hanseithonkk


๊ธฐ์ˆ  ์Šคํƒ

์–ธ์–ด

Untitled

Python

์ œ๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

์›น ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ๋ถ€ํ„ฐ ํฌ๋กค๋Ÿฌ / ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ฐœ๋ฐœ๊นŒ์ง€ ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ๊ธ‰ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ๋Œ€๋ถ€๋ถ„ ์ดํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ชจ๋ฅด๋Š” ๋ฌธ๋ฒ•์„ ๋ณด๋”๋ผ๋„ ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šธ ์ž์‹ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ts.png

TypeScript

์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

React.js ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๋ณด์กฐ, Nest.js๋กœ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ณด์กฐ๋ฅผ ๊ฒฝํ—˜ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋ฌธ๋ฒ•์„ ์ดํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ณ ๊ธ‰ ๋ฌธ๋ฒ•์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ

favicon.png

FastAPI

Python์—์„œ ๋น ๋ฅธ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

์ˆ˜ํ–‰ํ•ด๋ณธ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ–ˆ๋˜ ๋ฒ”์œ„์˜ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

mysql.png

MySQL

์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ, ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์ด ์—†์œผ๋ฉด ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” DBMS์ž…๋‹ˆ๋‹ค.

SQLAlchemy ORM์„ ํ†ตํ•ด Python๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ธํ”„๋ผ

919853 (1).png

Docker

์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

Python๋ถ€ํ„ฐ Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊นŒ์ง€ Docker๋ฅผ ์‚ฌ์šฉํ•ด ์ปจํ…Œ์ด๋„ˆํ™”๋ฅผ ํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Dockerfile ์ž‘์„ฑ๋ถ€ํ„ฐ Docker Compose ๊ตฌ์„ฑ ํŒŒ์ผ ์ž‘์„ฑ๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

kubernetes-icon-2048x1995-r1q3f8n7.png

Kubernetes

๋Œ€๊ทœ๋ชจ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์šด์˜ํ•ด ๋ณธ ๊ฒฝํ—˜์€ ์—†์ง€๋งŒ, ๊ฐœ์ธ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

Nginx Ingress Controller + MetalLB + Cert Manager๋ฅผ ์‚ฌ์šฉํ•ด ๊ธฐ๋ณธ์ ์ธ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ , GitHub Actions + ArgoCD๋ฅผ ์‚ฌ์šฉํ•ด CI / CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.