/BID

๐Ÿ› ๋ผ์ด๋ธŒ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ํ™œ์šฉํ•œ ๊ฐœ์ธ ๊ฒฝ๋งค ํ”Œ๋žซํผ

Primary LanguageTypeScript


SSAFY MATE

์‰ฝ๊ณ  ํ•ฉ๋ฆฌ์  ๊ฑฐ๋ž˜๋ฅผ ์œ„ํ•œ ๊ฐœ์ธ๊ฒฝ๋งค ์„œ๋น„์Šค, BID

SSAFY ๊ณตํ†ต PJT TEAM 928


๋ชฉ์ฐจ

  1. ์›น ์„œ๋น„์Šค ์†Œ๊ฐœ
  2. ๊ธฐ์ˆ  ์Šคํƒ
  3. ์ฃผ์š” ๊ธฐ๋Šฅ
  4. ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ๋„
  5. ์„œ๋น„์Šค ํ™”๋ฉด
  6. ๊ฐœ๋ฐœ ํŒ€ ์†Œ๊ฐœ
  7. ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ๋ฐ ์ผ์ •
  8. ํ˜‘์—… ์ปจ๋ฒค์…˜
  9. ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ
  10. ์‚ฐ์ถœ๋ฌผ

โœจ ์›น ์„œ๋น„์Šค ์†Œ๊ฐœ

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


๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

Frontend

React CSS3 HTML5 TypeScript Tailwind CSS
HTML5 CSS3 React Typescript Tailwind
CSS
react query openvidu stomp axios zustand
React
Query
Openvidu Stomp js Axios Zustand
eslint prettier vite
Eslint Prettier Vite

Backend

Java Spring hibernate mariadb MongoDB
Java Spring Hibernate Mariadb MongoDB
Redis swagger jasypt security openvidu
Redis Swagger Jasypt Spring
security
Openvidu
Stomp js
Stomp js

DevOps

AWS Docker Nginx Jenkins
AWS Docker Nginx Jenkins

Tools

notion gitlab jira gerrit Tailwind CSS
Notion Gitlab Jira Gerrit Mattermost

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

๊ธฐ๋Šฅ ๋‚ด์šฉ
์‹ค์‹œ๊ฐ„ ๋ผ์ด๋ธŒ ๋ฐฉ์†ก ๊ฒฝ๋งค์™€ ์—ญ๊ฒฝ๋งค ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ , ์˜ˆ์ •๋œ ๋ผ์ด๋ธŒ ์‹œ๊ฐ„์ด ๋˜๋ฉด ์‹ค์‹œ๊ฐ„ ๋ผ์ด๋ธŒ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์ž์‹ ์˜ ๋ฌผ๊ฑด์„ ํŒ๋งค, ๊ตฌ๋งค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ ๋ฐฉ์†ก ์ค‘ ์ฑ„ํŒ… ๋˜ํ•œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์‹ค์‹œ๊ฐ„ 1:1 ์ฑ„ํŒ… ์ฆ‰์‹œ ๊ตฌ๋งค๋‚˜ ๋‚™์ฐฐ์„ ํ†ตํ•ด ๊ฑฐ๋ž˜๊ฐ€ ํ™•์ •๋˜๋ฉด 1:1 ์ฑ„ํŒ…๋ฐฉ์ด ์ƒ์„ฑ๋˜๊ณ  1:1 ์ฑ„ํŒ…์„ ํ†ตํ•ด ์ƒ๋Œ€๋ฐฉ๊ณผ ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•Œ๋ฆผ ์„œ๋น„์Šค ๊ด€์‹ฌ์žˆ๋Š” ๊ฑฐ๋ž˜๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ํ•ด๋‹น ๊ฑฐ๋ž˜์˜ ๋ผ์ด๋ธŒ ๋ฐฉ์†ก ์ „ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚™์ฐฐ ๋ฐ ์ƒ์œ„์ž…์ฐฐ ๋ฐœ์ƒ ์‹œ์—๋„ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์†Œ์…œ ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž๋Š” ๋„ค์ด๋ฒ„, ์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ํ†ตํ•ด ์„œ๋น„์Šค์— ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฐ์ œ IamPort ๊ฒฐ์ œ api๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์นด์นด์˜คํŽ˜์ด QR์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ๋ชจ์˜ ํฌ์ธํŠธ ์ถฉ์ „์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฝ๋งค๊ธ€ ์กฐํšŒ ์‹ค์‹œ๊ฐ„ ํ•ซ ๊ฒฝ๋งค, ๋งˆ๊ฐ ์ž„๋ฐ•, ์ง„ํ–‰ ์˜ˆ์ • ๊ฒฝ๋งค, ๋ผ์ด๋ธŒ ์ง„ํ–‰ ์ค‘์ธ ๊ฒฝ๋งค ๋“ฑ ์ธ๊ธฐ ์žˆ๋Š” ๊ฒฝ๋งค๋“ค์„ ๋ฉ”์ธ ํ™”๋ฉด์—์„œ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ƒ์„ธ ์กฐํšŒ ๋ฌผ๊ฑด์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ผ์ด๋ธŒ๋ฅผ ์ง„ํ–‰ํ•œ ๋ฌผํ’ˆ์ด๋ผ๋ฉด ๋…นํ™”์˜์ƒ, ํƒ€์ž„ ์Šคํƒฌํ”„, STT๋ฅผ ์ ์šฉํ•œ ๋ผ์ด๋ธŒ ์š”์•ฝ๋ณธ์„ ์ถ”๊ฐ€์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„ ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒฝ๋งค ๋ฐ ์—ญ๊ฒฝ๋งค ๊ธ€์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ํ•„ํ„ฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฌผํ’ˆ์„ ์กฐํšŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์นดํ…Œ๊ณ ๋ฆฌ๋ณ„, ์ง€์—ญ๋ณ„, ๊ฒฝ๋งค์‹œ์ž‘์ „, ๊ฒฝ๋งค์ง„ํ–‰์ค‘, ๋ผ์ด๋ธŒ์ง„ํ–‰์ค‘ ๋“ฑ)
์‹ ๋ขฐ๋„ ์ง€ํ‘œ ์‚ฌ์šฉ์ž์˜ ์„œ๋น„์Šค ์ด์šฉ ๋‚ด์—ญ์— ๋”ฐ๋ผ ์‹ ๋ขฐ๋„ ์ง€ํ‘œ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฑฐ๋ž˜ ๊ณผ์ •์—์„œ ์„œ๋กœ์˜ ์‹ ๋ขฐ๋„๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‚ ํ”„๋กœ์ ํŠธ ๊ตฌ์ƒ๋„

์•„ํ‚คํ…์ฒ˜


ERD


๐Ÿ–ฅ๏ธ ์„œ๋น„์Šค ํ™”๋ฉด

ํšŒ์›๊ฐ€์ž… ๋ฉ”์ธํŽ˜์ด์ง€ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ
ํšŒ์›๊ฐ€์ž… ๋ฉ”์ธํ™”๋ฉด ์นดํ…Œ๊ณ ๋ฆฌ

๊ฒ€์ƒ‰ ์•Œ๋ฆผ ์œ„์‹œ
๊ฒ€์ƒ‰ ์•Œ๋ฆผ ์ƒ์„ธ๋ณด๊ธฐ

๊ฒฝ๋งค๊ธ€ ์ž‘์„ฑ ๊ฒฝ๋งค๊ธ€ ์ƒ์„ธ๋ณด๊ธฐ
๊ฒฝ๋งค๊ธ€์ž‘์„ฑ ์œ„์‹œ

์—ญ๊ฒฝ๋งค๊ธ€ ์ž‘์„ฑ ์—ญ๊ฒฝ๋งค๊ธ€ ์ƒ์„ธ๋ณด๊ธฐ
์—ญ๊ฒฝ๋งค๊ธ€์ž‘์„ฑ ์—ญ๊ฒฝ๋งค์ƒ์„ธ

๊ฒฝ๋งค ๋ผ์ด๋ธŒ

๊ฐ€์ด๋“œ๋ผ์ธ ๋ผ์ด๋ธŒ ๋ฐฉ์†ก
๊ฐ€์ด๋“œ ๊ฒฝ๋งค๋ผ์ด๋ธŒ

์—ญ๊ฒฝ๋งค ๋ผ์ด๋ธŒ

๋ฐœ์–ธ๊ถŒ ์‹ ์ฒญ ๋งค์นญํ•˜๊ธฐ ๋งค์นญ ํ™•์ •ํ•˜๊ธฐ
๋ฐœ์–ธ๊ถŒ์‹ ์ฒญ ๋งค์นญํ•˜๊ธฐ ๋งค์นญํ™•์ •ํ•˜๊ธฐ
๋ผ์ด๋ธŒ ์ฑ„ํŒ…
๋ผ์ด๋ธŒ์ฑ„ํŒ…

์ฆ‰์‹œ๊ตฌ๋งค ๊ธฐ๋Šฅ 1:1 ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๋ฆฌ๋ทฐ ์ž‘์„ฑ
์ฆ‰์‹œ๊ตฌ๋งค ์ฑ„ํŒ… ๋ฆฌ๋ทฐ์ž‘์„ฑ

ํ”„๋กœํ•„ ์กฐํšŒ ๋‹ค๋ฅธ ์œ ์ € ํ”„๋กœํ•„ ์กฐํšŒ ํฌ์ธํŠธ ๋‚ด์—ญ ์กฐํšŒ
ํ”„๋กœํ•„์กฐํšŒ ๋‹ค๋ฅธ์œ ์ €ํ”„๋กœํ•„ ํฌ์ธํŠธ๋‚ด์—ญ

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ๊ฐœ๋ฐœ ํŒ€ ์†Œ๊ฐœ

FE FE FE BE BE BE
์ด์ˆ˜ํ™” ํ”„๋กœํ•„ ์ด์Šนํ˜„ ํ”„๋กœํ•„ ์ตœ๋ฏผ๊ฒฝ ํ”„๋กœํ•„ ์œคํฌ์› ํ”„๋กœํ•„ ์ฐจ์„ฑ์› ํ”„๋กœํ•„ ์ตœ์šฉ์ˆ˜ ํ”„๋กœํ•„
์ด์ˆ˜ํ™” ์ด์Šนํ˜„ ์ตœ๋ฏผ๊ฒฝ ์œคํฌ์› ์ฐจ์„ฑ์› ์ตœ์šฉ์ˆ˜

๐Ÿ—“๏ธ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ๋ฐ ์ผ์ •

24.01.03. ~ 24.02.16


โš™๏ธ ํ˜‘์—… ์ปจ๋ฒค์…˜

Commit

type: #[issueNumber] - ์ปค๋ฐ‹ ๋‚ด์šฉ ์ตœ๋Œ€ 50์ž
> ๋„์šฐ๊ธฐ
์ปค๋ฐ‹ ์„ค๋ช…(์ด๊ฑด ์„ ํƒ)

header type

feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€
fix: ๋ฒ„๊ทธ ์ˆ˜์ • ๋˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํฐ ๋ณ€ํ™”์™€ ๊ฒฐ๊ณผ์— ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๋•Œ
docs: ๋ฌธ์„œ ๊ด€๋ จ ์ปค๋ฐ‹
refactor: ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ณ€ํ™” ์—†์ด ๋ฆฌํŒฉํ† ๋ง
style: ์ฝ”๋“œ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ(formatting, missing semi colons, โ€ฆ)
test: ํ…Œ์ŠคํŠธ ๊ด€๋ จ ์ปค๋ฐ‹
chore: ๊ธฐํƒ€ ์ปค๋ฐ‹, ํ™˜๊ฒฝ์„ค์ •
init: ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

์˜ˆ์ œ

feat: ๋กœ๊ทธ์ธ API ๊ตฌํ˜„ #[์ด์Šˆํ‚ค] #[์ƒํƒœ]

Branch

1. branch ์ข…๋ฅ˜

  • ์„œ๋น„์Šค ์ถœ์‹œ : main
  • ๊ฐœ๋ฐœ : develop
  • ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ : feature

2. feature branch ๋ช…

front : feature/[์ง€๋ผ ์Šคํ† ๋ฆฌ ๋ฒˆํ˜ธ]/fe
back : feature/[์ง€๋ผ ์Šคํ† ๋ฆฌ ๋ฒˆํ˜ธ]/be

๐Ÿ“‚ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ

Front-end

๐Ÿ“‚ src
โ”œโ”€๐Ÿ“‚ apis
โ”œโ”€๐Ÿ“‚ assets
โ”‚  โ”œโ”€icon
โ”‚  โ””โ”€image
โ”œโ”€๐Ÿ“‚ components
โ”œโ”€๐Ÿ“‚ constants
โ”œโ”€๐Ÿ“‚ hooks
โ”œโ”€๐Ÿ“‚ pages
โ”‚  โ”œโ”€chat
โ”‚  โ”œโ”€home
โ”‚  โ”œโ”€live
โ”‚  โ”œโ”€login
โ”‚  โ”œโ”€notify
โ”‚  โ”œโ”€profile
โ”‚  โ”œโ”€review
โ”‚  โ”œโ”€scrap
โ”‚  โ”œโ”€search
โ”‚  โ”œโ”€signup
โ”‚  โ””โ”€write
โ”œโ”€๐Ÿ“‚ service
โ”œโ”€๐Ÿ“‚ stores
โ”œโ”€๐Ÿ“‚ types
โ”‚  โ””โ”€model
โ”‚  โ””โ”€api
โ””โ”€๐Ÿ“‚ utils

Back-end

๐Ÿ“‚ main
โ”œโ”€java
โ”‚  โ””โ”€com
โ”‚      โ””โ”€qzp
โ”‚          โ””โ”€bid
โ”‚              โ”œโ”€domain
โ”‚              โ”‚  โ”œโ”€auth
โ”‚              โ”‚  โ”‚  โ”œโ”€api
โ”‚              โ”‚  โ”‚  โ”œโ”€controller
โ”‚              โ”‚  โ”‚  โ”œโ”€dto
โ”‚              โ”‚  โ”‚  โ””โ”€service
โ”‚              โ”‚  โ”œโ”€chat
โ”‚              โ”‚  โ”‚  โ”œโ”€controller
โ”‚              โ”‚  โ”‚  โ”œโ”€dto
โ”‚              โ”‚  โ”‚  โ”œโ”€entity
โ”‚              โ”‚  โ”‚  โ”œโ”€mapper
โ”‚              โ”‚  โ”‚  โ”œโ”€repository
โ”‚              โ”‚  โ”‚  โ””โ”€service
โ”‚              โ”‚  โ”œโ”€deal
โ”‚              โ”‚  โ”‚  โ”œโ”€controller
โ”‚              โ”‚  โ”‚  โ”œโ”€dto
โ”‚              โ”‚  โ”‚  โ”œโ”€entity
โ”‚              โ”‚  โ”‚  โ”œโ”€mapper
โ”‚              โ”‚  โ”‚  โ”œโ”€purchase
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€controller
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€dto
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€entity
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€mapper
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€repository
โ”‚              โ”‚  โ”‚  โ”‚  โ””โ”€service
โ”‚              โ”‚  โ”‚  โ”œโ”€repository
โ”‚              โ”‚  โ”‚  โ”œโ”€sale
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€controller
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€dto
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€entity
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€mapper
โ”‚              โ”‚  โ”‚  โ”‚  โ”œโ”€repository
โ”‚              โ”‚  โ”‚  โ”‚  โ””โ”€service
โ”‚              โ”‚  โ”‚  โ”œโ”€scheduler
โ”‚              โ”‚  โ”‚  โ””โ”€service
โ”‚              โ”‚  โ”œโ”€live
โ”‚              โ”‚  โ”‚  โ”œโ”€controller
โ”‚              โ”‚  โ”‚  โ”œโ”€dto
โ”‚              โ”‚  โ”‚  โ”œโ”€entity
โ”‚              โ”‚  โ”‚  โ”œโ”€mapper
โ”‚              โ”‚  โ”‚  โ”œโ”€repository
โ”‚              โ”‚  โ”‚  โ””โ”€service
โ”‚              โ”‚  โ”œโ”€member
โ”‚              โ”‚  โ”‚  โ”œโ”€controller
โ”‚              โ”‚  โ”‚  โ”œโ”€dto
โ”‚              โ”‚  โ”‚  โ”œโ”€entity
โ”‚              โ”‚  โ”‚  โ”œโ”€mapper
โ”‚              โ”‚  โ”‚  โ”œโ”€repository
โ”‚              โ”‚  โ”‚  โ””โ”€service
โ”‚              โ”‚  โ””โ”€sse
โ”‚              โ”‚      โ”œโ”€controller
โ”‚              โ”‚      โ”œโ”€dto
โ”‚              โ”‚      โ”œโ”€repository
โ”‚              โ”‚      โ””โ”€service
โ”‚              โ””โ”€global
โ”‚                  โ”œโ”€config
โ”‚                  โ”œโ”€result
โ”‚                  โ”‚  โ””โ”€error
โ”‚                  โ”‚      โ””โ”€exception
โ”‚                  โ”œโ”€security
โ”‚                  โ”‚  โ”œโ”€filter
โ”‚                  โ”‚  โ””โ”€util
โ”‚                  โ””โ”€util
โ””โ”€resources

๐Ÿ“ƒ ์‚ฐ์ถœ๋ฌผ