Skip to content

KTB-Sixmen/gitfolio_back_spring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

362 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๊นƒํ—ˆ๋ธŒ๋กœ ์™„์„ฑํ•˜๋Š” ๋‚˜๋งŒ์˜ ์ด๋ ฅ์„œ, Gitfolio



๐Ÿ“ฝ๏ธ ์‹œ์—ฐ ์˜์ƒ

https://www.youtube.com/watch?v=Y-kImm8S-58


๐Ÿ”– ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • ์ฃผ์ œ : GitHub ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•œ LLM ๊ธฐ๋ฐ˜ ์ด๋ ฅ์„œ ์ž๋™ ์ƒ์„ฑ ์„œ๋น„์Šค
  • ๋Œ€์ƒ : ์ด๋ ฅ์„œ ์ž‘์„ฑ์— ์–ด๋ ค์›€์„ ๋А๋ผ๋Š” ์˜ˆ๋น„ ๊ฐœ๋ฐœ์ž

๐ŸŽฏ ๋ชฉํ‘œ

  • AI ๊ธฐ๋ฐ˜ ์ด๋ ฅ์„œ ์ƒ์„ฑ ๋ฐ ์ˆ˜์ •: ์‚ฌ์šฉ์ž์˜ GitHub ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์‹ค์ œ ๊ธฐ์—…์— ์ œ์ถœ ๊ฐ€๋Šฅํ•œ ์ด๋ ฅ์„œ๋ฅผ AI์™€ ํ•จ๊ป˜ ์†์‰ฝ๊ฒŒ ์ œ์ž‘ ๋ฐ ์ˆ˜์ •
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™˜๊ฒฝ ์ œ๊ณต: ์‚ฌ์šฉ์ž ๊ฐ„ ์ด๋ ฅ์„œ๋ฅผ ๊ณต์œ ํ•˜๊ณ , ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ˜‘๋ ฅ์˜ ์žฅ ์ œ๊ณต

๐Ÿ“š ๊ธฐ์ˆ  ์Šคํƒ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-25 12 32 20

๐ŸŒ ์„œ๋ฒ„ ์•„ํ‚คํ…์ณ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-27 00 24 13

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

1๏ธโƒฃ ํšŒ์› ๋ฐ ์ธ์ฆ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

  • GitHub ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ํ†ตํ•ด ํšŒ์› ๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ํšŒ์› ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2๏ธโƒฃ ์ด๋ ฅ์„œ ์ƒ์„ฑ ๋ฐ ์ˆ˜์ •

  • ์‚ฌ์šฉ์ž์˜ GitHub ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•ด AI๊ฐ€ ์ด๋ ฅ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค.
  • ์ด๋ ฅ์„œ๋Š” 3๊ฐ€์ง€์˜ ํ…œํ”Œ๋ฆฟ ์ค‘ 1๊ฐœ๋ฅผ ๊ณจ๋ผ ํ•ด๋‹น ํ˜•์‹์œผ๋กœ ์ด๋ ฅ์„œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์„ ์‚ฌ์šฉ์ž๊ฐ€ ๋“œ๋ž˜๊ทธ ํ•˜๊ณ  ์š”์ฒญ์‚ฌํ•ญ์„ ์ž…๋ ฅํ•˜๋ฉด AI๊ฐ€ ์ด๋ ฅ์„œ๋ฅผ ์ˆ˜์ •ํ•ด์ค๋‹ˆ๋‹ค.
  • ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์™„์„ฑ๋œ ์ด๋ ฅ์„œ๋Š” PDF ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ ์ปค๋ฎค๋‹ˆํ‹ฐ

  • ์ด๋ ฅ์„œ ํ—ˆ๋ธŒ์—์„œ ์‚ฌ์šฉ์ž๋“ค์€ ์ด๋ ฅ์„œ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ด€์‹ฌ ์žˆ๋Š” ์ด๋ ฅ์„œ๋Š” ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅผ ์ˆ˜ ์žˆ๊ณ , ์ข‹์•„์š” ๋ˆ„๋ฅธ ์ด๋ ฅ์„œ๋งŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ง๊ตฐ, ํ•™๋ ฅ, ์กฐํšŒ์ˆ˜ ์ˆœ, ์ข‹์•„์š” ์ˆœ ๋“ฑ ๋‹ค์–‘ํ•œ ํ•„ํ„ฐ๋กœ ์ด๋ ฅ์„œ๋“ค์„ ์กฐํšŒํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4๏ธโƒฃ ๊ฒฐ์ œ

  • ์นด์นด์˜คํŽ˜์ด API๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ์ •๊ธฐ ๊ฒฐ์ œ๋ฅผ ์ง„ํ–‰ํ•ด PRO ํ”Œ๋žœ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • FREE ํ”Œ๋žœ ์‚ฌ์šฉ์ž๋Š” ํ•˜๋ฃจ์— 3ํšŒ์˜ ์‚ฌ์šฉ๊ถŒ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๋ช‡๊ฐ€์ง€ ์ œ์•ฝ์‚ฌํ•ญ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋งค์ผ ์ž์ •์— ๋ฐฑ์—”๋“œ์—์„œ๋Š” ๋ฐฐ์น˜์ž‘์—…์„ ํ†ตํ•ด ๋งŒ๋ฃŒ๋œ ๊ฒฐ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , FREE ํ”Œ๋žœ ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ๊ถŒ์„ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒˆ ๊ฐœ์„  ์‚ฌํ•ญ

1๏ธโƒฃ ๋ฐฐ์น˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” - ์‹คํ–‰ ์‹œ๊ฐ„ ์•ฝ 84% ๊ฐ์†Œ


๋ฌธ์ œ ์ƒํ™ฉ

  • ์ •๊ธฐ ๊ฒฐ์ œ ๋ฐ ์‚ฌ์šฉ๊ถŒ ์ดˆ๊ธฐํ™”๋ฅผ ๋ฐฐ์น˜๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ํ˜„์žฌ๋Š” ๋ฐฐ์น˜ ๋กœ์ง๋„ ์—„์ฒญ ๋ณต์žกํ•˜์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ ์–‘๋„ ๋งŽ์ง€ ์•Š์ง€๋งŒ, ๋‚˜์ค‘์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๊ฒŒ๋  ๊ฒฝ์šฐ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์šฐ๋ ค๋จ

1. ์ˆœ์ฐจ์ฒ˜๋ฆฌ โ†’ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ

  • ๊ธฐ์กด์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๋˜ ์ž‘์—…์„ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌ
  • ์„ฑ๋Šฅ ๊ฐœ์„ ์€ ํ™•์‹คํžˆ ๋์ง€๋งŒ, ๋กœ๊ทธ์— ๊ฐ๊ฐ์˜ update ์ฟผ๋ฆฌ๊ฐ€ ๊ฐœ๋ณ„์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธ

2. JPA โ†’ JDBC ์ „ํ™˜

  • ์ฟผ๋ฆฌ๊ฐ€ ๊ฐœ๋ณ„์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉด์„œ ๋ฐฐ์น˜๋กœ ์ผ๊ด„์ฒ˜๋ฆฌ ํ•˜๋Š”๊ฒƒ์˜ ์ด์ ์„ ์ „ํ˜€ ์‚ด๋ฆฌ์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํŒ๋‹จ
  • JPA์˜ ๊ฐ์ฒด ๋งคํ•‘ ๊ธฐ๋Šฅ์ด ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ธด ํ•˜๋‚˜, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ, ๋ณ€๊ฒฝ ๊ฐ์ง€ ๋“ฑ์˜ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜์ง€ ์•Š๊ณ , ์˜คํžˆ๋ ค ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•ด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ
  • ๊ธฐ์กด JpaItemWriter์„ JdbcBatchItemWriter๋กœ ๋ณ€๊ฒฝํ•ด ์„ค์ •ํ•ด๋‘” Chunk Size๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ˜์˜ํ•ด Batch Update๊ฐ€ ๋˜๋„๋ก ์ˆ˜์ •ํ•ด ์„ฑ๋Šฅ์„ ๊ฐœ์„ 

๊ฒฐ๊ณผ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-17 15 33 20

2๏ธโƒฃ ์•Œ๋ฆผ ๋ชจ๋“ˆ ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ฐœ์„  - TPS ์•ฝ 2๋ฐฐ ํ–ฅ์ƒ


๋ฌธ์ œ ์ƒํ™ฉ

  • Resume ๋ชจ๋“ˆ์—์„œ ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜, ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ, Notification ๋ชจ๋“ˆ๋กœ ์•Œ๋ฆผ ์ƒ์„ฑ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š”๋ฐ, ๋™๊ธฐ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋‹ค ๋ณด๋‹ˆ ์š”์ฒญ์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์‘๋‹ต์†๋„์™€ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ €ํ•˜๋จ
  • ์•Œ๋ฆผ ์‹œ์Šคํ…œ ํŠน์„ฑ์ƒ ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž์™€ ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•ด์•ผํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š”๋ฐ, ๊ธฐ์กด ๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ๋Š” ๊ฐ๋‹นํ•  ์ˆ˜ ์—†์„ ๊ฒƒ ๊ฐ™์•„ ํ…Œ์ŠคํŠธ ์ง„ํ–‰

JMeter ์“ฐ๋ ˆ๋“œ ๊ทธ๋ฃน ์„ค์ •
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-03 16 35 00


1. WebClient(blocking)

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-03 16 37 00 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-03 16 35 32

ํ‰๊ท  ์‘๋‹ต์†๋„ : 1304ms
99% ์„  (์ตœ์•…์˜ ๊ฒฝ์šฐ) : 4155ms
TPS : 365.4/sec


2. WebClient(non-blocking)

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-03 16 52 31 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-03 16 52 44

ํ‰๊ท  ์‘๋‹ต์†๋„ : 987ms
99% ์„  (์ตœ์•…์˜ ๊ฒฝ์šฐ) : 4162ms
TPS : 477.8/sec


3. Kafka

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-03 16 47 37 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-03 16 48 15

ํ‰๊ท  ์‘๋‹ต์†๋„ : 608ms
99% ์„  (์ตœ์•…์˜ ๊ฒฝ์šฐ) : 2245ms
TPS : 761.3/sec


๊ฒฐ๋ก  แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-27 00 14 59

ํ™•์žฅ์„ฑ ์ธก๋ฉด์—์„œ๋Š” Kafka๊ฐ€ ํ›จ์”ฌ ๋” ์ข‹์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋‚˜, ํŠธ๋ž˜ํ”ฝ์ด ์—„์ฒญ๋‚˜๊ฒŒ ๋ชฐ๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ๋น„์šฉ์ ์ธ ์ธก๋ฉด์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค๋ฉด WebClient ๋น„๋™๊ธฐ ์š”์ฒญ๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™์Œ



3๏ธโƒฃ GitHub API๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋ชฉ๋ก ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„  - ์‘๋‹ต์†๋„ ์•ฝ 60๋ฐฐ ๊ฐœ์„ 


๋ฌธ์ œ ์ƒํ™ฉ

  • GitHub API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์ธ๋ฐ ์‘๋‹ต์‹œ๊ฐ„์ด ์ƒ๋‹นํžˆ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋˜ ์ƒํ™ฉ
  • ์ฒ˜์Œ ํšŒ์› ๊ฐ€์ž…ํ•œ ํšŒ์›์ธ ๊ฒฝ์šฐ, ์˜จ๋ณด๋”ฉ ํŽ˜์ด์ง€์—์„œ ๋‹ค๋ฅธ ์ž…๋ ฅ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  ์žˆ์„ ๋•Œ ๋ฏธ๋ฆฌ ํ˜ธ์ถœํ•ด ๋†“๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์—†์—ˆ์Œ
  • ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ "์ƒˆ ์ด๋ ฅ์„œ ๋งŒ๋“ค๊ธฐ"๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์กฐํšŒํ•˜๋Š”๋ฐ ์•ฝ 3~4์ดˆ์˜ ์‹œ๊ฐ„์„ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒ
  • ๊ทธ๋Ÿฌ๋‚˜, ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ์†Œ์š”๋˜๋Š” ๋ถ€๋ถ„์ด GitHub API์˜€๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๋กœ์ง์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐœ์„ ํ•  ์ˆ˜ ์—†์Œ

๋ฌธ์ œ ํ•ด๊ฒฐ

  • ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋ชฉ๋ก์€ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ์ ๊ณ , ์งง์€ ์‹œ๊ฐ„ ์‚ฌ์ด์— ์ด๋ ฅ์„œ์— ๋„ฃ์„ ์ •๋„์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํŒ๋‹จ
  • ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹ฑํ•ด๋†“๊ณ  ์“ด๋‹ค๋ฉด ์ด์ ์ด ๋งค์šฐ ํด ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ
  • 1์‹œ๊ฐ„์ •๋„ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ Redis์— ์บ์‹ฑํ•˜๋ฏ€๋กœ ์ฒซ ์š”์ฒญ ๋ง๊ณ ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ์—†๋„๋ก ๊ฐœ์„ 

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-27 00 16 42

4๏ธโƒฃ ๊ฒ€์ƒ‰ ํ•„ํ„ฐ ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„  - ์•ฝ 55.4% ๊ฐœ์„ 

  • ์บ์‹ฑ ์‹œ๋„
    • ํ•„ํ„ฐ ์ž์ฒด๋ฅผ ์บ์‹ฑํ•˜์ž๋‹ˆ Cache Hit ํ™•๋ฅ ์ด ๋„ˆ๋ฌด ๋‚ฎ์•„ ์„ฑ๋Šฅ ๊ฐœ์„ ์ด ์•ˆ๋จ
    • ๊ฐ ์ด๋ ฅ์„œ ์ •๋ณด๋ฅผ ์บ์‹ฑํ•ด๋ดค์œผ๋‚˜, ํ•„ํ„ฐ ๊ฒ€์ƒ‰์—์„œ ์ฟผ๋ฆฌ ์ƒ์„ฑํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์„ฑ๋Šฅ์ด ๋งค์šฐ ์ €ํ•˜๋˜๋Š” ๊ฒƒ์ด๋ผ ๊ฐœ์„  ๋ถˆ๊ฐ€
  • ํ•„ํ„ฐ ๊ฒ€์ƒ‰ ๋กœ์ง ์ž์ฒด๋ฅผ ์ตœ์ ํ™” ์‹œ๋„
    • ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๋ณด๋‹ˆ regex๋ฅผ ์“ฐ๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜๋Š”๋ฐ ํ•ด๋‹น ๋ฐฉ์‹์€ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์Šค์บ”ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ๊ฒƒ ํ™•์ธ
    • regex๋ฅผ is๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , ๋ฐฐ์—ด ๋‚ด ๊ฐœ๋ณ„ ์š”์†Œ์— ๋Œ€ํ•ด ๋น„๊ตํ•  ๋•Œ elemMatch๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ•ด ์ผ์น˜ ํ•ญ๋ชฉ์„ ์ฐพ์œผ๋ฉด ์Šค์บ”์„ ์ค‘๋‹จํ•˜๋„๋ก ๊ฐœ์„ 
    • ๋ถˆํ•„์š”ํ•œ ์ฟผ๋ฆฌ ์กฐ๊ฑด ์ œ๊ฑฐ ๋ฐ ๋‹จ์ˆœํ™”

<๊ฐœ์„  ์ „> แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-11-12 11 06 11 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-11-12 11 55 36 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-11-12 13 30 15

<๊ฐœ์„  ํ›„> แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-11-12 13 56 30 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-11-12 11 53 50 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-11-12 13 53 27



๐Ÿš€ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

1๏ธโƒฃ ์กฐํšŒ์ˆ˜ ์ง‘๊ณ„ ๊ตฌํ˜„์‹œ ๋™์ผ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจํ•  ๋•Œ๋งˆ๋‹ค ๊ณ„์†ํ•ด์„œ ์กฐํšŒ์ˆ˜๊ฐ€ ์ฆ๊ฐ€

  • ํŠน์ •ํ•œ ์กฐ๊ฑด ์—†์ด ํ•ด๋‹น ์ด๋ ฅ์„œ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋งˆ๋‹ค ์กฐํšŒ์ˆ˜๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์€ ์กฐํšŒ์ˆ˜ ์ •๋ณด์˜ ์‹ ๋ขฐ์„ฑ์„ ๋–จ์–ด๋œจ๋ฆด ์ˆ˜ ์žˆ๋‹ค๊ณ  ํŒ๋‹จ
  • Redis์— ์ด๋ ฅ์„œ ID์™€ ์‚ฌ์šฉ์ž IP ์ฃผ์†Œ๋ฅผ ํ•ฉ์นœ ๋ฌธ์ž์—ด์„ 1์‹œ๊ฐ„ ๋™์•ˆ ์ €์žฅํ•˜๋„๋ก ์„ค์ •ํ•ด ํ•ด๊ฒฐ
    • ์ฒ˜์Œ ์ด๋ ฅ์„œ๋ฅผ ์กฐํšŒํ•œ ๊ฒฝ์šฐ ์กฐํšŒ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜์ง€๋งŒ ๊ทธ ์ดํ›„ 1์‹œ๊ฐ„ ๋™์•ˆ์€ ๋™์ผ ์ด๋ ฅ์„œ๋ฅผ ์กฐํšŒํ•ด๋„ ์กฐํšŒ์ˆ˜ ์ง‘๊ณ„๋˜์ง€ ์•Š์Œ
    • Redis์˜ TTL์„ค์ •์„ ํ†ตํ•ด ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

2๏ธโƒฃ MongoDB์—์„œ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ ์šฉ์‹œ 10๋งŒ๊ฑด ๋ฐ์ดํ„ฐ ๊ธฐ์ค€ ์ด 8000 ํŽ˜์ด์ง€์—์„œ ์•ฝ 4000 ํŽ˜์ด์ง€๋ถ€ํ„ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ ์—๋Ÿฌ ๋ฐœ์ƒ

  • MongoDB๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฟผ๋ฆฌ๋‚˜ ์ง‘๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ ์ˆ˜ํ–‰์‹œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ๋งŒ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธ
  • ์ด ๊ณผ์ •์—์„œ ๋Œ€๋Ÿ‰์˜ ๋ฌธ์„œ๋ฅผ ์ •๋ ฌํ•˜๊ณ  ์ง‘๊ณ„ํ•˜๋‹ค๋ณด๋‹ˆ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ดˆ๊ณผํ•ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋˜ ๊ฒƒ
    • ํŠนํžˆ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ์‹œ ์ „์ฒด ํŽ˜์ด์ง€์™€ ์ „์ฒด ๋ฌธ์„œ ๊ฐœ์ˆ˜ ์ง‘๊ณ„ ๊ณผ์ •์—์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ดˆ๊ณผ๋จ
  • allowDiskUse(true) ์„ค์ •์„ ํ†ตํ•ด ๋””์Šคํฌ๋ฅผ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉํ•ด ์—ฐ์‚ฐ์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ด ํ•ด๊ฒฐ

3๏ธโƒฃ ๋ฐฐ์น˜ ์ž‘์—… ์‹œ Kafka์™€ Spring Batch์˜ ํŠธ๋žœ์žญ์…˜ ์ถฉ๋Œ ๋ฌธ์ œ ๋ฐœ์ƒ

  • Payment ๋ชจ๋“ˆ์˜ ๋ฐฐ์น˜์ž‘์—…๊ณผ Member ๋ชจ๋“ˆ์˜ ๋ฐฐ์น˜์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ
    • Payment ๋ชจ๋“ˆ์˜ ์ž‘์—… ์™„๋ฃŒ ์ด๋ฒคํŠธ๋ฅผ Kafka๋ฅผ ํ†ตํ•ด ๋ฐ›์œผ๋ฉด Member ๋ชจ๋“ˆ์ด ์ž‘์—…์„ ์‹œ์ž‘
    • ๊ทธ๋Ÿฌ๋‚˜ Kafka์˜ ํŠธ๋žœ์žญ์…˜๊ณผ Spring Batch์˜ ํŠธ๋žœ์žญ์…˜์ด ์ถฉ๋Œํ•˜๋ฉด์„œ ๋ฐฐ์น˜์ž‘์—…์ด ์‹คํŒจ
  • Kafka ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ Transactional ์„ค์ •์„ Propagation.NOT_SUPPORTED ๋กœ ์„ค์ •ํ•ด ๊ธฐ์กด์— ์ƒ์„ฑ๋œ ํŠธ๋žœ์žญ์…˜์ด ์žˆ๋“  ์—†์€ ํŠธ๋žœ์žญ์…˜ ์—†์ด ์ง„ํ–‰ํ•˜๋„๋ก ์„ค์ •
  • Batch Job์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๋กœ์ง์„ ๋ณ„๋„์˜ ๋ฉ”์„œ๋“œ๋กœ ๋นผ๊ณ , Propagation.REQUIRES_NEW ๋กœ ์„ค์ •ํ•˜์—ฌ ์ƒˆ๋กœ์šด ํŠธ๋žœ์žญ์…˜์—์„œ ์‹คํ–‰ํ•˜๋„๋ก ์„ค์ •ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages