๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

TIL, WIL/TIL๐Ÿ“˜

03. 31 TIL

728x90

๋ฐ์ผ๋ฆฌ ๊ณผ์ œ

  • ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

-> ํ”„๋กœ์„ธ์Šค๋ž€ ์ปดํ“จํ„ฐ์—์„œ ์—ฐ์†์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด ์ž‘์—…์‹คํ–‰ ๋‹จ์œ„๋กœ์จ, ํ”„๋กœ์„ธ์Šค๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค์™€ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ ๊ฐ๊ฐ์˜ ์ฝ”๋“œ/๋ฐ์ดํ„ฐ/์Šคํƒ/ํž™์„ ํ• ๋‹น๋ฐ›๊ฒŒ ๋˜๊ณ , ์Šค๋ ˆ๋“œ๋Š” ์Šคํƒ๋งŒ ๋ณ„๋„๋กœ ํ• ๋‹น๋ฐ›๊ณ , ๊ทธ์™ธ ๋‚˜๋จธ์ง€ ์˜์—ญ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์Šค๋ ˆ๋“œ ํ•˜๋‚˜์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋„ ๋ชจ๋‘ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์˜ ๊ฒฝ์šฐ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†์–ด ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฝ ๋ฐ ๋ฎคํ…์Šค, ์„ธ๋งˆํฌ์–ด ๋“ฑ์˜ ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ™œ์šฉํ•ด ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ๊ณต์œ  ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋„๋ก ๋งŒ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

+ ์Šค๋ ˆ๋“œ ๊ณต์œ ์ž์›์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• : 

 

  • @SpringBootTest์™€ @WebMvcTest์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

-> ๋‘ ์–ด๋…ธํ…Œ์ด์…˜์€ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Spring ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

@SpringBootTest๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์ปจํ…์ŠคํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋™์ž‘์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, ์„œ๋น„์Šค, ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ์›น ์‹œํ๋ฆฌํ‹ฐ ์„ค์ • ๋“ฑ ๋ชจ๋“  ๊ณ„์ธต๊ณผ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•ด ์ „์ฒด ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๋Š” ๋Š๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@WebMvcTest๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ๋ ˆ์ด์–ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋งŒ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ์ปจํ…์ŠคํŠธ๋Š” ๋ถˆ๋Ÿฌ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธ ์„ฑ๋Šฅ์€ ์ข€ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. 

 

 

N+1

(1) ์ง€์—ฐ๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ : @OneToMany ์ƒํ™ฉ์—์„œ

(2) Join Fetch ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค ~ ์ง„์งœ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ ์กฐํšŒ

* ์ฆ‰์‹œ ๋กœ๋”ฉ vs Join Fetch ์ฟผ๋ฆฌ ๋น„๊ต

(3) @BatchSize ์‚ฌ์šฉ

๊ฒฐ๋ก  : ์ง€์—ฐ๋กœ๋”ฉ์— ํŽ˜์น˜์กฐ์ธ์„ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ด๋‹ค

์ฝ์–ด๋ณด๊ธฐ:

https://joont92.github.io/jpa/JPA-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94/

 

[jpa] JPA ์„ฑ๋Šฅ ์ตœ์ ํ™”

N+1 ๋ฌธ์ œ ์„ฑ๋Šฅ์ƒ ๊ฐ€์žฅ ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š”๊ฒƒ์ด ์ด N+1 ๋ฌธ์ œ์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. 1234567891011121314151617@Entityclass Member{ @Id @GeneratedValue private Long id; @OneToMany(mappedBy = "member", fetch = Fet

joont92.github.io

https://velog.io/@solchan/%EB%B0%B1%EC%97%85-Refresh-Token-%EB%B0%9C%EA%B8%89%EA%B3%BC-Access-Token-%EC%9E%AC%EB%B0%9C%EA%B8%89

 

[๋ฐฑ์—…] Refresh Token ๋ฐœ๊ธ‰๊ณผ Access Token ์žฌ๋ฐœ๊ธ‰

[๋ฐฑ์—…] Refresh Token ๋ฐœ๊ธ‰๊ณผ Access Token ์žฌ๋ฐœ๊ธ‰

velog.io

https://sol-devlog.tistory.com/22

 

Redis๋ฅผ ํ†ตํ•œ JWT Refresh Token ๊ด€๋ฆฌ

๊นƒํ—ˆ๋ธŒ ์ €์žฅ์†Œ GitHub - solchan98/Playground: ๐Ÿ› ๊ฐœ๋ฐœ ๊ณต๋ถ€ ๋†€์ดํ„ฐ ๐Ÿ› ๐Ÿ› ๊ฐœ๋ฐœ ๊ณต๋ถ€ ๋†€์ดํ„ฐ ๐Ÿ›. Contribute to solchan98/Playground development by creating an account on GitHub. github.com +2022-09-28 ์ƒˆ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

sol-devlog.tistory.com

 

728x90

'TIL, WIL > TIL๐Ÿ“˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

04. 04 TIL  (0) 2023.04.04
04. 03 TIL  (0) 2023.04.03
03. 30 TIL  (0) 2023.03.30
03. 29 TIL  (0) 2023.03.29
03.28 TIL  (0) 2023.03.28