Skip to content

developer-dating/gitssum-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 

Repository files navigation

๊นƒ์ธ - ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์†Œ์…œ ๋ฐ์ดํŒ… ์›น์•ฑ

1

๊ฐœ๋ฐœ์ž๋“ค์„ ์œ„ํ•œ ์†Œ์…œ ๋ฐ์ดํŒ… ์›น

๊นƒ์ธ ํ•˜๋Ÿฌ๊ฐ€๊ธฐ

Front-End Github โ†’

Back-End Github โ†’

Untitled

๐Ÿ“šย ์•„ํ‚คํ…์ณ

์•„ํ‚คํƒ์ณ๊นƒ์ธ2 PNG

์•„ํ‚คํ…์ฒ˜ ๋„์ž… ๋ฐฐ๊ฒฝ

FE

  • React Query

    ์„œ๋ฒ„์˜ ๊ฐ’์„ ํด๋ผ์ด์–ธํŠธ์— ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜, ์บ์‹ฑ, ๊ฐ’ ์—…๋ฐ์ดํŠธ, ์—๋Ÿฌํ•ธ๋“ค๋ง ๋“ฑ ๋น„๋™๊ธฐ ๊ณผ์ •์„ ์กฐ๊ธˆ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ์•กํŠธ ์ฟผ๋ฆฌ๋ฅผ ๋„์ž…ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • Recoil

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

  • Tailwind

    ๋˜ํ•œ ์ƒ์‚ฐ์ ์ธ ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ์œ„ํ•˜์—ฌ ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์— ๋›ฐ์–ด๋‚˜๊ณ  ๋””์ž์ธํˆด์ธ ํ”ผ๊ทธ๋งˆ์™€๋„ ์ž˜ ๋งž๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ธ ํ…Œ์ผ์œˆ๋“œ๋ฅผ ๋„์ž…ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

BE

  • WebSocket, Stomp

    ์„œ๋ฒ„์˜ ์ด๋ฒคํŠธ๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ• ์ค‘์— ์„œ๋ฒ„์— ๋ถ€ํ•˜๊ฐ€ ๋œ ์˜ค๊ฒŒ๋” ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ websocket์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฑ„ํŒ… ๊ธฐ๋Šฅ์„ ์œ„ํ•ด์„œ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” stomp๋ฅผ ์ด์šฉํ•ด topic์„ ์ƒ์„ฑํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • Redis

    ๋น„๋™๊ธฐ ํ†ต์‹ ์„ ํ•˜๋Š” ์ฑ„ํŒ… ๊ตฌํ˜„์„ ์œ„ํ•ด ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋กœ๋Š” ๋ ˆ๋””์Šค๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ์ค‘์— ๋ ˆ๋””์Šค๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋Š” Pub-sub๊ตฌ์กฐ์—ฌ์„œ ์ผ๋Œ€์ผ ์ผ๋Œ€๋‹ค ํ˜•ํƒœ๊ฐ€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๊ณ  Key-Value๋ฅผ ์‚ฌ์šฉํ•˜๋Š” In-Memory ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ๊ธฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—๋Š” ๋งค์šฐ ๋น ๋ฅผ ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • Oauth2

    ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ• ๋•Œ ์ผ๋ฐ˜๋กœ๊ทธ์ธ์€ ์œ ์ €๋“ค์˜ ํŽธ์˜์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฐ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ์†Œ์…œ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ๋ฐฉ์‹์œผ๋กœ ํŽธ์˜์„ฑ์„ ํ–ฅ์ƒํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์†Œ์…œ ๋กœ๊ทธ์ธ ์ค‘, ๊ฐ€์žฅ ๋ณดํŽธ์ ์ธ ์นด์นด์˜ค, ๊ตฌ๊ธ€ ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์ž ๋ฐ์ดํŒ…์•ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊นƒํ—ˆ๋ธŒ๊นŒ์ง€ ์„ ํƒํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Untitled

๐Ÿ‘‹ ์ฃผ์š”๊ธฐ์ˆ 

์Šคํƒ๊ณผ ์ง€์—ญ ๋“ฑ ์ด์šฉ์ž์˜ ์ทจํ–ฅ ๋ณ„ ๊ฐœ๋ฐœ์ž ์ถ”์ฒœ

๋ง˜์— ๋“œ๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ข‹์•„์š”

์ƒํ˜ธ ์ข‹์•„์š” ์ผ ๊ฒฝ์šฐ ์ฑ„ํŒ… ๋ฐฉ ์ƒ์„ฑ

์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์œผ๋กœ ์ƒ๋Œ€์™€์˜ ๋Œ€ํ™”

Untitled

๐Ÿ’ฏํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

  • profile ํŽ˜์ด์ง€ ํผ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ๊ณผ์ • ์—๋Ÿฌ

    • ํ”„๋กœํ•„ ์„ค์ • ๋ถ€๋ถ„ ํผ๋ฐ์ดํ„ฐ ๊ณผ์ •์ค‘ img๊ฐ€ [object] ํ˜•์‹์œผ๋กœ ๊ฐ€๋Š” ์—๋Ÿฌ
    • ํ•ด๊ฒฐ headers์— Content-Type๋ฅผ multipart/form-data๋กœ ์„ค์ • ํ›„ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ถ”์ฒœ ํŽ˜์ด์ง€ Internal server error 500์—๋Ÿฌ

    • QueryCache ๋Š” queryKey ๋งŒ ๊ฐ™๋‹ค๋ฉด error response๋„ ์บ์‹ฑํ•˜๊ณ  ๊ทธ ์ด์œ ๋กœ ๊ฐ™์€ key๋กœ query๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์บ์‹ฑ๋˜์–ด ์žˆ๋˜ error response๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ณ„๋‹ค๋ฅธ ์„ค์ •์„ ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์บ์‹œ๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๋™์‹œ์— API request๋ฅผ ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ queryClient.clear() ์‚ฌ์šฉํ•ด ์บ์‹œ ์‚ญ์ œ ํ›„ ํ•ด๊ฒฐ ์™„๋ฃŒ
  • ์œ ์ €ํ…Œ์ด๋ธ” ๊ตฌํ˜„ ์‹œ ๋ฌธ์ œ์ 

    ์†Œ์…œ ๋กœ๊ทธ์ธ ์‹œ ๋ฐ›์•„์˜ค๋Š” ์ •๋ณด์™€ ํ”„๋กœํ•„ ๋“ฑ๋กํ•  ๋•Œ ๋ฐ›์•„์˜ค๋Š” ์ •๋ณด๋ฅผ User table ํ•˜๋‚˜์— ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ผ ์–‘๋ฐฉํ–ฅ onetoone ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด์„œ ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ๋‚˜๋ˆ ์„œ ๋„ฃ์œผ๋ ค๊ณ  ์‹œ๋„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์–‘๋ฐฉํ–ฅ onetoone ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ๋งบ์œผ๋ฉด N+1 ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“ค์–ด ์†Œ์…œ ๋กœ๊ทธ์ธ ์‹œ ์ •๋ณด๋“ค์„ ๋ฐ›์•„์˜จ ํ›„ ํ”„๋กœํ•„ ๋“ฑ๋ก ์‹œ ๋ฐ›๋Š” ์ •๋ณด๋“ค์„ putmappping์„ ํ†ตํ•ด ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

  • TimeStamped ๋กœ์ปฌ์‹œ๊ฐ„ ์„ค์ • ์—๋Ÿฌ

    timestamped ํด๋ž˜์Šค์—์„œ LocalDateTime์„ ํ†ตํ•ด ๋ฐ›์•„์™€์„œ mySQL db์— ์‹œ๊ฐ„๋Œ€๋ฅผ ์ €์žฅํ•  ๋•Œ 9์‹œ๊ฐ„ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š” ๋ฌธ์ œ์ ์ด ์ƒ๊ฒจ์„œ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณด๋‚ด์ง„ ์‹œ๊ฐ„ ์—ญ์‹œ ์ž˜๋ชป ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ubuntu ์„œ๋ฒ„ ์ƒ์— ์žˆ๋Š” localtime์„ ํ™•์ธํ•ด๋ณด๋‹ˆ ๋ฏธ๊ตญ ๊ธฐ์ค€์ด์–ด์„œ "sudo timedatectl set-timezone Asia/Seoul"๋ฅผ ํ†ตํ•ด ํ•œ๊ตญ ๊ธฐ์ค€์œผ๋กœ ๋ฐ”๊พธ์–ด ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Untitled

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป์ œ์ž‘์ž๋“ค๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages