Skip to content

Latest commit

ย 

History

1,180 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Solepli Frontend

React TypeScript Vite TailwindCSS Google Cloud


sole + place/play + list, ํ˜ผ๋†€๋Ÿฌ๋ฅผ ์œ„ํ•œ ์žฅ์†Œ ์ถ”์ฒœ ๋ฐ ํ๋ ˆ์ด์…˜ ์„œ๋น„์Šค Solepli


image

๐Ÿ“‹ ๋ชฉ์ฐจ


๐Ÿ“– ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

Important

Solepli(์ ํ”Œ๋ฆฌ)๋Š” 'ํ˜ผ๋†€๋Ÿฌ'๊ฐ€ ํ˜ผ์ž ๋ฐฉ๋ฌธํ•˜๊ธฐ ์ข‹์€ ์žฅ์†Œ๋ฅผ ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ์žฅ์†Œ ์ถ”์ฒœ ๋ฐ ํ๋ ˆ์ด์…˜ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

2-30๋Œ€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ˜ผ์ž ์‹œ๊ฐ„์„ ์ฆ๊ธฐ๋Š” ํ™œ๋™์ด ์ผ์ƒํ™”๋˜๊ณ  ์žˆ์ง€๋งŒ, ๊ธฐ์กด ์ง€๋„ ์„œ๋น„์Šค๋Š” '1์ธ ์ด์šฉ์ž'๋ผ๋Š” ์ƒํ™ฉ์„ ์ถฉ๋ถ„ํžˆ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„ ํ˜ผ์ž ๋ฐฉ๋ฌธํ•˜๊ธฐ ์ข‹์€ ๊ณณ์ธ์ง€ ํŒ๋‹จํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋ฌธ์ œ์—์„œ ์ถœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๋Š” ์žฅ์†Œ๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž์‹ ์˜ ๊ฒฝํ—˜์„ ๊ธ€๊ณผ ์‚ฌ์ง„์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚˜๋งŒ์˜ ํ˜ผ๋†€ ์ฝ”์Šค๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ์ฝ”์Šค๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



๐Ÿ‘ค ํŒ€์›

sky121016
ํ™์ˆ˜๋ฏผ
Frontend Leader
์–‘ํฌ์ •
์–‘ํฌ์ •
Frontend Dev
์ดํƒœํ˜ธ
์ดํƒœํ˜ธ
Frontend Dev


๐Ÿ’ก ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ—‚๏ธ Sollect - ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๊ธฐ๋ฐ˜์˜ ํ๋ ˆ์ด์…˜ ์ปค๋ฎค๋‹ˆํ‹ฐ

  • ์ง€์—ญยท์žฅ์†Œยท์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ์ ๋ ‰ํŠธ(ํ๋ ˆ์ด์…˜ ๊ฒŒ์‹œ๋ฌผ)๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์—ด๋žŒ
  • ๋‹ค๋…€์˜จ ์žฅ์†Œ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์„ ๊ธ€๊ณผ ์‚ฌ์ง„์œผ๋กœ ๊ธฐ๋ก
  • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์ ๋ ‰ํŠธ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜, ์ ๋ ‰ํŠธ ์† ์žฅ์†Œ๋“ค์„ ์ ๋ฃจํŠธ๋กœ ํ•œ ๋ฒˆ์— ์ €์žฅ

๐Ÿ—บ๏ธ Solmap - ํ˜ผ์ž ๋ฐฉ๋ฌธํ•˜๊ธฐ ์ข‹์€ ์žฅ์†Œ๋งŒ ๋‹ด์€ ๋งž์ถคํ˜• ์ง€๋„

  • ๋„ค์ด๋ฒ„ ์ง€๋„ API ๊ธฐ๋ฐ˜ ์ปค์Šคํ…€ ๋งˆ์ปค ๋ Œ๋”๋ง ๋ฐ ์นดํ…Œ๊ณ ๋ฆฌ ํƒ์ƒ‰
  • 1์ธ ๋ฐฉ๋ฌธ์ž ๋ฆฌ๋ทฐ ๊ธฐ๋ฐ˜์˜ ๋ถ„์œ„๊ธฐยท1์ธ ์ด์šฉ ํƒœ๊ทธ๋กœ ์žฅ์†Œ ์ •๋ณด ์š”์•ฝ ์ œ๊ณต
  • ํ‚ค์›Œ๋“œ/์ง€์—ญ ๊ฒ€์ƒ‰, ํ˜„์žฌ ์œ„์น˜ ๊ธฐ๋ฐ˜ ์ฃผ๋ณ€ ์žฅ์†Œ ์ถ”์ฒœ

๐Ÿงญ Solroute - ๋‚˜๋งŒ์˜ ํ˜ผ๋†€ ์ฝ”์Šค ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ ๋ฐ ์กฐํšŒ

  • ์ ๋งตยท์ ๋ ‰ํŠธ์—์„œ ๋ชจ์€ ์žฅ์†Œ๋กœ ๋‚˜๋งŒ์˜ ํ˜ผ๋†€ ์ฝ”์Šค ์ƒ์„ฑ
  • ์žฅ์†Œ ์ถ”๊ฐ€ ์‹œ ๋™์„ ์„ ์ง€๋„์— ์‹ค์‹œ๊ฐ„ ์‹œ๊ฐํ™”, ์žฅ์†Œ๋ณ„ ๋ฉ”๋ชจ ์ž‘์„ฑ
  • ์ถ”๊ฐ€ํ•œ ์žฅ์†Œ ๊ทผ์ฒ˜์˜ ์ธ๊ธฐ ์žฅ์†Œ ์ถ”์ฒœ

โค๏ธ Solmark - ์ €์žฅํ•œ ์ ๋ ‰ํŠธ ๋ฐ ์žฅ์†Œ ๋ชจ์•„๋ณด๊ธฐ

  • ์ €์žฅํ•œ ์žฅ์†Œยท์ ๋ ‰ํŠธยท์ž‘์„ฑํ•œ ์ ๋ ‰ํŠธ๋ฅผ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌ
  • ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ €์žฅ ํ•ญ๋ชฉ์„ ํด๋”์ฒ˜๋Ÿผ ๊ทธ๋ฃนํ™”


๐Ÿ–ฅ๏ธ ํ™”๋ฉด UI

ํ˜ผ์ž ๋ฐฉ๋ฌธํ•˜๊ธฐ ์ข‹์€ ์žฅ์†Œ๋ฅผ ํƒ์ƒ‰ยท๊ธฐ๋กยท๊ณต์œ ํ•˜๋Š” ์ ํ”Œ๋ฆฌ์˜ ํ•ต์‹ฌ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค.

Sollect

SOLLECT_HOME SOLLECT_WRITE SOLLECT_DETAIL
image image image

Solmap

SOLMAP_HOME & SOLMAP_SEARCH SOLMAP_DETAIL SOLMAP_REVIEW
image image image

Solroute

SOLROUTE_LIST & SOLROUTE_DETAIL SOLROUTE_CREATE
image image

Solmark & Profile

SOLMARK_HOME PROFILE
image image


โš™๏ธ ๊ธฐ์ˆ  ์Šคํƒ & ์•„ํ‚คํ…์ฒ˜

๐Ÿ“ฆ ๊ธฐ์ˆ  ์Šคํƒ

Tip

Vite ๊ธฐ๋ฐ˜์˜ ๊ฐ€๋ฒผ์šด ๋นŒ๋“œ ํ™˜๊ฒฝ ์œ„์—์„œ, Zustand์™€ React Query๋กœ ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ๋ถ„๋ฆฌํ•ด ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

โšก Framework & Language

  • Vite: ๋น ๋ฅธ HMR๊ณผ ๋นŒ๋“œ ์†๋„๋ฅผ ์œ„ํ•œ ๋ฒˆ๋“ค๋Ÿฌ
  • React 19 / TypeScript: ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ UI ๋ฐ ํƒ€์ž… ์•ˆ์ •์„ฑ ํ™•๋ณด

๐ŸŽจ Styling & State

  • Tailwind CSS v4: ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์˜ ๋น ๋ฅธ ์Šคํƒ€์ผ๋ง
  • Zustand: ๋งˆ์ปค, ๊ฒ€์ƒ‰, ๋ฐ”ํ…€์‹œํŠธ ๋“ฑ ๋„๋ฉ”์ธ๋ณ„ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ ๊ด€๋ฆฌ
  • React Query: ์„œ๋ฒ„ ์ƒํƒœ ์บ์‹ฑ ๋ฐ API ์—ฐ๋™ (@tanstack/react-query)
  • Axios: API ํ†ต์‹  ํด๋ผ์ด์–ธํŠธ

๐Ÿ—บ๏ธ Map & ๊ธฐํƒ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • Naver Maps API: ์ง€๋„ ๋ Œ๋”๋ง, ์ปค์Šคํ…€ ๋งˆ์ปค, bounds/zoom ์ œ์–ด
  • @hello-pangea/dnd: ์ ๋ฃจํŠธ ์žฅ์†Œ ์ˆœ์„œ ๋ณ€๊ฒฝ ๋“œ๋ž˜๊ทธ์•ค๋“œ๋กญ
  • yet-another-react-lightbox: ์ด๋ฏธ์ง€ ๋ผ์ดํŠธ๋ฐ•์Šค
  • react-router-dom: ํด๋ผ์ด์–ธํŠธ ๋ผ์šฐํŒ…

๐Ÿ› ๏ธ Code Quality & Tools

  • ESLint & Prettier: ์ฝ”๋“œ ํ’ˆ์งˆ ์œ ์ง€ ๋ฐ ํŒ€ ์ปจ๋ฒค์…˜ ์ž๋™ ์ ์šฉ
  • vite-plugin-svgr: SVG๋ฅผ React ์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ด€๋ฆฌ

๐Ÿ“ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

src
โ”œโ”€โ”€ api          # ๋„๋ฉ”์ธ๋ณ„ API ๋ชจ๋“ˆ (mapApi, placeApi, reviewApi, solrouteApi ...)
โ”œโ”€โ”€ auth         # ์ธ์ฆ ๊ด€๋ จ ๋กœ์ง
โ”œโ”€โ”€ components   # ๊ณตํ†ต/๋„๋ฉ”์ธ ์ปดํฌ๋„ŒํŠธ
โ”œโ”€โ”€ hooks        # ์ปค์Šคํ…€ ํ›…
โ”œโ”€โ”€ layout       # ๋ ˆ์ด์•„์›ƒ ์ปดํฌ๋„ŒํŠธ
โ”œโ”€โ”€ pages        # ๋ผ์šฐํŠธ ๋‹จ์œ„ ํŽ˜์ด์ง€ (Solmap, SollectPage, SolmarkPage ...)
โ”œโ”€โ”€ routes       # ๋ผ์šฐํ„ฐ ์„ค์ • ๋ฐ ์ธ์ฆ ๊ฐ€๋“œ
โ”œโ”€โ”€ store        # Zustand ์Šคํ† ์–ด (mapStore, markerStore, searchStore ...)
โ””โ”€โ”€ utils        # ์œ ํ‹ธ ํ•จ์ˆ˜

๐Ÿ—๏ธ System Architecture (Front-end)

Naver Cloud Map API์™€ ํ†ต์‹ ํ•˜๋Š” React + TypeScript ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ GitHub Actions๋กœ ๋นŒ๋“œํ•ด Docker ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ณ , Google Cloud Platform(Workload Identity Federation ๊ธฐ๋ฐ˜ ์ธ์ฆ)์˜ Cloud Run์— ๋ฐฐํฌํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

2026-06-30_16-11-43
  • CI/CD: GitHub Actions๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ด Artifact Registry์— Push, Cloud Run์œผ๋กœ ๋ฐฐํฌ
  • ์ธ์ฆ: Workload Identity Federation์„ ํ†ตํ•ด ๋ณ„๋„์˜ ํ‚ค ํŒŒ์ผ ์—†์ด GitHub Actions์—์„œ GCP ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ
  • ๋ฐฐํฌ ๋ฆฌ์ „: asia-northeast3


๐Ÿงช QA & UT

์„œ๋น„์Šค ์ •์‹ ๋ฐฐํฌ ์ „, ๊ธฐ๋Šฅ๋ณ„ QA ์ ๊ฒ€ํ‘œ์™€ ํ•จ๊ป˜ ์‹ค์ œ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•œ UT(User Test)๋ฅผ ์ง„ํ–‰ํ•ด ํ™”๋ฉด๋ณ„ ๊ฐœ์„ ์‚ฌํ•ญ์„ ๋„์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

  • Sollect: ์ ๋ ‰ํŠธ ๊ฐ€๋กœ ์Šคํฌ๋กค ์‹œ ํด๋ฆญ๋˜๋Š” ๋“ฏํ•œ ๋ชจ์…˜ ๊ฐœ์„ , ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ธ๋„ค์ผ๊ณผ ์ฃผ์†Œ ๋งค์นญ ์˜ค๋ฅ˜ ์ˆ˜์ • ๋“ฑ
  • Solmap: ์ง€๋„ ์ด๋™ ์‹œ '์ด ์ง€์—ญ์—์„œ ๊ฒ€์ƒ‰' ๋ฒ„ํŠผ ๊ฐ€์‹œ์„ฑ ๊ฐœ์„ , ๋ฐ”ํ…€์‹œํŠธ ์Šคํฌ๋กค ์ค‘ ์ง€๋„ ์ƒˆ๋กœ๊ณ ์นจ ๋ฐฉ์ง€, ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์—†์Œ ์‹œ ์ถ”์ฒœ ์žฅ์†Œ ๋…ธ์ถœ ์ˆ˜์ •, ์ฃผ์š” ์•„์ด์ฝ˜ ํฌ๊ธฐ ํ™•๋Œ€ ๋“ฑ
  • Solroute / Profile: ํ™”๋ฉด๋ณ„ ์šฐ์„ ์ˆœ์œ„ยท๊ฐœ๋ฐœ ๋‚œ์ด๋„๋ฅผ ํ•จ๊ป˜ ๊ธฐ๋กํ•ด ๋ฐฑ๋กœ๊ทธ๋กœ ๊ด€๋ฆฌ

๋ฐœ๊ฒฌ๋œ ๋ฌธ์ œ๋Š” ์šฐ์„ ์ˆœ์œ„์™€ ๊ฐœ๋ฐœ ๋‚œ์ด๋„๋ฅผ ํ•จ๊ป˜ ๊ธฐ๋กํ•ด ๋ฐฑ๋กœ๊ทธ๋กœ ๊ด€๋ฆฌํ–ˆ์œผ๋ฉฐ, ์ด๋Š” ์ถ”ํ›„ ๊ฐœ์„  ์ž‘์—…์˜ ๊ธฐ์ค€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.



โญ ์„ค์น˜ ๋ฐ ์‹คํ–‰

๐Ÿ“‹ ํ•„์ˆ˜ ํ™˜๊ฒฝ

Warning

ํ”„๋กœ์ ํŠธ ์‹คํ–‰ ์ „์— ๋ฐ˜๋“œ์‹œ ์•„๋ž˜ ํ™˜๊ฒฝ์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

  • Node.js 18 ์ด์ƒ
  • npm
# ํ™˜๊ฒฝ ํ™•์ธ
node -v
npm -v

๐Ÿ’พ ์„ค์น˜ ๊ณผ์ •

  1. Repository ํด๋ก 
git clone https://github.com/Solepli/Solepli-frontend.git
cd Solepli-frontend
  1. ์˜์กด์„ฑ ์„ค์น˜
npm install
  1. ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰
npm run dev

Note

๋„ค์ด๋ฒ„ ์ง€๋„ API ๋“ฑ ์™ธ๋ถ€ ์„œ๋น„์Šค ์—ฐ๋™์„ ์œ„ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜(.env) ์„ค์ •์ด ๋ณ„๋„๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“œ ๊ธฐํƒ€ ๋ช…๋ น์–ด

npm run build     # ํƒ€์ž… ์ฒดํฌ + ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ
npm run lint       # ESLint ๊ฒ€์‚ฌ
npm run preview    # ๋นŒ๋“œ ๊ฒฐ๊ณผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

2026-06-30_16-14-56

About

๐Ÿ“ ์ž‡ํƒ€ 7๊ธฐ ํ”„๋กœ์ ํŠธ Solepli์˜ Frontend ๋ ˆํฌ์ง€ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages