Skip to content
/ CONKIRI Public

๐Ÿ˜ ์ฝ˜๋ผ๋ฆฌ: ์‹ธํ”ผ ๊ณตํ†ตํ”„๋กœ์ ํŠธ ์šฐ์ˆ˜์ƒ๐Ÿ†

Notifications You must be signed in to change notification settings

Icln/CONKIRI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ˜ ์ฝ˜๋ผ๋ฆฌ

image (5)

๋ชฉ์ฐจ

์„œ๋น„์Šค
ํŒ€์›
๊ธฐ์ˆ 
ํ™”๋ฉด
๊ธฐ์ˆ ์  ํŠน์ง•
๋ฌธ์„œ

๐Ÿ˜ ์„œ๋น„์Šค

[์ฝ˜์„œํŠธ ๊ด€๋žŒ ์ „๊ณผ์ •์„ ๋•๋Š” ์„œ๋น„์Šค๐ŸŽˆ]

1. ๊ณต์—ฐ์žฅ ์ขŒ์„๋ณ„ ์‹œ์•ผ ํ›„๊ธฐ ์•„์นด์ด๋ธŒ ์ œ๊ณต
2. ํŒฌ๋ฉ”์ด๋“œ ๊ตฟ์ฆˆ ๋‚˜๋ˆ”์„ ์œ„ํ•œ ์ง€๋„ ์ œ๊ณต
3. ํ‹ฐ์ผ“ํŒ… ์—ฐ์Šต ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ œ๊ณต
4. ๊ณต์—ฐ์žฅ ์ฃผ๋ณ€ ์‹ค์‹œ๊ฐ„ ํ˜ผ์žก๋„ ์ •๋ณด ์ œ๊ณต

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ ํŒ€์›

BackEnd
Icln guite95 swim00
์ž„๊ฐ•ํ˜ธ ์žฅ์šฑ ๊น€์ˆ˜์˜
FrontEnd
Minal002 ynco32 happysloth0908
๊น€๋ฏธ๋‚˜ ์ตœ์œค์ง€ ๊น€์†Œ์šด

๐Ÿ›  ๊ธฐ์ˆ 

๐Ÿ–ฅ๏ธ BackEnd

๐ŸŽจ FrontEnd


โ˜๏ธ Infra


๐Ÿ› ๏ธ Tool


๐Ÿ’ป ํ™”๋ฉด

0. ๋ฉ”์ธ ํ™”๋ฉด ๋ฐ ๋กœ๊ทธ์ธ ํ™”๋ฉด

๋ฉ”์ธ ํ™”๋ฉด

1. ์‹œ์•ผ ๋ณด๊ธฐ

์‹œ์•ผ ํ›„๊ธฐ ๋ณด๊ธฐ ์ขŒ์„ ์Šคํฌ๋žฉํ•˜๊ธฐ ํ›„๊ธฐ ์ž‘์„ฑ

2. ํ‹ฐ์ผ“ํŒ…

์—ฐ์Šต ๋ชจ๋“œ ์‹ค์ „ ๋ชจ๋“œ

3. ๋‚˜๋ˆ” ์ง€๋„

๋‚˜๋ˆ” ๊ฒŒ์‹œ๊ธ€ ์“ฐ๊ธฐ ๋‚˜๋ˆ” ๊ฒŒ์‹œ๊ธ€ ๋ถ๋งˆํฌ

4. ํ˜ผ์žก๋„ ๋ณด๊ธฐ

ํ˜ผ์žก๋„ ๋ณด๊ธฐ

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

์‹œ์•ผ ํ›„๊ธฐ ์กฐํšŒ ๋ฐ ์‚ญ์ œ ์Šคํฌ๋žฉํ•œ ๋‚˜๋ˆ” ๊ฒŒ์‹œ๊ธ€ ๋‚˜์˜ ํ‹ฐ์ผ“ํŒ… ๊ธฐ๋ก

๐Ÿš€ ๊ธฐ์ˆ ์  ํŠน์ง•

์‹œ์•ผ ๋ณด๊ธฐ

[BE] N+1 ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ๊ฐœ์„ 

  • JPQL์˜ Fetch join ํ™œ์šฉ
  • Batch Size๋กœ IN ์ฟผ๋ฆฌ ์ตœ์ ํ™”

[FE] ์บ์‹ฑ ์‹œ์Šคํ…œ์œผ๋กœ API ํ˜ธ์ถœ ์ตœ์ ํ™”

  • TTL ๊ธฐ๋ฐ˜ ๋ฉ”๋ชจ๋ฆฌ ์บ์‹ฑ : ๊ตฌ์—ญ, ์ขŒ์„ ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์‚ฌ์šฉ
  • LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์ตœ๋Œ€ 10๊ฐœ ์„น์…˜๋งŒ ์บ์‹œ
  • ํ‹ฐ์ผ“ํŒ… ์—ฐ์Šต

ํ‹ฐ์ผ“ํŒ…

[BE] ์•ˆ์ •์ ์ธ ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ

  • ์„œ๋ฒ„ ๋ถ€ํ•˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋ฐ˜ ๋Œ€๊ธฐ์—ด Batch ํฌ๊ธฐ ๋™์  ์กฐ์ ˆ๋กœ ์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ ํ™•๋ณด
  • Redis Sorted Set๊ณผ SETNX ๊ธฐ๋ฐ˜ ๋Œ€๊ธฐ์—ด ๊ด€๋ฆฌ ๋ฐ ๋™์‹œ์„ฑ ์ œ์–ด

[FE] ์•ˆ์ •์ ์ธ ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ

  • WebSocket, STOMP ๋กœ ๋Œ€๊ธฐ์—ด ๊ตฌํ˜„
  • ์ž๋™ ์žฌ์—ฐ๊ฒฐ ๊ตฌํ˜„
  • ๋Œ€๊ธฐ ์‹œ๊ฐ„๋ณ„ ๊ฐฑ์‹ ์ฃผ๊ธฐ ์ตœ์ ํ™”

๋‚˜๋ˆ” ์ง€๋„

[BE] ๋‚˜๋ˆ” ์ง„ํ–‰ ์ƒํƒœ ์ž๋™ ๋ณ€ํ™˜

  • ์Šคํ”„๋ง ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์ด์šฉํ•ด ํŠน์ • ์‹œ๊ฐ„์— DB ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋„๋ก ์Šค๋ ˆ๋“œ์— ์ž‘์—… ์˜ˆ์•ฝ

[FE] ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”๋กœ ์ง€๋„ ์„ฑ๋Šฅ ํ–ฅ์ƒ

  • ์ปค์Šคํ…€ React ๊ณ ์ • ๋งˆ์ปค๋ฅผ ๊ตฌํ˜„
  • useRef๋ฅผ ํ™œ์šฉํ•ด ์ง€๋„ ์ธ์Šคํ„ด์Šค์™€ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ
  • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๋ฐ ์œ„์น˜ ์„ ํƒ ์ •ํ™•๋„ ํ–ฅ์ƒ

ํ˜ผ์žก๋„

[FE] ํ˜ผ์žก๋„ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

  • ํ†ต์‹ ์‚ฌ API๋กœ ์‹ค์‹œ๊ฐ„ ํ˜ผ์žก๋„๋ฅผ ๋ฐ›์•„์™€์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•œ ํ›„ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์ง€๋„์— ํ‘œ์‹œ

๐Ÿ“• ๋ฌธ์„œ

ํ”Œ๋กœ์šฐ์ฐจํŠธ
๊ธฐ๋Šฅ๋ช…์„ธ์„œ
API ๋ฌธ์„œ

ERD

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

๊นƒ ์ปจ๋ฒค์…˜

feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
fix ๋ฒ„๊ทธ ์ˆ˜์ •
docs ๋ฌธ์„œ ์ˆ˜์ •
style ์ฝ”๋“œ formatting, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ, ์ฝ”๋“œ ์ž์ฒด์˜ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ, ์ฃผ์„ ์—†๊ฑฐ๋‚˜, ํŒŒ์ผ ๋˜๋Š” ํด๋” ๋ช… ์ˆ˜์ •
refactor ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ
design CSS ๋“ฑ ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ
remove ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•œ ๊ฒฝ์šฐ
hotfix ๊ธ‰ํ•˜๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๋ฒ„๊ทธ

๋ธŒ๋žœ์น˜ ๋ช…

  • ์˜์–ด๋กœ ๊ธฐ๋Šฅ ์š”์•ฝ
  • ์†Œ๋ฌธ์ž
  • ๋„์–ด์“ฐ๊ธฐ - ๋กœ
  • ๋ฐฑ์—”๋“œ ํ”„๋ก ํŠธ ๊ตฌ๋ถ„
  • ์Šคํ† ๋ฆฌ์—์„œ ๊ธฐ๋Šฅ ์š”์•ฝํ•˜๊ณ  ์Šคํ† ๋ฆฌ ๊ณ ์œ  ๋ฒˆํ˜ธ ๋ธŒ๋žœ์น˜์— ๊ธฐ์ž…
  • ex) feat-#66-be-login(๊ธฐ๋Šฅ ์š”์•ฝ)
  • ํ”„๋ก ํŠธ์—”๋“œ | ํผ๋ธ”๋ฆฌ์‹ฑ ๋ธŒ๋žœ์น˜์˜ ๊ฒฝ์šฐ fe-p-๊ธฐ๋Šฅ์š”์•ฝ
  • ex) feat-#66-fe-p-show-list(๊ธฐ๋Šฅ ์š”์•ฝ)

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€

  • ๋‹จ์œ„๋ฅผ ์ตœ์†Œํ™”ํ•ด์„œ ์˜ฌ๋ฆฌ๊ธฐ ex) ์ปจํŠธ๋กค๋Ÿฌ ์ž‘์„ฑ, ์„œ๋น„์Šค ์ž‘์„ฑ
  • ๋์—๋Š” . ๊ธˆ์ง€
  • feat: ๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ ์š”์•ฝ
  • ex) feat: User์˜ Role์„ ๊ฐ€์ ธ์˜ค๋Š” Controller ์ž‘์„ฑ

Merge Request ์ œ๋ชฉ

  • ๋์—๋Š” . ๊ธˆ์ง€
  • ์ฒซ ๋ฌธ์ž๋Š” ๋Œ€๋ฌธ์ž`
  • Feat๋Š” ์Šคํ† ๋ฆฌ ๋ฒˆํ˜ธ ๊ธฐ์ž…
  • ex) Feat #66 ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„, Fix: ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๋ฒ„๊ทธ ์ˆ˜์ •, Hotfix: ๋กœ๊ทธ์ธ ํ† ํฐ ์˜ค๋ฅ˜ ์ˆ˜์ •

๊ตฌํ˜„ ๋ฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ
ex) ๋กœ๊ทธ์ธ ์‹œ, ๊ตฌ๊ธ€ ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค
ex) ๋ฐฉ์„ ๋งŒ๋“ค๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋กœ์ง ์ž‘์„ฑ
ex) ๋žœ๋ค ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋กœ์ง, Util๋กœ ๋ถ„๋ฆฌ
ex) ERD๋‚˜ ์ด๋ฏธ์ง€ ๋„ฃ์–ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ
ex) ๋ฒ ์ด์Šค ๋ธŒ๋žœ์น˜์— ํฌํ•จ๋˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋Š” ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋ฌผ์— ๋Œ€ํ•œ ์Šคํฌ๋ฆฐ์ƒท, GIF, ํ˜น์€ ๋ผ์ด๋ธŒ ๋ฐ๋ชจ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ƒ˜ํ”ŒAPI๋ฅผ ์ฒจ๋ถ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

About

๐Ÿ˜ ์ฝ˜๋ผ๋ฆฌ: ์‹ธํ”ผ ๊ณตํ†ตํ”„๋กœ์ ํŠธ ์šฐ์ˆ˜์ƒ๐Ÿ†

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published