Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

254 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ฝ๏ธ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๐Ÿ“ ์•„์ด๋””์–ด ๋ฐฐ๊ฒฝ

๊ธฐํš ๋ฐฐ๊ฒฝ

  1. ์ดˆ๊ธฐ ํŒ€์›๋“ค์˜ ๋‹ค์–‘ํ•œ ๊ด€์‹ฌ์‚ฌ์—์„œ ์ถœ๋ฐœํ•œ ์—ฌ๋Ÿฌ ์•„์ด๋””์–ด :
  • ๊ฐœ์ธ ์ƒํƒœ์— ๋งž์ถ˜ ๊ฑด๊ฐ• ์‹ํ’ˆ ์ถ”์ฒœ ํ”Œ๋žซํผ
  • ๋น„๊ฑด ๋‹จ๊ณ„๋ณ„ ๋Œ€์ฒด ์œก๋ฅ˜ ์†Œ๊ฐœ ํ”Œ๋žซํผ
  • ํผ์Šค๋„ ์ปฌ๋Ÿฌ์— ๋”ฐ๋ฅธ ๋งž์ถค ์ƒํ’ˆ ์ถ”์ฒœ ํ”Œ๋žซํผ
  • ๋ฐ˜๋ ค๋™๋ฌผ ์†Œ๊ฐœํŒ… ํ”Œ๋žซํผ
  • ์นตํ…Œ์ผ ๋ ˆ์‹œํ”ผ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ํ”Œ๋žซํผ
  1. ์นตํ…Œ์ผ ์„œ๋น„์Šค ํ”Œ๋žซํผ ์„ ์ • ์ด์œ 
  • ์ ‘๊ทผ์ด ์šฉ์ดํ•œ ๋ฐ์ดํ„ฐ
  • AWS๋ฅผ ํ™œ์šฉํ•œ ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค์™€์˜ ์—ฐ๊ณ„ ๊ฐ€๋Šฅ์„ฑ
  • ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๊ธฐ์ˆ  ํ™œ์šฉ ๊ธฐํšŒ
  • ์œ ์‚ฌ ์„œ๋น„์Šค ๋ถ€์กฑ์œผ๋กœ ์ฐจ๋ณ„ํ™” ๊ฐ€๋Šฅ
  • ๋‹ค์–‘ํ•œ API์™€์˜ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅ์„ฑ

์ œํ•œ์‚ฌํ•ญ

  • ๊ฐœ์ธ ์˜ํ•™ ์ •๋ณด ํ™œ์šฉ ๋ถˆ๊ฐ€
  • ์ถ”์ฒœ ์ƒํ’ˆ์˜ ๋ฒ”์œ„๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๊ด‘๋ฒ”์œ„ํ•จ
  • ๊ธฐ์กด ์„œ๋น„์Šค ์•„์ด๋””์–ด์˜ ํฅ๋ฏธ ์œ ๋ฐœ ํ•œ๊ณ„
  • ๋ฌธํ™”์  ์ œํ•œ์  ๊ณ ๋ ค ํ•„์š”

๐Ÿ“„ ์•„์ด๋””์–ด ์„ค๋ช…

์„œ๋น„์Šค ๊ฐœ์š”

๊ฑด์ „ํ•œ ์Œ์ฃผ ๋ฌธํ™”๋ฅผ ์กฐ์„ฑํ•˜๊ณ , ๊ฐœ์ธ์˜ ์ทจํ–ฅ์— ๋งž์ถ˜ ์นตํ…Œ์ผ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์Œ์ฃผ ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๋Š” ํ”Œ๋žซํผ.
์ถ”๊ฐ€์ ์œผ๋กœ ์ฃผ๋ฅ˜ ๋ฐ ์Œ๋ฃŒ ์—…๊ณ„ ์ข…์‚ฌ์ž๋“ค์—๊ฒŒ ์œ ์šฉํ•œ ์ •๋ณด์™€ ๋งˆ์ผ€ํŒ… ํ”Œ๋žซํผ ์ œ๊ณต.

์ฃผ์š” ๊ธฐ๋Šฅ

  1. ์นตํ…Œ์ผ ๋ ˆ์‹œํ”ผ ์กฐํšŒ ๋ฐ ์ž…๋ ฅ

    • ๊ธฐ์กด ์นตํ…Œ์ผ ๋ ˆ์‹œํ”ผ ์ƒ์„ธ ์กฐํšŒ
    • ์‚ฌ์šฉ์ž ์ฐฝ์ž‘ ๋ ˆ์‹œํ”ผ ์ž…๋ ฅ ๋ฐ ๊ณต์œ 
  2. ๋งž์ถคํ˜• ์นตํ…Œ์ผ ์ถ”์ฒœ

    • ์œ„์น˜, ๋‚ ์”จ, ๊ณ„์ ˆ ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ์ธํ™”๋œ ์ถ”์ฒœ ์ œ๊ณต
    • ํ–ฅํ›„ MBTI, ํผ์Šค๋„์ปฌ๋Ÿฌ ํ™œ์šฉ ์ถ”์ฒœ ๊ธฐ๋Šฅ ๋„์ž… ๊ณ„ํš
  3. ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ

    • ์ข‹์•„์š”, ํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ์œผ๋กœ ์‚ฌ์šฉ์ž ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ์ด‰์ง„
    • ๋ ˆ์‹œํ”ผ ๊ณต์œ  ๋ฐ ํ‰๊ฐ€ ํ”Œ๋žซํผ
  4. ์ƒ์„ธ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ

    • ์žฌ๋ฃŒ, ์ˆ ์ž” ์ข…๋ฅ˜, ์นตํ…Œ์ผ ํƒ€์ž… ๋“ฑ ์นดํ…Œ๊ณ ๋ฆฌ ๊ฒ€์ƒ‰
  5. ์‚ฌ์šฉ์ž ์นœํ™”์  ์ธํ„ฐํŽ˜์ด์Šค

    • ์ง๊ด€์ ์ธ UI/UX ์ œ๊ณต
  6. ๊ธฐ์ˆ ์  ํŠน์ง•

    • Amazon S3๋ฅผ ํ™œ์šฉํ•œ ์ด๋ฏธ์ง€ ์ €์žฅ
    • MongoDB์™€ MySQL ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
    • ๋„ค์ด๋ฒ„ ๋ฐ์ดํ„ฐ๋žฉ API๋ฅผ ํ†ตํ•œ ์ธ๊ธฐ ์นตํ…Œ์ผ ๋ถ„์„
    • ์œ„์น˜ ๋ฐ ๋‚ ์”จ API ํ™œ์šฉ

๐Ÿš€ ๊ธฐ๋Œ€ ํšจ๊ณผ

  1. ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ ์ฆ๋Œ€

    • ๋‹ค์–‘ํ•œ ๋ ˆ์‹œํ”ผ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰
    • ์ปค์Šคํ…€ ๋ ˆ์‹œํ”ผ ์ž…๋ ฅ ๋ฐ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
    • ์ข‹์•„์š”์™€ ํŒ”๋กœ์šฐ๋ฅผ ํ†ตํ•ด ์„ ํ˜ธ ์ฝ˜ํ…์ธ  ์ถ”์ 
  2. ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™œ์„ฑํ™”

    • ์‚ฌ์šฉ์ž ๊ฐ„ ์ปค์Šคํ…€ ๋ ˆ์‹œํ”ผ ๊ณต์œ  ๋ฐ ์†Œํ†ต ๊ฐ•ํ™”
    • ๊ด€์‹ฌ ๋ถ„์•ผ๊ฐ€ ์œ ์‚ฌํ•œ ์‚ฌ์šฉ์ž ๋„คํŠธ์›Œํ‚น
  3. ๊ฐœ์ธํ™”๋œ ๊ฒฝํ—˜ ์ œ๊ณต

    • ์ข‹์•„์š” ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•œ ๋งž์ถคํ˜• ์ถ”์ฒœ
    • ๊ฐœ์ธํ™”๋œ ๋ ˆ์‹œํ”ผ ํ”ผ๋“œ๋กœ ๋†’์€ ๋งŒ์กฑ๋„ ์œ ๋„
  4. ์ฝ˜ํ…์ธ  ํ’ˆ์งˆ ํ–ฅ์ƒ

    • ์ข‹์•„์š” ๋ฐ ํŒ”๋กœ์›Œ ์ˆ˜ ๊ธฐ๋ฐ˜ ๋ ˆ์‹œํ”ผ ํ’ˆ์งˆ ํ‰๊ฐ€
    • ์ธ๊ธฐ ์ฝ˜ํ…์ธ  ์šฐ์„  ๋…ธ์ถœ

๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

  • Spring Security : ์ธ์ฆ ๋ฐ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ
  • Spring Boot : ํ™•์žฅ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ ๊ณ ๋ ค
  • JPA : ๊ฐ์ฒด์ง€ํ–ฅ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ
  • Redis : ํ‚ค-๊ฐ’ ์ €์žฅ์œผ๋กœ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ฒ˜๋ฆฌ
  • MySQL & MongoDB : ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ์œ ์—ฐ์„ฑ
  • JWT: Spring Security์™€ ํ†ตํ•ฉ๋œ ์ธ์ฆ
  • OAuth 2.0 : ์†Œ์…œ ๋กœ๊ทธ์ธ ๋ฐ ๋ณด์•ˆ ๊ฐ•ํ™”
  • Docker : ๊ฒฝ๋Ÿ‰ ๊ฐ€์ƒํ™”๋กœ ํ™˜๊ฒฝ ์„ค์ • ๋‹จ์ˆœํ™”
  • Gradle : ์œ ์—ฐํ•œ ์˜์กด์„ฑ ๊ด€๋ฆฌ

๐Ÿ“ฒ CI/CD ๋ฐ ๋ฐฐํฌ

  • GitHub: ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ํ˜‘์—…
  • GitHub Actions: ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”
  • AWS: ์„œ๋ฒ„ ๋ฐฐํฌ ๋ฐ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํ™œ์šฉ

โŒจ๏ธ ๊ฐœ๋ฐœ ๋„๊ตฌ

  • IntelliJ IDEA: ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ๋ฐ ๊ด€๋ฆฌ
  • Visual Studio Code: ๋ฌธ์„œ ๋ฐ ํ™˜๊ฒฝ ์„ค์ • ํŒŒ์ผ ๊ด€๋ฆฌ
  • Python IDLE: ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

๐Ÿ“ฎ ํ˜‘์—… ๋„๊ตฌ

  • Slack: ์‹ค์‹œ๊ฐ„ ๊ธฐ๋ก ๋ฐ ํ˜‘์—…
  • Discord: ์Œ์„ฑ ๋Œ€ํ™” ๋ฐ ํŒŒ์ผ ๊ณต์œ 
  • Notion: ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ฐ ์„ค๊ณ„ ๊ณต์œ 

๐Ÿ‘ฅ ์—…๋ฌด ๋ถ„๋‹ด

  • ์‹ ํšจ์Šน (PM): JWT ์ธ์ฆ, ์ดˆ๊ธฐ ์„ค์ •, CI/CD
  • ์†์—ฌ์‚ฐ (PS): ์‚ฌ์šฉ์ž ๋ ˆ์‹œํ”ผ, ๊ณตํ†ต ์‘๋‹ต ์ฒ˜๋ฆฌ
  • ๊ฐ•์‹ ์›… (CR): ํšŒ์› ์ •๋ณด ๊ด€๋ฆฌ, ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ
  • ๊น€์˜ํ›ˆ (CM): ๋ฐ์ดํ„ฐ ๋ถ„์„, ๊ธฐ๋ณธ ๋ ˆ์‹œํ”ผ

๐Ÿ“ ๊ทธ๋ผ์šด๋“œ ๋ฃฐ

  • ๋„ค์ด๋ฐ ๊ทœ์น™:
    • Class: PascalCase
    • Variable: camelCase
    • Constant: UPPER_CASE
  • Git ์ „๋žต: GitHub-Flow
  • ๋“ค์—ฌ์“ฐ๊ธฐ: 4 Space

๐Ÿ“š ๋ฌธ์„œ ๊ด€๋ฆฌ

  1. ๊ธฐ์ˆ  ๋ฌธ์„œ: ๋…ธ์…˜์— ๊ธฐ๋ก
  2. ๋ณด๊ณ ์„œ ์ž‘์„ฑ:
    • Slack, GitHub ๊ธฐ๋ก ์ •๋ฆฌ ํ›„ ๋…ธ์…˜์— ์ž‘์„ฑ
    • ์ตœ์ข… ๋ณด๊ณ ์„œ ์ œ์ถœ ๋ฐ ๊ธฐ๋ก ๋ณด๊ด€

๐Ÿ“Š Grafana ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ€์ด๋“œ

์ด ๊ฐ€์ด๋“œ๋Š” Grafana๋ฅผ ์‚ฌ์šฉํ•œ JVM ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ์ฃผ์š” ์ง€ํ‘œ์™€ ํ•ด์„ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

1. โšก Quick Facts (์‹œ์Šคํ…œ ๊ธฐ๋ณธ ์ƒํƒœ ์ง€ํ‘œ)

  • Heap ์˜์—ญ: 70% ์ดํ•˜ ์œ ์ง€ ๊ถŒ์žฅ
  • Non-Heap ์˜์—ญ: 20% ์ดํ•˜ ์œ ์ง€ ๊ถŒ์žฅ

์„ฑ๋Šฅ ์ด์Šˆ ๋ฐœ์ƒ ์‹œ ๊ฐœ์„  ๋ฐฉ์•ˆ:

  • JVM ์ตœ๋Œ€ ํž™ ํฌ๊ธฐ ์ฆ๊ฐ€ ๊ฒ€ํ† 
  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์—ฌ๋ถ€ ํ™•์ธ
  • GC ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ํŒจํ„ด ํŒŒ์•…
  • ํž™ ๋คํ”„ ๋ถ„์„์„ ํ†ตํ•œ ๋ฌธ์ œ ๊ฐ์ฒด ์‹๋ณ„

2. ๐Ÿ’พ JVM ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋‹ˆํ„ฐ๋ง

2.1 ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ ์ง€ํ‘œ

  • Used/Committed ๋น„์œจ: 70% ์ดํ•˜ ์œ ์ง€ ๊ถŒ์žฅ
  • ๊ธ‰๊ฒฉํ•œ ์ฆ๊ฐ€/๊ฐ์†Œ ํŒจํ„ด์ด ์—†๋Š” ์•ˆ์ •์ ์ธ ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ๊ฐ€ ์ด์ƒ์ 

๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ ์ฃผ์˜์ :

  • ์ผ์‹œ์ ์ธ ํ”ผํฌ๋Š” ์ •์ƒ์ผ ์ˆ˜ ์žˆ์œผ๋‚˜, ์ง€์†์ ์ธ ์ฆ๊ฐ€ ํŒจํ„ด์€ ์ฃผ์˜ ํ•„์š”
  • ์ฃผ๊ธฐ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋คํ”„ ๋ถ„์„์œผ๋กœ ์ถ”์ด ๊ด€์ฐฐ ๊ถŒ์žฅ
  • ์—…๋ฌด ์‹œ๊ฐ„๋Œ€๋ณ„ ํŒจํ„ด ๋ถ„์„ ํ•„์š”

2.2 Heap ์˜์—ญ ์ƒ์„ธ

  1. Eden Space

    • ์ƒˆ๋กœ์šด ๊ฐ์ฒด ํ• ๋‹น ์˜์—ญ
    • ๋นˆ๋ฒˆํ•œ GC๋Š” ์ •์ƒ์ ์ธ ํ˜„์ƒ
    • ์ผ์‹œ์ ์ธ ๋†’์€ ์‚ฌ์šฉ๋ฅ  ํ—ˆ์šฉ
    • ๋ชจ๋‹ˆํ„ฐ๋ง ํฌ์ธํŠธ:
      • ๊ฐ์ฒด ์ƒ์„ฑ ์†๋„
      • Minor GC ๋นˆ๋„
      • GC ํ›„ ํšŒ์ˆ˜๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋น„์œจ
  2. Survivor Space

    • Minor GC ํ›„ ์ƒ์กด ๊ฐ์ฒด ๋ณด๊ด€
    • Eden Space์˜ 10-20% ์ˆ˜์ค€์ด ์ •์ƒ
    • ๋น„์ •์ƒ ํŒจํ„ด:
      • Survivor ์˜์—ญ์˜ ๊ธ‰๊ฒฉํ•œ ์ฆ๊ฐ€
      • ๊ณผ๋„ํ•œ ๊ฐ์ฒด ์ด๋™
  3. Tenured Generation (Old Generation)

    • ์žฅ๊ธฐ ์ƒ์กด ๊ฐ์ฒด ๋ณด๊ด€
    • ์‚ฌ์šฉ๋ฅ  70-75% ์ดํ•˜ ์œ ์ง€ ๊ถŒ์žฅ
    • Full GC ํ›„ ์ •์ƒ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ํšŒ์ˆ˜์™€ ์™„๋งŒํ•œ ์ฆ๊ฐ€ ํŒจํ„ด์ด ์ด์ƒ์ 
    • ๋ชจ๋‹ˆํ„ฐ๋ง ํฌ์ธํŠธ:
      • Full GC ๋นˆ๋„
      • GC ํ›„ ๋ฉ”๋ชจ๋ฆฌ ํšŒ์ˆ˜์œจ
      • ๋ฉ”๋ชจ๋ฆฌ ์ฆ๊ฐ€ ์†๋„

2.3 Non-Heap ์˜์—ญ ์ƒ์„ธ

  1. Metaspace

    • ํด๋ž˜์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ
    • ์ดˆ๊ธฐ ๋กœ๋”ฉ ํ›„ ์•ˆ์ •ํ™”๋˜์–ด์•ผ ํ•จ
    • ๊ธ‰๊ฒฉํ•œ ์ฆ๊ฐ€ ํŒจํ„ด์€ ๋น„์ •์ƒ
    • ์ฃผ์˜์‚ฌํ•ญ:
      • ๋™์  ํด๋ž˜์Šค ๋กœ๋”ฉ์ด ๋งŽ์€ ๊ฒฝ์šฐ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ
      • ๋ฉ”๋ชจ๋ฆฌ ๋ฆญ ๊ฐ€๋Šฅ์„ฑ ์ฃผ์‹œ
  2. Compressed Class Space

    • Klass ํฌ์ธํ„ฐ ์ €์žฅ ์˜์—ญ
    • 80% ์ดํ•˜ ์œ ์ง€ ๊ถŒ์žฅ
    • ์•ˆ์ •์ ์ธ ์ˆ˜์ค€ ์œ ์ง€ ํ•„์š”
    • ์ €์žฅ ์ •๋ณด:
      • ํด๋ž˜์Šค ์ด๋ฆ„
      • ์ƒ์† ๊ด€๊ณ„
      • ๋ฉ”์„œ๋“œ ํ…Œ์ด๋ธ”
      • ํ•„๋“œ ์ •๋ณด
      • ์ ‘๊ทผ ์ œ์–ด์ž
      • ์ธํ„ฐํŽ˜์ด์Šค ์ •๋ณด
  3. Code Cache

    • ์„ธ ๊ฐ€์ง€ ์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„:
      • non-nmethods: JVM ์šด์˜์šฉ ๋‚ด๋ถ€ ์ฝ”๋“œ
      • profiled nmethods: ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ์˜ ์ตœ์ ํ™” ์ฝ”๋“œ (Level 1-3)
      • non-profiled nmethods: ๋œ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ์˜ ์ปดํŒŒ์ผ ์ฝ”๋“œ (Level 4)
    • ReservedCodeCacheSize์˜ 80% ์ดํ•˜ ์œ ์ง€ ๊ถŒ์žฅ
    • ๋ชจ๋‹ˆํ„ฐ๋ง ํฌ์ธํŠธ:
      • JIT ์ปดํŒŒ์ผ ๋นˆ๋„
      • ์ฝ”๋“œ ์บ์‹œ ์‚ฌ์šฉ๋Ÿ‰ ์ฆ๊ฐ€ ํŒจํ„ด
      • ์ตœ์ ํ™” ๋ ˆ๋ฒจ๋ณ„ ๋ถ„ํฌ

3. ๐Ÿงน Garbage Collection

3.1 Collection ์ง€ํ‘œ

  • Minor GC (Young GC)

    • ์ฃผ๊ธฐ์  ๋ฐœ์ƒ ์ •์ƒ
    • ๊ธ‰๊ฒฉํ•œ ์ฆ๊ฐ€ ํŒจํ„ด์€ ์ฃผ์˜ ํ•„์š”
    • ๋ชจ๋‹ˆํ„ฐ๋ง ํฌ์ธํŠธ:
      • ๋ฐœ์ƒ ๋นˆ๋„
      • ์ˆ˜ํ–‰ ์‹œ๊ฐ„
      • ํšŒ์ˆ˜๋œ ๋ฉ”๋ชจ๋ฆฌ์–‘
  • Major GC (Full GC)

    • ๋“œ๋ฌผ๊ฒŒ ๋ฐœ์ƒํ•ด์•ผ ์ •์ƒ
    • ํ‰ํƒ„ํ•œ ๊ทธ๋ž˜ํ”„ ์œ ์ง€ ํ•„์š”
    • ์ฃผ์˜์‚ฌํ•ญ:
      • ๋นˆ๋ฒˆํ•œ Full GC๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์˜์‹ฌ
      • ์žฅ์‹œ๊ฐ„ Full GC๋Š” ์„ฑ๋Šฅ ์ €ํ•˜ ์œ ๋ฐœ

3.2 Pause Duration

  • Minor GC: 10-50ms ์ •์ƒ ๋ฒ”์œ„
  • Major GC: 100ms-1s ์ •์ƒ ๋ฒ”์œ„
  • ์ดˆ๊ณผ ์‹œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ผ์‹œ ์ค‘์ง€ ๋ฐœ์ƒ ๊ฐ€๋Šฅ
  • ์ตœ์ ํ™” ๋ฐฉ์•ˆ:
    • GC ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠœ๋‹
    • ํž™ ์‚ฌ์ด์ฆˆ ์กฐ์ •
    • GC ๋กœ๊ทธ ์ƒ์„ธ ๋ถ„์„

3.3 ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น/์Šน๊ฒฉ

  • Allocated: Eden ์˜์—ญ ์‹ ๊ทœ ํ• ๋‹น๋Ÿ‰
  • Promoted: Old ์˜์—ญ ์Šน๊ฒฉ๋Ÿ‰
  • Promoted๋Š” Allocated๋ณด๋‹ค ํ˜„์ €ํžˆ ๋‚ฎ์•„์•ผ ์ •์ƒ
  • ๋ชจ๋‹ˆํ„ฐ๋ง ํฌ์ธํŠธ:
    • ๊ฐ์ฒด ์ƒ์„ฑ ์†๋„
    • ์Šน๊ฒฉ ๋น„์œจ
    • ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ํŒจํ„ด

4. ๐Ÿ“š ํด๋ž˜์Šค ๋กœ๋”ฉ

4.1 Classes Loaded

  • ์ดˆ๊ธฐ ๊ธ‰์ฆ ํ›„ ์•ˆ์ •ํ™”๊ฐ€ ์ •์ƒ
  • ๊ฐ„ํ—์  ์†Œํญ ์ฆ๊ฐ€๋Š” ํ—ˆ์šฉ
  • ์ง€์†์  ์ฆ๊ฐ€๋‚˜ ๊ธ‰๊ฒฉํ•œ ๋ณ€๋™์€ ๋น„์ •์ƒ
  • ์ฃผ์˜์‚ฌํ•ญ:
    • ๋™์  ํด๋ž˜์Šค ๋กœ๋”ฉ ํŒจํ„ด ํ™•์ธ
    • ๋ฉ”๋ชจ๋ฆฌ ๋ฆญ ๊ฐ€๋Šฅ์„ฑ ์ ๊ฒ€
    • ํด๋ž˜์Šค๋กœ๋” ๊ณ„์ธต ๊ตฌ์กฐ ๊ฒ€ํ† 

4.2 Classes Unloaded

  • Major GC์™€ ์—ฐ๊ณ„ํ•˜์—ฌ ๋ฐœ์ƒ
  • ๊ฐ„ํ—์  ๋ฐœ์ƒ, ๋‚ฎ์€ ์ˆ˜์ค€ ์œ ์ง€๊ฐ€ ์ •์ƒ
  • ๋นˆ๋ฒˆํ•˜๊ฑฐ๋‚˜ ๋Œ€๋Ÿ‰ ์ฒ˜๋ฆฌ๋Š” ๋น„์ •์ƒ
  • ๋ชจ๋‹ˆํ„ฐ๋ง ํฌ์ธํŠธ:
    • ์–ธ๋กœ๋“œ ๋นˆ๋„
    • ํ•œ ๋ฒˆ์— ์–ธ๋กœ๋“œ๋˜๋Š” ํด๋ž˜์Šค ์ˆ˜
    • GC ๋ฐœ์ƒ๊ณผ์˜ ์—ฐ๊ด€์„ฑ

5. ๐Ÿ”„ Buffer Pools

5.1 Direct Buffer

  • I/O ์ž‘์—…์šฉ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ
  • ์ดˆ๊ธฐ ํ• ๋‹น ํ›„ ์•ˆ์ •์  ์œ ์ง€ ํ•„์š”
  • ๊ธ‰๊ฒฉํ•œ ๋ณ€๋™์€ ๋น„์ •์ƒ
  • ์ตœ์ ํ™” ๊ณ ๋ ค์‚ฌํ•ญ:
    • ๋ฒ„ํผ ํฌ๊ธฐ ์„ค์ •
    • ์žฌ์‚ฌ์šฉ ์ •์ฑ…
    • ๋ฉ”๋ชจ๋ฆฌ ํŒŒํŽธํ™” ๊ด€๋ฆฌ

5.2 Mapped Buffer

  • ํŒŒ์ผ ๋ฉ”๋ชจ๋ฆฌ ์ง์ ‘ ๋งคํ•‘ ์˜์—ญ
  • ํ•„์š” ์‹œ ํ• ๋‹น/ํ•ด์ œ
  • ํŒŒ์ผ ์ฒ˜๋ฆฌ๋Ÿ‰์— ๋”ฐ๋ฅธ ๋ณ€๋™์€ ์ •์ƒ
  • ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค:
    • ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์ฒ˜๋ฆฌ
    • ๋นˆ๋ฒˆํ•œ ํŒŒ์ผ I/O
    • ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘ ํ•„์š” ์ƒํ™ฉ

6. ๐ŸŽฏ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ถŒ์žฅ ์‚ฌํ•ญ

6.1 ์ผ๋ฐ˜์ ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง ์›์น™

  • ๋ฒ ์ด์Šค๋ผ์ธ ์ธก์ • ๋ฐ ๋ฌธ์„œํ™”
  • ์ •๊ธฐ์ ์ธ ํŠธ๋ Œ๋“œ ๋ถ„์„
  • ๊ฒฝ๋ณด ์ž„๊ณ„๊ฐ’ ์„ค์ •
  • ๋กœ๊ทธ ์—ฐ๊ณ„ ๋ถ„์„

6.2 ์ฃผ์š” ๊ฒฝ๋ณด ์„ค์ • ๊ถŒ์žฅ์‚ฌํ•ญ

  • Heap ์‚ฌ์šฉ๋ฅ : 85% ์ด์ƒ
  • Full GC ๋นˆ๋„: ์‹œ๊ฐ„๋‹น 2ํšŒ ์ด์ƒ
  • GC Pause Time: Major GC 1์ดˆ ์ด์ƒ
  • CPU ์‚ฌ์šฉ๋ฅ : ์ง€์†์  80% ์ด์ƒ
  • ํด๋ž˜์Šค ๋กœ๋”ฉ: ๊ธ‰๊ฒฉํ•œ ์ฆ๊ฐ€

6.3 ๋ฌธ์ œ ํ•ด๊ฒฐ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

  1. ์ฆ์ƒ ์‹๋ณ„
  2. ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„
  3. ๋กœ๊ทธ ๋ถ„์„
  4. ํž™ ๋คํ”„ ๋ถ„์„ (ํ•„์š”์‹œ)
  5. ์›์ธ ํŒŒ์•… ๋ฐ ์กฐ์น˜
  6. ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ•ํ™”

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages