Skip to content
@ZupZup-2EZ

ZupZup-2EZ


๐Ÿƒโ€โ™€๏ธ ๋‚ด ์† ์•ˆ์˜ ํ”Œ๋กœ๊น… ์•ฑ : ์ค์ค ๐Ÿƒโ€โ™‚๏ธ

'๋‚˜' ์™€ 'ํ™˜๊ฒฝ' ๋ชจ๋‘๋ฅผ ์ƒ๊ฐํ•˜๋Š” ํ”Œ๋กœ๊น… ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๐ŸŒณ
ํ”Œ๋กœ๊น… ๊ธฐ๋ก์„ ๋ณด๋‹ค ๊ฐ„ํŽธํ•˜๊ฒŒ ์ž‘์„ฑํ•ด๋ณด์„ธ์š” ๐ŸŒŽ


โœˆ๏ธ ํ”„๋กœ์ ํŠธ ๊ฒฐ๊ณผ

๐Ÿ”— ER Diagram

๐Ÿ”— Figma


โฐ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

2023๋…„ 10์›” 10์ผ ~ 2023๋…„ 11์›” 17์ผ


๐Ÿ‘ฉโ€๐Ÿ’ป ๋ฉค๋ฒ„ ๊ตฌ์„ฑ

๋ฉค๋ฒ„
๊น€์ฃผํ˜„

๊น€์ˆ˜๋ฏผ

๋ฐ•์†Œ์œค

์„œ์›ํ˜ธ

์„œ์ง€์˜ค

์•ˆ ๋‚˜
์—ญํ•  ํŒ€์žฅ / BackEnd FrontEnd BackEnd FrontEnd BackEnd / Infra BackEnd

๐Ÿ“Œ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ“ ํ˜„์žฌ ์œ„์น˜๋ฅผ ํ™œ์šฉํ•œ ํ”Œ๋กœ๊น…

  • ๋ฉ”์ธํ™”๋ฉด์—์„œ ํ”Œ๋กœ๊น… ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๊ธฐ ๊ฐ€๋Šฅ
  • ์‚ฌ์šฉ์ž ์œ„์น˜ ์‹ค์‹œ๊ฐ„ ์กฐํšŒ
  • ์‹ค์‹œ๊ฐ„ ํ”Œ๋กœ๊น… ๊ฒฝ๋กœ, ํ”Œ๋กœ๊น… ์‹œ๊ฐ„, ๊ฑฐ๋ฆฌ, ์นผ๋กœ๋ฆฌ ํ™•์ธ ๊ฐ€๋Šฅ

๐Ÿ“… ์บ˜๋ฆฐ๋”๋ฅผ ํ™œ์šฉํ•œ ๊ธฐ๋ก ์กฐํšŒ

  • ์บ˜๋ฆฐ๋”๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ผ๋ณ„ ๊ธฐ๋ก ์กฐํšŒ ๊ฐ€๋Šฅ
  • ๊ฐ ํ”Œ๋กœ๊น… ๊ธฐ๋ก์˜ ๊ฑฐ๋ฆฌ, ์‹œ๊ฐ„, ์นผ๋กœ๋ฆฌ, ์ด๋™๊ฒฝ๋กœ ์กฐํšŒ ๊ฐ€๋Šฅ
  • ๊ฐ ์“ฐ๋ ˆ๊ธฐ๋ฅผ ํ†ตํ•ด ํš๋“ํ•œ ์ฝ”์ธ์„ ์ผ์ผ ๋ ˆํฌํŠธ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ

๐Ÿ—‘๏ธ ์“ฐ๋ ˆ๊ธฐํ†ต ์œ„์น˜ ์ •๋ณด ์ œ๊ณต

  • ์“ฐ๋ ˆ๊ธฐํ†ต ๊ณต๊ณต๋ฐ์ดํ„ฐ ํ™œ์šฉ
  • ์ผ๋ฐ˜์“ฐ๋ ˆ๊ธฐํ†ต๊ณผ ์žฌํ™œ์šฉ์“ฐ๋ ˆ๊ธฐํ†ต ๋ถ„๋ฆฌํ•˜์—ฌ ์ œ๊ณต
  • ์ง€๋„ ์ค‘์‹ฌ์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ 1km ์ด๋‚ด ์“ฐ๋ ˆ๊ธฐํ†ต ์กฐํšŒ

๐Ÿค– Trash.ai๋ฅผ ํ™œ์šฉํ•œ ์“ฐ๋ ˆ๊ธฐ ์ด๋ฏธ์ง€ ๋ถ„์„

  • ์“ฐ๋ ˆ๊ธฐ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ AI๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ฃผ์šด ์“ฐ๋ ˆ๊ธฐ ๊ฐ์ง€
  • 60์—ฌ๊ฐ€์ง€ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ 14๊ฐœ๋กœ ์žฌ๋ฒ”์ฃผํ™”ํ•˜์—ฌ ๊ฐ„๋žตํ™”
  • ์ธก์ •๋œ ์“ฐ๋ ˆ๊ธฐ ์ข…๋ฅ˜์˜ ํ™˜๊ฒฝ์˜ค์—ผ ์ฒ™๋„์— ๋”ฐ๋ผ ์ฝ”์ธ ํš๋“ ๊ฐ€๋Šฅ

๐Ÿง ๋‚˜๋งŒ์˜ ์บ๋ฆญํ„ฐ "ํŽญ๊น…" ํ‚ค์šฐ๊ธฐ

  • ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ํ”Œ๋กœ๊น… ํŽญ๊ท„ ์บ๋ฆญํ„ฐ ํ™•์ธ ๊ฐ€๋Šฅ
  • ํ”Œ๋กœ๊น… ๋„์ค‘ ์ฃผ์šด ์“ฐ๋ ˆ๊ธฐ๋ฅผ ํ†ตํ•ด ํš๋“ํ•œ ์ฝ”์ธ์œผ๋กœ ์ƒ์ ์—์„œ ์•„์ดํ…œ ๊ตฌ๋งคํ•˜์—ฌ ์บ๋ฆญํ„ฐ์—๊ฒŒ ์ œ๊ณต
  • ์•„์ดํ…œ ๊ตฌ๋งค์‹œ ์บ๋ฆญํ„ฐ์˜ exp ์ฆ๊ฐ€
  • ์ผ์ • exp ์ฆ๊ฐ€์‹œ ๋ ˆ๋ฒจ์—… ํ›„ ํŽญ๊ท„ ์บ๋ฆญํ„ฐ ์„ฑ์žฅ

๐Ÿ“‹ ๊ธฐ๋ก ๋ˆ„์  ๋ ˆํฌํŠธ ์ œ๊ณต

  • ๋ˆ„์  ๋ ˆํฌํŠธ ํ™”๋ฉด์„ ํ†ตํ•ด์„œ ์ง€๊ธˆ๊นŒ์ง€ ํ”Œ๋กœ๊น… ๋ˆ„์ ๊ธฐ๋ก ์กฐํšŒ
  • ์ด ํ”Œ๋กœ๊น… ํšŸ์ˆ˜, ํ”Œ๋กœ๊น…์‹œ๊ฐ„, ์ด ์†Œ๋ชจ ์นผ๋กœ๋ฆฌ, ๊ฐ ์“ฐ๋ ˆ๊ธฐ๋ณ„ ์ฃผ์šด ๊ฐœ์ˆ˜ ํ™•์ธ ๊ฐ€๋Šฅ

๐ŸŽฏ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ

  • ์ง๊ด€์ ์ด๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋””์ž์ธํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์ฐธ์—ฌ๋ฅผ ์œ ๋„
  • ๋ฆฌ์›Œ๋“œ ์‹œ์Šคํ…œ ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์„ ์ง€์†์ ์œผ๋กœ ์œ ๋„
  • ๋ผ์ดํŠธ ๋ชจ๋“œ, ๋‹คํฌ ๋ชจ๋“œ ์ง€์›
  • ํšŒ์›๊ฐ€์ž…์‹œ ํŠœํ† ๋ฆฌ์–ผ ์ง€์›
  • ์‚ฌ์šฉ์ž ์˜๊ฒฌ ์ž‘์„ฑ ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์˜๊ฒฌ ์ˆ˜๋ ด ๊ฐ€๋Šฅ
  • ์บ๋ฆญํ„ฐ ํ‚ค์šฐ๊ธฐ ์„ค๋ช… ํŽ˜์ด์ง€๋กœ ์‚ฌ์šฉ์„ค๋ช… ์ œ๊ณต

๐Ÿ–ฅ๏ธ ํ™”๋ฉด ์„ค๋ช…

๐Ÿ”ผ ์†Œ์…œ ๋กœ๊ทธ์ธ ๐Ÿ”ผ ๋ฉ”์ธ ํŽ˜์ด์ง€ ๐Ÿ”ผ ์‚ฌ์šฉ์ž ํ‚ค, ๋ชธ๋ฌด๊ฒŒ ์ •๋ณด ์ž…๋ ฅ ๐Ÿ”ผ ์‚ฌ์šฉ์ž ์ƒ๋…„์›”์ผ, ์„ฑ๋ณ„ ์ •๋ณด ์ž…๋ ฅ



๐Ÿ”ผ ํ”Œ๋กœ๊น… ์‹œ๊ฐ„, ๊ฑฐ๋ฆฌ, ์นผ๋กœ๋ฆฌ ์ธก์ • ๐Ÿ”ผ ํ”Œ๋กœ๊น… ์ด๋™๊ฒฝ๋กœ ๊ธฐ๋ก ๐Ÿ”ผ ์“ฐ๋ ˆ๊ธฐํ†ต ์กฐํšŒ ํ™”๋ฉด ๐Ÿ”ผ ์“ฐ๋ ˆ๊ธฐ ๋ถ„์„ ํ™”๋ฉด



๐Ÿ”ผ ํ”Œ๋กœ๊น… ๊ฒฐ๊ณผ ํ™”๋ฉด ๐Ÿ”ผ ํ”Œ๋กœ๊น… ๊ธฐ๋ก ์บ˜๋ฆฐ๋” ๐Ÿ”ผ ํ”Œ๋กœ๊น… ์ผ๋ณ„ ์กฐํšŒ ๐Ÿ”ผ ํ”Œ๋กœ๊น… ์ผ์ผ ๋ ˆํฌํŠธ



๐Ÿ”ผ ๋งˆ์ดํŽ˜์ด์ง€(๋ผ์ดํŠธ ๋ชจ๋“œ) ๐Ÿ”ผ ๋งˆ์ดํŽ˜์ด์ง€(๋‹คํฌ ๋ชจ๋“œ) ๐Ÿ”ผ ๋‹ค์Œ ๋ ˆ๋ฒจ ๐Ÿ”ผ ๋ˆ„์  ๋ ˆํฌํŠธ



๐Ÿ”ผ ์ƒ์  ๐Ÿ”ผ ์•„์ดํ…œ ๐Ÿ”ผ ์•„์ดํ…œ ๊ตฌ๋งค ๐Ÿ”ผ ์„ค์ •ํ™”๋ฉด



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

     ๐Ÿ›  Frontend Develop

TypeScript React Vite Redux TensorFlow

     ๐Ÿ›  Backend Develop
Java Spring Spring Gradle

     ๐Ÿ›  DataBase
MariaDB MongoDB Redis

     ๐Ÿ›  Infra
AWS Docker Jenkins Nginx Datadog

     ๐Ÿ›  SCM

Jira Notion Slack


๐Ÿ›๏ธ System Architecture

Architecture

๐Ÿ‘จโ€๐Ÿ’ป Structure

โœ Back-End

โ—ผ Package Structure

โ”œโ”€โ”€ board
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ controller
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ dto
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ request
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ BoardListRequest
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ response
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ BoardListResponse
โ”‚   โ”‚   โ””โ”€โ”€ BoardController 
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ service
โ”‚   โ”‚   โ””โ”€โ”€ BoardService
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ domain
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ repository
โ”‚   โ”‚	โ”œโ”€โ”€ BoardSpringDataRepository
โ”‚   โ”‚	โ””โ”€โ”€ BoardQueryRepository
โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ exception
โ”œโ”€โ”€ member
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ controller
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ application
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ persistence
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ domain
โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ exception
โ”œโ”€โ”€ Application

โœ Front-End

Directory structure

โ”œโ”€โ”€ public
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ””โ”€โ”€ web.config
โ”œโ”€โ”€ src
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ api
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ assets
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ images
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ font
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ router
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ hooks
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ pages
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ styles
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ utils
โ”‚   โ”œโ”€โ”€ vite-env.d.ts
โ”‚   โ”œโ”€โ”€ App.tsx
โ”‚   โ””โ”€โ”€ main.tsx
โ”œโ”€โ”€ .eslintrc.cjs
โ”‚โ”€โ”€ .gitignore
โ”œโ”€โ”€ .prettierrc
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ tsconfig.json
โ”œโ”€โ”€ tsconfig.node.json
โ”œโ”€โ”€ yarn.lock
โ””โ”€โ”€ vite.config.js

๐ŸŽŠ Git Commit Convention

๐Ÿ’ก Commit Type

  • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ํƒ€์ž…๊ณผ ์ œ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ณ , ํƒœ๊ทธ๋Š” ์˜์–ด๋กœ ์“ฐ๋˜ ์ฒซ ๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ํ•œ๋‹ค.
  • ํƒ€์ž…: ์ œ๋ชฉ ํ˜•ํƒœ์ด๋ฉฐ : ๋’ค์—๋งŒ space๊ฐ€ ์žˆ์Œ์— ์œ ์˜ํ•œ๋‹ค.
  • ํƒ€์ž…
    • feature: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
    • fix : ์˜ค๋ฅ˜ ์ˆ˜์ •
    • docs : ๋ฌธ์„œ ์ˆ˜์ •
    • style : ์ฝ”๋“œ ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ, ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ, ์ฃผ์„์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •
    • refactor : ์ฝ”๋“œ ๋ฆฌํŽ™ํ† ๋ง
    • test : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŽ™ํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
    • chore : ์œ„์— ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” ๊ธฐํƒ€ ๋ณ€๊ฒฝ์‚ฌํ•ญ(๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ •, assets image, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ • ๋“ฑ)
    • hotfix : ๊ธด๊ธ‰ ์ˆ˜์ • ์‚ฌํ•ญ
    • rename : ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช… ์ˆ˜์ •, ์˜ฎ๊ธฐ๊ธฐ
    • remove : ํŒŒ์ผ ์‚ญ์ œ

๐ŸŽƒ Git Flow ์ „๋žต (Branch)

๐Ÿ’ก git flow ๊ณผ์ •

  • master ๋ธŒ๋žœ์น˜์—์„œ develop ๋ธŒ๋žœ์น˜๋ฅผ ๋ถ„๊ธฐํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž๋“ค์€ develop ๋ธŒ๋žœ์น˜์— ์ž์œ ๋กญ๊ฒŒ ์ปค๋ฐ‹์„ ํ•ฉ๋‹ˆ๋‹ค. ๋„์•ˆ
  • ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์žˆ๋Š” ๊ฒฝ์šฐ develop ๋ธŒ๋žœ์น˜์—์„œ feature/{fe|be}-{#issue-number} ๋ธŒ๋žœ์น˜๋ฅผ ๋ถ„๊ธฐํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐฐํฌ ์ „ ํ…Œ์ŠคํŠธ๋Š” develop ๋ธŒ๋žœ์น˜์—์„œ ์ง„ํ–‰ํ•œ ํ›„ master์— mergeํ•ฉ๋‹ˆ๋‹ค.
    • master: ๊ธฐ์ค€์ด ๋˜๋Š” ๋ธŒ๋žœ์น˜๋กœ ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ธŒ๋žœ์น˜
    • develop: ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜๋กœ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด ๋ธŒ๋žœ์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ์ž ์ž‘์—…ํ•œ ๊ธฐ๋Šฅ๋“ค์„ Merge
    • feature: ๋‹จ์œ„ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜๋กœ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜๋ฉด develop ๋ธŒ๋žœ์น˜์— Merge

Popular repositories Loading

  1. ZupZup ZupZup Public

    "๋‚˜โ€™์™€ โ€˜ํ™˜๊ฒฝโ€™ ๋ชจ๋‘๋ฅผ ์ƒ๊ฐํ•˜๋Š” ํ”Œ๋กœ๊น… ๊ธฐ๋ก ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

    Jupyter Notebook 5

  2. .github .github Public

Repositories

Showing 2 of 2 repositories
  • ZupZup Public

    "๋‚˜โ€™์™€ โ€˜ํ™˜๊ฒฝโ€™ ๋ชจ๋‘๋ฅผ ์ƒ๊ฐํ•˜๋Š” ํ”Œ๋กœ๊น… ๊ธฐ๋ก ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

    Jupyter Notebook 0 5 0 0 Updated Mar 20, 2025
  • .github Public
    0 0 0 0 Updated Nov 25, 2024