Skip to content
@Say-Cheeeese

Say-Cheeeese

๐Ÿง€ ์น˜์ด์ด์ฆˆ : ๋”ฑ 7์ผ๋งŒ ์—ด๋ฆฌ๋Š” ํŠน๋ณ„ํ•œ ๊ณต์œ  ์•จ๋ฒ” ์„œ๋น„์Šค

๐Ÿ”— ์„œ๋น„์Šค ๋งํฌ: https://say-cheese.me

์›น ์ธ๋„ค์ผ

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Members

๊น€๊ทœํƒœ ๊น€๊ฑด์šฐ ์šฐ๋‹คํ˜„ ์ฃผ์ •๋นˆ
frontend frontend backend backend

๐Ÿ“œ API ๋ช…์„ธ์„œ

[Swagger] ๐Ÿง€ ์น˜์ด์ด์ฆˆ API ๋ช…์„ธ์„œ

๐Ÿ—ƒ๏ธ ERD

Cheeeese (2)

๐Ÿ›๏ธ System Architecture

image

๐Ÿš€ Frontend Tech Stack

๊ธฐ์ˆ  ์Šคํƒ ์„ค๋ช…
Next.js 15 (App Router) - SSRยทSSG ์ง€์›์œผ๋กœ ์ดˆ๊ธฐ ๋กœ๋”ฉ ๋ฐ SEO ์ตœ์ ํ™”
- ์ด๋ฏธ์ง€ยทํฐํŠธ ์ตœ์ ํ™” ๋“ฑ ๋‚ด์žฅ ๊ธฐ๋Šฅ์œผ๋กœ ๊ณ ์„ฑ๋Šฅ ์›น ๊ตฌ์ถ•
TypeScript - ์ •์  ํƒ€์ž… ์‹œ์Šคํ…œ์œผ๋กœ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜ ์‚ฌ์ „ ๋ฐฉ์ง€
Tailwind CSS - Token Studio ๊ธฐ๋ฐ˜ ๋””์ž์ธ ํ† ํฐ โ†’ Tailwind ๋ณ€ํ™˜
- ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๋น ๋ฅธ UI ๊ฐœ๋ฐœ, ์ตœ์†Œ CSS ๋ฒˆ๋“ค
ShadCn UI - WA ์ ‘๊ทผ์„ฑ ํ‘œ์ค€ ์ค€์ˆ˜
- ์ฝ”๋“œ ์ง์ ‘ ์†Œ์œ  โ†’ ์™„์ „ํ•œ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ
- ๊ฒ€์ฆ๋œ UI ํŒจํ„ด์œผ๋กœ ๊ฐœ๋ฐœ ์‹œ๊ฐ„ ์ ˆ์•ฝ
Zustand - ๊ฐ„๊ฒฐํ•œ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ
- ์—…๋กœ๋“œ ๋Œ€๊ธฐ์—ดยท๋‹ค์ค‘ ์„ ํƒ ๋“ฑ ๋ณต์žก ์ƒํƒœ๋„ ์ง๊ด€์ ์œผ๋กœ ๊ด€๋ฆฌ
Tanstack Query (React Query) - ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ ์บ์‹ฑยท๋™๊ธฐํ™” ์ตœ์ ํ™”
- ๋ฌดํ•œ ์Šคํฌ๋กค ๋“ฑ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๊ฐ•ํ™” ๊ธฐ๋Šฅ ์ œ๊ณต
Github Actions - PR ํ…Œ์ŠคํŠธ/๋ฆฐํŒ… ์ž๋™ํ™”๋กœ ํ’ˆ์งˆ ๊ด€๋ฆฌ
- ๋นŒ๋“œโ†’๋ฐฐํฌ๊นŒ์ง€ ์ž๋™ํ™”๋œ CI/CD ๊ตฌ์ถ•
Lucide React - SVG ๊ธฐ๋ฐ˜์˜ ๊ฐ€๋ณ๊ณ  ์ผ๊ด€๋œ ์•„์ด์ฝ˜ ์ œ๊ณต
Framer Motion - ๋ถ€๋“œ๋Ÿฌ์šด ์•ฑ ์ˆ˜์ค€์˜ ์ธํ„ฐ๋ž™์…˜ ๊ตฌํ˜„
- ์„ ์–ธ์  ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ์ง๊ด€์ ์ธ UI ๋™์ž‘ ๊ฐœ๋ฐœ
Vitest - Vite ๊ธฐ๋ฐ˜ ์ดˆ๊ณ ์† ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ
- ๋ฆฌํŒฉํ† ๋ง ์‹œ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์ œ๊ณต

๐Ÿ›  Backend Tech Stack

๊ธฐ์ˆ  ์Šคํƒ ์„ค๋ช…
Spring Boot 3.5.6 + Java 21 - ์ตœ์‹  LTS๋กœ ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๋Šฅ ๊ฐ•ํ™”
- GC ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐ ๋†’์€ ์ƒ์‚ฐ์„ฑ์œผ๋กœ ์œ ์ง€๋ณด์ˆ˜์„ฑ ๊ทน๋Œ€ํ™”
Redis - ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ์ดˆ๊ณ ์† ์กฐํšŒ ์„ฑ๋Šฅ
- Cache-Aside๋กœ ์•จ๋ฒ”/์‚ฌ์ง„ ๋ฐ์ดํ„ฐ ์กฐํšŒ ์ตœ์ ํ™”
- ZSET ๊ธฐ๋ฐ˜ ๋งŒ๋ฃŒ ์Šค์ผ€์ค„๋Ÿฌ๋กœ ์ผ๊ด€์„ฑ ๋ณด์žฅ
MySQL - ์•ˆ์ •์„ฑ๊ณผ ๋ณต๊ตฌ๋ ฅ์ด ๊ฒ€์ฆ๋œ RDBMS
- ํŠธ๋žœ์žญ์…˜ ๊ธฐ๋ฐ˜ ์ผ๊ด€์„ฑ ํ™•๋ณด
- ๊ตฌ์กฐํ™”๋œ ์Šคํ‚ค๋งˆ ์„ค๊ณ„์— ์ ํ•ฉ
JPA - ORM ๊ธฐ๋ฐ˜์œผ๋กœ SQL ๋ฐ˜๋ณต ์ž‘์„ฑ ๋ถ€๋‹ด ์ œ๊ฑฐ
- ๋„๋ฉ”์ธ ๋ชจ๋ธ ์ค‘์‹ฌ ์„ค๊ณ„์™€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฒฐํ•ฉ
- ์ƒ์‚ฐ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ
Python + Pillow (PIL) - Cloud Functions - ์ด๋ฏธ์ง€ ํšŒ์ „/๋ฆฌ์‚ฌ์ด์ง•/WebP ๋ณ€ํ™˜ ๋“ฑ ์ตœ์ ํ™”
- Node ๋Œ€๋น„ ๋นŒ๋“œ ์˜์กด์„ฑ ๋ฌธ์ œ ๊ฐ์†Œ
- ์ธ๋„ค์ผ/4cut ์ƒ์„ฑ ๋“ฑ ์„œ๋ฒ„ ๋ถ€ํ•˜ ์™„์ „ ๋ถ„๋ฆฌ
Naver Cloud Platform (NCP) - Object Storage ยท Cloud Functions ยท CDN ยท VPC ์ž์—ฐ์Šค๋Ÿฌ์šด ํ†ตํ•ฉ
- ๊ตญ๋‚ด ํŠธ๋ž˜ํ”ฝ์— ์ตœ์ ํ™”๋œ ๋‚ฎ์€ ๋ ˆ์ดํ„ด์‹œ
- ๋น„์šฉยท์šด์˜ ํšจ์œจ ๋ชจ๋‘ ์šฐ์ˆ˜
Object Storage + CDN - Presigned URL ๊ธฐ๋ฐ˜์œผ๋กœ ์—…๋กœ๋“œยท๋‹ค์šด๋กœ๋“œ ์ฒ˜๋ฆฌ
โ†’ ์„œ๋ฒ„๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์•„ ํŠธ๋ž˜ํ”ฝ ๋ถ€๋‹ด 0
- CDN์ด ์ด๋ฏธ์ง€ ์„œ๋น™ ๋Œ€๋ถ€๋ถ„ ๋‹ด๋‹น
โ†’ ๊ธ€๋กœ๋ฒŒ ์ง€์—ญ์—์„œ๋„ ๋น ๋ฅธ ์กฐํšŒ
Github Actions + Docker (CI/CD) - ๋นŒ๋“œ โ†’ ํ…Œ์ŠคํŠธ โ†’ ์ด๋ฏธ์ง€ ์ƒ์„ฑ โ†’ ๋ฐฐํฌ ์ž๋™ํ™”
- Docker๋กœ ํ™˜๊ฒฝ ์ผ๊ด€์„ฑ ํ™•๋ณด
- Blue-Green ๋ฐฉ์‹์œผ๋กœ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์‹คํ˜„
PLG (Promtail / Loki / Grafana) + Prometheus - ๋กœ๊ทธ(Loki) + ๋ฉ”ํŠธ๋ฆญ(Prometheus) + ์‹œ๊ฐํ™”(Grafana)๋กœ ์™„์ „ํ•œ Observability ๊ตฌ์ถ•
- ์žฅ์•  ์›์ธ ์ถ”์  ๋ฐ ์šด์˜ ํšจ์œจ ๊ทน๋Œ€ํ™”

Pinned Loading

  1. FE FE Public

    ๐Ÿง€ ์น˜์ด์ด์ฆˆ : ๋”ฑ 7์ผ๋งŒ ์—ด๋ฆฌ๋Š” ํŠน๋ณ„ํ•œ ๊ณต์œ  ์•จ๋ฒ” ์„œ๋น„์Šค

    TypeScript 1

  2. BE BE Public

    ๐Ÿง€ ์น˜์ด์ด์ฆˆ : ๋”ฑ 7์ผ๋งŒ ์—ด๋ฆฌ๋Š” ํŠน๋ณ„ํ•œ ๊ณต์œ  ์•จ๋ฒ” ์„œ๋น„์Šค

    Java

Repositories

Showing 3 of 3 repositories

Top languages

Loadingโ€ฆ

Most used topics

Loadingโ€ฆ