Skip to content

๐Ÿ’ป[๊ฐœ๋ฐœ์ƒˆ๋ฐœ] ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ๊ณผ ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ ๊ณต์œ  ๋ฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‚ฌ์ดํŠธ - SSAFY 8๊ธฐ ์šฐ์ˆ˜ ํ”„๋กœ์ ํŠธ

Notifications You must be signed in to change notification settings

RoughCodeCody/RoughCode-back

Repository files navigation

๊ฐœ๋ฐœ์ƒˆ๋ฐœ(Rough Code)

๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ๊ณผ ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ ๊ณต์œ  ๋ฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‚ฌ์ดํŠธ

๐Ÿ’ก ๊ธฐํš ๋ฐฐ๊ฒฝ

ํ† ์ด ํ”„๋กœ์ ํŠธ๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ธฐ ์–ด๋ ค์›Œ ํ•œ ๋ฒˆ ๋งŒ๋“  ํ›„์— ํ๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์—ด์‹ฌํžˆ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด์šฉํ•ด ๋ณด๊ณ , ๋‹ค์–‘ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„ ๋ณด๊ณ , ์ข‹์€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์–ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ์„ ํ•ด๋ณด๋Š” ๊ฒฝํ—˜์€ ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €ํฌ๋Š” ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ๊ณผ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ โ€œํ”„๋กœ์ ํŠธ ๊ณต์œ  ๊ณต๊ฐ„โ€ ๊ณผ โ€œ์ฝ”๋“œ ๊ณต์œ , ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ ์˜๊ฒฌ ์†Œํ†ต ๊ณต๊ฐ„โ€์„ ์ œ๊ณตํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿšฉ ๋Œ€์ƒ

๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ, ์‹ ์ž… ๊ฐœ๋ฐœ์ž

๐ŸŒŸ ๊ธฐ๋Œ€ ํšจ๊ณผ

  • ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์„œ๋กœ์—๊ฒŒ ํ”ผ๋“œ๋ฐฑ์„ ์ž์œ ๋กญ๊ฒŒ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ์™€ ์ฝ”๋“œ๋ฅผ ๋ฆฌ๋ทฐํ•˜์—ฌ ๋ฐœ์ „์‹œ์ผœ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์„ ๊ธฐ๋กํ•˜๊ณ  ํฌํŠธํด๋ฆฌ์˜ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊นƒํ—ˆ๋ธŒ gist๋ฅผ ํ†ตํ•œ ํ†ต๊ณ„ ๋“ฑ๋ก์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋กœ์„œ์˜ ๋ฆฌํŒฉํ† ๋ง ๊ฒฝํ—˜, ํƒ€์ธ์˜ ์ฝ”๋“œ๋ฅผ ๋ฆฌ๋ทฐํ•ด์ค€ ๊ฒฝํ—˜ ๋“ฑ์„ ์–ดํ•„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  1. ํ† ์ด ํ”„๋กœ์ ํŠธ ๊ณต์œ  ๋ฐ ํ”ผ๋“œ๋ฐฑ ํŽ˜์ด์ง€
    1. url ๋˜๋Š” apk์— ๋Œ€ํ•œ ์•ˆ์ „์„ฑ ๊ฒ€์‚ฌ
    2. ํ”„๋กœ์ ํŠธ ๋ฒ„์ „ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ์ œ๊ณต
    3. ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ  ์Šคํƒ์— ๋”ฐ๋ฅธ ํ•„ํ„ฐ๋ง ์ œ๊ณต
  2. ์ฝ”๋“œ ๊ณต์œ  ๋ฐ ๋ฆฌ๋ทฐ ํŽ˜์ด์ง€
    1. ์›๋ณธ ์ฝ”๋“œ์™€ ์ˆ˜์ • ์ฝ”๋“œ์˜ ๋น„๊ต UI ์ œ๊ณต
    2. ๋ฆฌ๋ทฐ์— ๋Œ€ํ•œ ์˜๊ฒฌ ์ž‘์„ฑ ๊ธฐ๋Šฅ ์ œ๊ณต
    3. ์ฝ”๋“œ ๋ฒ„์ „ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ ์ œ๊ณต
    4. ์‚ฌ์šฉ ์–ธ์–ด์— ๋”ฐ๋ฅธ ํ•„ํ„ฐ๋ง ์ œ๊ณต
  3. ํ”„๋กœํ•„ํŽ˜์ด์ง€
    1. ํ”„๋กœ์ ํŠธ ๊ณต์œ  ํšŸ์ˆ˜, ํ”„๋กœ์ ํŠธ ๋ฆฌํŒฉํ† ๋ง ํšŸ์ˆ˜(๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ํšŸ์ˆ˜), ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํšŸ์ˆ˜, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ˜์˜ ํšŸ์ˆ˜(๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ํšŸ์ˆ˜)์— ๋Œ€ํ•œ ํ†ต๊ณ„ ์ œ๊ณต
    2. ์ด๋ฉ”์ผ ์ธ์ฆ์„ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ์ œ๊ณต
    3. ๋‚ด๊ฐ€ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ธด ๊ฒŒ์‹œ๋ฌผ, ์ฆ๊ฒจ์ฐพ๊ธฐํ•œ ๊ฒŒ์‹œ๋ฌผ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์ œ๊ณต

๐Ÿ”ง ๊ธฐ์ˆ  ์Šคํƒ

Backend - Spring

- Java openjdk-11
- Spring boot 2.7.1
- Spring Security 2.7.10
- Spring Data JPA 2.7.10
- Querydsl 5.0.0
- JWT 0.11.2
- Spring Data Redis 2.7.10

Frontend - Next.js

- Node.js 18.16.0
- React 18.2.0
- Next.js 13.2.4
- TypeScript 5.0.4
- Styled Components 5.3.9
- Tanstack Query 4.29.5
- Zustand 4.3.7
- React Hook Form 7.43.9
- Zod 3.21.4
- ESLint 8.38.0
- Prettier 2.8.7
- Axios 1.3.6
- Monaco Editor 0.38.0
- Tiptap Editor 2.0.3

CI / CD

- AWS EC2 / Ubuntu 20.04.6 LTS (Focal Fossa)
- Docker 23.0.5
- Docker Compose 1.25.0
- SSL (certbot) 1.1.1f
- Jenkins 24.0.2
- NGINX 1.23.4
- sonarqube 9.9.1.69595
- pmd 3.4.0
- checkstyle 10.9.3

๐Ÿ˜Ž ํŒ€ ๊ตฌ์„ฑ์›

ํŒ€ํ”„๋กœํ•„

๐Ÿ“‘ ํ”„๋กœ์ ํŠธ ์‚ฐ์ถœ๋ฌผ

์™€์ด์–ดํ”„๋ ˆ์ž„
ERD
API ๋ช…์„ธ์„œ
ํ”Œ๋กœ์šฐ์ฐจํŠธ
์•„ํ‚คํ…์ณ

์•„ํ‚คํ…์ณ

์Šคํ† ๋ฆฌ๋ณด๋“œ

๐Ÿ”Ž ์„œ๋น„์Šค ํ™”๋ฉด

๋ฉ”์ธ ํŽ˜์ด์ง€

  • ์‚ฌ์ดํŠธ ์†Œ๊ฐœ์™€ ํ•จ๊ป˜ ํ”„๋กœ์ ํŠธ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ, ๋กœ๊ทธ์ธ ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

    • ๋กœ๊ทธ์ธ ์ „ ๋ฉ”์ธ ํŽ˜์ด์ง€
    • ๋กœ๊ทธ์ธ ํ›„ ๋ฉ”์ธ ํŽ˜์ด์ง€-์•Œ๋žŒ

ํ”„๋กœ์ ํŠธ ๊ณต์œ 

  • ํ”„๋กœ์ ํŠธ๋Š” ํƒœ๊ทธ๋ณ„ ํ•„ํ„ฐ๋ง์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์ž‘์„ฑ์ผ์‹œ, ์ข‹์•„์š”, ํ”ผ๋“œ๋ฐฑ ์ˆœ์œผ๋กœ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฌดํ•œ์Šคํฌ๋กค๋กœ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ - ๊ฒ€์ƒ‰ ํ”„๋กœ์ ํŠธ

  • ํ”„๋กœ์ ํŠธ ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ๋Š” ๋ฒ„์ „๋ณ„ ์—…๋ฐ์ดํŠธ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ํ”ผ๋“œ๋ฐฑ์„ ๋‚จ๊ธฐ๊ฑฐ๋‚˜ ์‹ ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ํ”„๋กœ์ ํŠธ ์ƒ์„ธ ํ”„๋กœ์ ํŠธ-์ƒ์„ธ
    • ํ”„๋กœ์ ํŠธ ๋ฒ„์ „๋ณ„ ์ •๋ณด ํ”„๋กœ์ ํŠธ-๋ฒ„์ „
    • ํ”„๋กœ์ ํŠธ ํ”ผ๋“œ๋ฐฑ ํ”„๋กœ์ ํŠธ-ํ”ผ๋“œ๋ฐฑ
    • ํ”„๋กœ์ ํŠธ ํ”ผ๋“œ๋ฐฑ ์‹ ๊ณ  ํ”„๋กœ์ ํŠธ-ํ”ผ๋“œ๋ฐฑ-์‹ ๊ณ 
  • ํ”„๋กœ์ ํŠธ์˜ URL์„ ํด๋ฆญํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ›„์— ์—ด๋ ค์žˆ๋Š” ๊ฒฝ์šฐ ๋งํฌ๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  ๋‹ซํ˜€์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ์ž๋™์œผ๋กœ ๋‹ซํž˜ ์‹ ๊ณ  ์ฒ˜๋ฆฌ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ-url-์ฒดํฌ

  • ์œ ํ•ด ์‚ฌ์ดํŠธ ๋งํฌ๊ฐ€ ๋“ฑ๋ก๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ๋“ฑ๋ก ์‹œ URL ๊ฒ€์‚ฌ๋ฅผ ํ•„์ˆ˜๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • ํ”„๋กœ์ ํŠธ ๋“ฑ๋ก ํ”„๋กœ์ ํŠธ-๋“ฑ๋ก
  • ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋‹ฌ๋ฆฐ ํ”ผ๋“œ๋ฐฑ ๋ชฉ๋ก์—์„œ ๋ฐ˜์˜ํ•˜์—ฌ ๊ฐœ์„ ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์„ ํƒํ•ด ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ-๋ฒ„์ „์—…

์ฝ”๋“œ ๋ฆฌ๋ทฐ

  • ์ฝ”๋“œ๋Š” ํƒœ๊ทธ๋ณ„ ํ•„ํ„ฐ๋ง์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์ž‘์„ฑ์ผ์‹œ, ์ข‹์•„์š”, ํ”ผ๋“œ๋ฐฑ ์ˆœ์œผ๋กœ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฌดํ•œ์Šคํฌ๋กค๋กœ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ฆฌ์ŠคํŠธ

  • Github URL์„ ์ž…๋ ฅํ•˜์—ฌ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์š”์ฒญํ•  ์ฝ”๋“œ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋“ฑ๋ก

  • ์ฝ”๋“œ ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ๋Š” ๋ฒ„์ „๋ณ„ ์—…๋ฐ์ดํŠธ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • diff ์—๋””ํ„ฐ๋ฅผ ํ†ตํ•ด ๊ธฐ์กด ์ฝ”๋“œ์™€ ๋ฆฌ๋ทฐ ์ž‘์„ฑ์ž๊ฐ€ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๋ฅผ ํ•œ๋ˆˆ์— ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋ฆฌ๋ทฐ ๋‚จ๊ธฐ๊ธฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ
    • ๋ฆฌ๋ฆฌ๋ทฐ ๋‚จ๊ธฐ๊ธฐ ์ฝ”๋“œ ๋ฆฌ๋ฆฌ๋ทฐ
  • ์ฝ”๋“œ์™€ ์—ฐ๊ด€๋œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ธฐ์กด์— ๋“ฑ๋กํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฝ”๋“œ์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ์—ฐ๊ฒฐ

๋งˆ์ดํŽ˜์ด์ง€

  • ํ™œ๋™ ์—…์ ์„ ๊ธฐ๋กํ•œ ์Šคํƒฏ ์นด๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ Github ํ”„๋กœํ•„์— ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํŽ˜์ด์ง€

  • ์ด๋ฉ”์ผ์„ ์ธ์ฆํ•˜๋ฉด ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ดํŽ˜์ด์ง€ ์ด๋ฉ”์ผ ์ธ์ฆ

    • ์ „์†ก๋œ ์ด๋ฉ”์ผ ์ฝ”๋“œ
    • ์•Œ๋ฆผ ์ฝ”๋“œ
  • ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ, ๋ฆฌ๋ทฐํ•œ, ์ฆ๊ฒจ์ฐพ๊ธฐํ•œ ํ”„๋กœ์ ํŠธ์™€ ์ฝ”๋“œ ๋ชฉ๋ก์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ดํŽ˜์ด์ง€ ๊ฒŒ์‹œ๋ฌผ๋“ค

๐ŸŽฌ UCC

์•„๋ž˜ ์‚ฌ์ง„์„ ํด๋ฆญํ•˜๋ฉด ๋™์˜์ƒ ๋งํฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค!

About

๐Ÿ’ป[๊ฐœ๋ฐœ์ƒˆ๋ฐœ] ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ๊ณผ ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ ๊ณต์œ  ๋ฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‚ฌ์ดํŠธ - SSAFY 8๊ธฐ ์šฐ์ˆ˜ ํ”„๋กœ์ ํŠธ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages