-
React Query
์๋ฒ์ ๊ฐ์ ํด๋ผ์ด์ธํธ์ ๊ฐ์ ธ์ค๊ฑฐ๋, ์บ์ฑ, ๊ฐ ์ ๋ฐ์ดํธ, ์๋ฌํธ๋ค๋ง ๋ฑ ๋น๋๊ธฐ ๊ณผ์ ์ ์กฐ๊ธ ๋ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ฅผ ๋์ ํ์์ต๋๋ค.
-
Recoil
์ ์ญ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๋ ๋ฆฌ๋์ค์ ๋นํด ์ฝ๋๊ฐ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ธ ๋ก์ง์ ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ, ๋ฆฌ์กํธ ์ฟผ๋ฆฌ์๋ ํธํ์ฑ ๋ฐ ์ ๊ทผ์ฑ์ด ๋ฐ์ด๋ ๋ฆฌ์ฝ์ผ์ ์ฑํํ์์ต๋๋ค.
-
Tailwind
๋ํ ์์ฐ์ ์ธ ๋์์ธ ์์คํ ๊ตฌ์ถ์ ์ํ์ฌ ์ฝ๋์ ์ ์ง๋ณด์์ ๋ฐ์ด๋๊ณ ๋์์ธํด์ธ ํผ๊ทธ๋ง์๋ ์ ๋ง๋ ํ๋ ์์ํฌ์ธ ํ ์ผ์๋๋ฅผ ๋์ ํ์์ต๋๋ค.
-
WebSocket, Stomp
์๋ฒ์ ์ด๋ฒคํธ๋ฅผ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด๋ ๋ฐฉ๋ฒ ์ค์ ์๋ฒ์ ๋ถํ๊ฐ ๋ ์ค๊ฒ๋ ์๋ฐฉํฅ ํต์ ์ด ๊ฐ๋ฅํ websocket์ ์ฌ์ฉํ์ต๋๋ค. ์ฑํ ๊ธฐ๋ฅ์ ์ํด์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ stomp๋ฅผ ์ด์ฉํด topic์ ์์ฑํ๋๋ก ํ์ต๋๋ค.
-
Redis
๋น๋๊ธฐ ํต์ ์ ํ๋ ์ฑํ ๊ตฌํ์ ์ํด ๋ฉ์์ง ๋ธ๋ก์ปค๋ก๋ ๋ ๋์ค๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ง ๋ฉ์์ง ๋ธ๋ก์ปค ์ค์ ๋ ๋์ค๋ฅผ ์ ํํ ์ด์ ๋ Pub-sub๊ตฌ์กฐ์ฌ์ ์ผ๋์ผ ์ผ๋๋ค ํํ๊ฐ ๋ชจ๋ ๊ฐ๋ฅํ๊ณ Key-Value๋ฅผ ์ฌ์ฉํ๋ In-Memory ๋ฐ์ดํฐ ์ ์ฅ์์ด๊ธฐ ๋๋ฌธ์ ๋จ๊ธฐ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์๋ ๋งค์ฐ ๋น ๋ฅผ ๊ฒ์ด๋ผ๊ณ ํ๋จํ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
-
Oauth2
๋ก๊ทธ์ธ์ ๊ตฌํํ ๋ ์ผ๋ฐ๋ก๊ทธ์ธ์ ์ ์ ๋ค์ ํธ์์ฑ์ ๋จ์ด๋จ๋ฆฐ๋ค๊ณ ์๊ฐํ์ฌ ์์ ๋ก๊ทธ์ธ ์ฒ๋ฆฌ๋ฐฉ์์ผ๋ก ํธ์์ฑ์ ํฅ์ํ๊ณ ์ ํ์์ต๋๋ค. ์์ ๋ก๊ทธ์ธ ์ค, ๊ฐ์ฅ ๋ณดํธ์ ์ธ ์นด์นด์ค, ๊ตฌ๊ธ ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์ ๋ฐ์ดํ ์ฑ์ด๊ธฐ ๋๋ฌธ์ ๊นํ๋ธ๊น์ง ์ ํํ๊ฒ๋์์ต๋๋ค.
์คํ๊ณผ ์ง์ญ ๋ฑ ์ด์ฉ์์ ์ทจํฅ ๋ณ ๊ฐ๋ฐ์ ์ถ์ฒ
๋ง์ ๋๋ ๊ฐ๋ฐ์์๊ฒ ์ข์์
์ํธ ์ข์์ ์ผ ๊ฒฝ์ฐ ์ฑํ ๋ฐฉ ์์ฑ
์ค์๊ฐ ์ฑํ ์ผ๋ก ์๋์์ ๋ํ
-
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"๋ฅผ ํตํด ํ๊ตญ ๊ธฐ์ค์ผ๋ก ๋ฐ๊พธ์ด ํด๊ฒฐํ์์ต๋๋ค.





