• Home
  • About
    • on Weekend photo

      on Weekend

      ๐™Ž๐™ฉ๐™ช๐™™๐™ฎ๐™ž๐™ฃ๐™œ

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • ํ•„์‚ฌ
  • Projects

J2KB Backend Study

05 Apr 2021

Trend of Web

VanillaJS

ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋˜๊ฒŒ ๋น„๊ด€์ ์œผ๋กœ ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋„ ์žˆ๋‹ค. DOMํ•˜๋Š” ๋ฐ์—๋Š” ํŽธํ•˜์ง€๋งŒ, ๊ต‰์žฅํžˆ ๋А๋ฆผ. ์›นํŒฉ์ด ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๋ฒˆ๋“ค๋ง ํˆด์ธ๋ฐ, ๊ทธ๊ฑฐ๋งŒ ํ•ด์„œ ์ถฉ๋ถ„ํžˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋ผ๊ณ  ๋ณด๋Š”๊ฒŒ vanilla js์ž…๋‹ˆ๋‹ค.

๋Œ€์ค‘์ ์œผ๋กœ ์“ฐ์ธ๋‹ค๊นŒ์ง€๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋ˆˆ์—ฌ๊ฒจ๋ณผ๋งŒํ•œ ๋ณ€ํ™”์ด๋‹ค. ์œ ๋‹ˆํ‹ฐ์—์„œ ๋ฐœํ‘œํ•œ ์ž๋ฃŒ์— ๋”ฐ๋ฅด๋ฉด ์‹ค์ œ 3D ๋ Œ๋”๋ง ์—”์ง„์„ ๊ต‰์žฅํžˆ ๋ฒ„๋ฒ…๊ฑฐ๋ฆฌ์ง€๋งŒ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์ด๋ผ๊ณ  ์ž‘๋…„์— ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์—ˆ๋‹ค.

์‹ค์ œ c++ ์–ดํ”Œ์— ๋น„ํ•ด์„œ ์†๋„๊ฐ€ 1/2๋ฐ–์— ์ฐจ์ด๊ฐ€ ์•ˆ๋‚œ๋‹ค. ์ด๋Ÿฐ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ด์„œ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด ์›น ์–ด์…ˆ๋ธ”๋ฆฌ์ด๋‹ค.

๊ตณ์ด ์ ์ ˆํ•œ ๊ฑด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์ด๋Ÿฐ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ณ€ํ™”๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€ํ™”๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ฐœ๋ฐœ์„ ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ๋„ ์žˆ๊ธด ํ•œ๋ฐ, ์šฐ๋ฆฌ๋‚˜๋ผ์—์„œ ์ œ์ผ ์ ์œ ์œจ์ด ๋†’์€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์•ผ๊ธฐํ•˜์ž๋ฉด ๋ฆฌ์•กํŠธ๋ฅผ ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ)

๋ฆฌ์•กํŠธ์˜ ๊ฒฝ์šฐ์—๋Š” Virtual DOM์„ ์‚ฌ์šฉํ•œ๋‹ค. 6์ฃผ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ Tree ๊ธฐ๋ฐ˜์œผ๋กœ ์•„๋ž˜๋กœ ์ญ‰ ๊ฐ€๋Š” ํ˜•ํƒœ๋กœ ์ž‘์—…์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ๋ฆฌ์•กํŠธ 16 ์ด์ „๊ณผ ์ดํ›„๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๋ณ€ํ™”๊ฐ€ ํฌ์ง„ ์•Š์ง€๋งŒ ์•ฝ๊ฐ„ ์žˆ๋‹ค. ์ฒ˜์Œ ํ•  ๋•Œ์—๋Š” state๋‚˜ ํ”„๋กญ์Šค๋กœ ๋งŽ์ด ๊ด€๋ฆฌํ–ˆ์—ˆ๋‹ค.

๊ทธ ๋‹ค์Œ์—๋Š” Angular JS๊ฐ€ ์žˆ๋‹ค. ๊ตฌ๊ธ€์—์„œ ๋งŒ๋“  ๊ธฐ์ˆ ์ด๊ณ , ๋ฆฌ์•กํŠธ์— ๋น„ํ•ด์„œ๋Š” ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง€ ์•Š์ง€๋งŒ ๋ณ€ํ™”๊ฐ€ ๋งŽ๋‹ค. ์“ฐ๊ธฐ ๋ณต์žกํ•˜์ง€๋งŒ ์“ฐ๋Š” ๊ณณ์€ ๊ฝค ์žˆ๋‹ค. ๋ฐฐํ‹€๊ทธ๋ผ์šด๋“œ ๋กœ๋น„๋„ Angular๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ๋ Œ๋”๋ง ํˆด์˜ ๊ฐ€์žฅ ํฐ ๋ณ€ํ™”๋Š” Ivy๊ฐ€ ๋Ÿฐ์นญ์ด ๋๋‹ค๋Š” ์ ์ด๋‹ค.

Angular Rendering : ํ•œ๊ตญ์—์„œ๋Š” jQuery๋งŒ ์“ฐ๋Š” ์ถ”์„ธ์˜€๋‹ค. ๋А๋ฆฌ์ง€๋งŒ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

Tree-Shaking : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ DOM์„ ๋ฐ”๊พธ๋Š” ํ˜•ํƒœ์—์„œ ์ฐฉ์•ˆํ•ด์„œ ์ตœ๊ทผ์— ๋งŒ๋“ค์–ด์ง„ ๊ธฐ์ˆ 

Vue.js

Svelte : Virtual DOM ํ˜•ํƒœ๋กœ ํ•˜๊ฒŒ ๋œ๋‹ค. ์ง์ ‘ ์ปจํŠธ๋กคํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๊ฒŒ ๋˜๊ณ , ๋ Œ๋”๋ง ์†๋„๊ฐ€ ๋‹ค๋ฅธ ์„ธ๊ฐœ์— ๋น„ํ•ด์„œ ๋น ๋ฅด์ง€๋งŒ ๋ณ€ํ˜•ํ•˜๋Š” ๋ฐ์—๋Š” ๋А๋ฆฌ๋‹ค.

Server Side Rendering

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ณ€ํ™”์— ์œ ์˜์žˆ๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š” ๊ฒƒ์€, ์˜ˆ์ „์—๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์ด html๋กœ ๋ฐ˜ํ™˜์„ ํ–ˆ์—ˆ๋Š”๋ฐ, ์ตœ๊ทผ์—๋Š”โ€ฆ

ํ’€์Šคํƒ๊ฐœ๋ฐœ์ž๋ฅผ ์ฐพ๋Š” ์ด์œ ๊ฐ€ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๊ฐ€ html์„ ๋‹ค ์งฐ์–ด์„œ ์•Œ์•˜์–ด์•ผํ–ˆ๋Š”๋ฐ.. ์ง€๊ธˆ์€ ํด๋ผ์ด์–ธํŠธ์—์„œ api ํ˜•ํƒœ๋กœ ๋ฐ›์•„์„œ ์•ก์…˜์„ ์ทจํ•˜๊ฑฐ๋‚˜ ํ™”๋ฉด์— ๊ทธ๋ฆฌ๋Š”๊ฑด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•œ๋‹ค. (ํ˜„๋Œ€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜)

์‹ฌ์ง€์–ด ๋ฐ์Šคํฌํƒ‘ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜, CLI ์ฐฝ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ทธ๋ ‡๋‹ค. ๋ Œ๋”๋ง์„ ์ „๋ฌธ์ ์œผ๋กœ ํ•˜๋Š” ์„œ๋ฒ„๋งŒ ๋”ฐ๋กœ ๋„์›Œ์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹์„ ์ฃผ๋กœ ์ฐจ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

๋ฆฌ์•กํŠธ, ์•ต๊ทค๋Ÿฌ๋กœ ๊ฐœ๋ฐœํ•˜์‹œ๋ฉด ์„œ๋ฒ„๋ฅผ ๊ฐ™์ด ๋ผ์›Œ์ฃผ๊ธฐ ๋•Œ๋ฌธ์—.

GraphQL

  • ์œ ์šฉํ•˜๋‹ค๋Š” ์‚ฌ๋žŒ๋„ ์žˆ๊ณ . Rest API์˜ ๋‹จ์ˆœํ•œ ํ˜•ํƒœ๋ฅผ ๋” ์ฟผ๋ฆฌ ์ง€ํ–ฅ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ณต์žกํ•œ ํ˜•ํƒœ์˜ URL์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์žกํ•œ ํ‘œํ˜„์„ ํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

ํ˜„์žฌ์˜ ๋ณ€ํ™”

  • ๊ธฐ์กด์—๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ HTML์„ ๋ฐ›์•„ ๋ Œ๋”๋ง, ๋””์Šคํ”Œ๋ ˆ์ดํ•˜๋Š” ํ˜•ํƒœ์˜€๋‹ค๋ฉด ์ง€๊ธˆ์€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ์—์„  API๋ฅผ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์ƒํƒœ ๊ด€๋ฆฌ ๋“ฑ์ด ์˜ค๋Š˜ ๋‚ ์˜ ํ˜•ํƒœ์ด๋‹ค. (์ด๋Ÿฐ ์‹์œผ๋กœ ํ”„๋ก ํŠธ๊ฐ€ ๋งŽ์ด ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ๋‹ค.)
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์™œ Json์„ ์“ฐ๋Š”๊ฐ€? ์ด ๋ณ€ํ™”์— ๋งž์ถฐ์„œ ๋ฐ”๋€Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋ฐฑ์—”๋“œ์˜ ๋ณ€ํ™”

์„œ๋ฒ„์—์„œ๋„ ๊ฐ€์žฅ ํฐ ๋ณ€ํ™”๋Š”,

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

์ง€๊ธˆ์˜ ๋ฐฑ์—”๋“œ ๊ตฌ์กฐ์—์„œ๋Š” ๋ถ„์‚ฐ๋œ ๊ตฌ์กฐ์˜ ์„œ๋ฒ„๋กœ๋งŒ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค. ๋ถ„์‚ฐ ์„œ๋ฒ„๋ฅผ ์“ฐ๊ฒŒ ๋˜๋ฉด ์ฝ”๋”ฉ์ด ๋” ์–ด๋ ค์›Œ์ง€๊ฒ ์ง€๋งŒ, ๋ฐ˜์‘์†๋„๊ฐ€ ๋นจ๋ผ์ ธ์„œ ๋ถ„์‚ฐ์„œ๋ฒ„๋ฅผ ๋„์ž…ํ•จ.

๋„์ปค

๋Œ€๋ถ€๋ถ„ ๋„์ปค๋ฅผ ์“ด๋‹ค. ๋Œ€๊ทœ๋ชจ ์„œ๋ฒ„ ๋ฐฐํฌ์— ์žˆ์–ด์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ์ฐจ์ง€ํ•˜๋Š” ๋„์ปค.

๋Œ€๊ทœ๋ชจ์˜ ์„œ๋ฒ„ ๊ตฐ์ง‘์ด๋ผ๋Š” ํ‘œํ˜„์„ ์ผ์—ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ๊ตฐ์ง‘์„ ๊ด€๋ฆฌํ•  ์นœ๊ตฌ๋“ค์ด ํ•„์š”ํ•ด์ง. ์„œ๋ฒ„๋ฅผ ํ•œ ๊ฐœ ๋„์› ๋Š”๋ฐ ์‚ฌ๋žŒ์ด ๊ณ„์† ๋ชฐ๋ ค์™€์„œ ์„œ๋ฒ„ ์ „์ฒด๊ฐ€ ๋ถ€ํ•˜ -> ์„œ๋ฒ„๋ฅผ ๋นจ๋ฆฌ ๋Š˜๋ ค์„œ ์ง์ง(?) ๋ณด๋‚ด์•ผํ•˜๋Š” ์นœ๊ตฌ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ . ์ด ์‹œ๊ฐ„์—๋Š” ์‚ฌ๋žŒ์ด ์•ˆ ๋ชฐ๋ ค์„œ ์„œ๋ฒ„๋ฅผ ๋„๊ณ . ์ด๋Ÿฐ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•˜๋‹ค.

-> Orchestration (์šฐ์™€โ€ฆ. ๋„ˆ๋ฌด ์‹ ๊ธฐํ•˜๋‹ค)

๊ฐ€์ƒ์˜ ํด๋ผ์šฐ๋“œ ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ์ง€ํœ˜ํ•˜๋Š”.

๋„์ปค์™€ ๊ฐ™์ด Go๋กœ ๊ฐœ๋ฐœํ•œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ์Šค์นผ๋ผ๋กœ ๊ฐœ๋ฐœํ•œ ๋งˆ๋ผํฐ? ๋งˆ๋ผํ†ค?

์™€!!!

HTTP Server

Tomcat ๋“ฑ๋“ฑ. ์•ž๋‹จ์ด๋‚˜ ๋’ท๋‹จ์— ๋†“์—ฌ์„œ HTTP ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

Nginx (์—”์ง•์Šค?)

๋ถ„์‚ฐ๋œ ์„œ๋ฒ„ ์ฒ˜๋ฆฌ์— ๊ฐ€์žฅ ์ž˜ ๋งž๋Š”๋‹ค. ์„ฑ๋Šฅ๋„ ๋Œ€๊ทœ๋ชจ ์ฒ˜๋ฆฌ์—์„  async๊ฐ€ ํ•„์ˆ˜์ธ๋ฐ ๊ทธ๋Ÿฐ ๊ฑธ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ๋งž๋Š”๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Database

์ ‘๊ทผ์ด ์‰ฝ๋‹ค๋Š”๊ฒŒ ์žฅ์ ์ด๋ผ์„œ ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ๋„ค์ด๋ฒ„ ๋‰ด์Šค๋ž€ ๋Œ“๊ธ€, ์ข‹์•„์š”๋งŒ ํ•ด๋„ ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋“ค์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•ต์‹ฌ ํ™”๋‘์ด๋‹ค.

  • RDBMS : ํ†ต์ƒ RDB์™€ RDB๊ฐ€ ์•„๋‹Œ ๊ฒƒ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. B-Tree ๊ณ„์—ด์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๊ตฌํ˜„๋˜์–ด ์„œ์น˜๊ฐ€ ๋น ๋ฅด๊ณ  ๋Œ€๊ทœ๋ชจ ์ธ์„œํŠธ๊ฐ€ ๋А๋ฆฌ๋‹ค. ๊ตฌ์กฐ์ƒ ํ‚ค๋ฅผ ์žก๊ณ  ํŠธ๋žœ์žญ์…˜ ๊ฑธ๊ธฐ๊ฐ€ ์‰ฝ๋‹ค. ์ด๊ฒŒ B-Tree์˜ ํ•ต์‹ฌ. ๊ฐ•๋ ฅํ•œ ํŠธ๋žœ์žญ์…˜์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๊ณ . ๋ฆด๋ ˆ์ด์…˜์‹ญ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ ˆํ”Œ๋ฆฌ์นด(๋ณต์ œํ•ด์„œ ๋น ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ์œ ๋„ํ•˜๋Š” ๊ฒƒ)๊ฐ€ ์–ด๋ ค์›€.
    • SQL Server, Oracle, MySQL, PostgreSQL(ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ DB), DB2(์ซŒ ์˜›๋‚ ๊บผ), SYBASE, Maria DB
  • NoSQL : ๋ ˆํ”Œ๋ฆฌ์นด๊ฐ€ ์‰ฝ๋‹ค. SQL์ด ์—†๊ณ  ํ•จ์ˆ˜ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŠน์ • ์ฟผ๋ฆฌ ํŒจํ„ด์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค. RS..๋ด..ํŠธ๋ฆฌ? ์ปฌ๋Ÿผ ๋‹จ์œ„๋ผ์„œ ์ธ์„œํŠธ๊ฐ€ ๋น ๋ฅด๋‹ค.. ๋ ˆํ”Œ๋ฆฌ์นด๊ฐ™์€ ์ž‘์—…์ด ๋น ๋ฅด๋‹ค
    • Key-value store : RAM์— ์ €์žฅ ์บ์‹ฑ ๋””๋น„.. redis..
    • DocumentDB : MongoDB ํŒŒ์ผ์ฒ  ์ €์žฅํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ. ์ •๊ทœํ™”๊ฐ€ ์•„๋‹ˆ๋ผ ์—ญ์ •๊ทœํ™” ํŒจํ„ด์„ ํ†ตํ•ด์„œ ์ตœ๋Œ€ํ•œ ๊น”๋”ํ•˜๊ฒŒ ์“ฐ๋Š” ๊ฒŒ ๋ชฉ์ ์ด๋‹ค. json ํ˜•ํƒœ์˜ key-value๋กœ ๋˜์–ด์žˆ์–ด ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ํŽธํ•˜๋‹ค. join์ด ๊ทผ๋ฐ ๋ถˆ๊ฐ€๋Šฅํ•จ. join์„ ์•ˆํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์—ญ์ •๊ทœํ™”ํ•  ์ง€๊ฐ€ ํ•ต์‹ฌ ํฌ์ธํŠธ์ž„. (Trello๋Š” MongoDB๊ฐ€ ๋ฉ”์ธ DB์ž„โ€ฆ)
    • Column DB : Key-value ํ˜•ํƒœ ๋‹ค์Œ์œผ๋กœ ๋งŽ์ด ์“ฐ์ž„. H-BASE(hadoop)๋‚˜ ์นด์‚ฐ๋“œ๋ผ(๋กœ๊ทธ ์กฐํšŒ). join์ด ์—†๊ณ  columnํ˜•ํƒœ๋กœ ์ €์žฅ, ๊ทผ๋ฐ insert๊ฐ€ ๋น ๋ฆ„. -> ๋„ค์ด๋ฒ„ ๋Œ“๊ธ€ ๊ฐ์ •์„ Column DB๋กœ ์ €์žฅ
    • Graph DB : RDB์—์„œ๋Š” ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๊ธฐ๊ฐ€ ํž˜๋“ ๋ฐ, ๊ฐ€๋ น ์นœ๊ตฌ ๊ด€๊ณ„์—์„œ ๋‚ด๊ฐ€ ์•Œ ์ˆ˜๋„ ์žˆ๋Š” ์นœ๊ตฌ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ์— ์“ด๋‹ค. Vertex, Edge๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.
    • AMPQ : ์„œ๋ฒ„-์„œ๋ฒ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€? ๋ฐฑ์—”๋“œ๋งŒ ์“ฐ๋Š” ๊ธฐ์ˆ ์€ ์•„๋‹Œ๋ฐ, ์„ฑ๋Šฅ์ด ๊ต‰์žฅํžˆ ๋น ๋ฅธ ์šด์˜์ฒด์ œ์—์„œ๋„ ๋งŽ์ด ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ธ๋ฐ, ๋ฉ”์„ธ์ง€ ํ๋ผ๋Š” ํŠน์ • ํƒœ์Šคํฌ ์ €์žฅ ํ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ํ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๋‹ค๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ์„œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์ž‘์—…์ž์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ์‹. ๋ณดํ†ต ์ปค๋งจ๋“œํ, ์ด๋ฒคํŠธํ๋Š” ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐฑ์—”๋“œ์—์„œ๋Š” AMPQ๋ผ๋Š” ๋ฉ”์„ธ์ง€ ํ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (๋ ˆ๋น„๋˜ํŠธ, ์นดํ”„์นด) ๋Œ€๊ทœ๋ชจ ์„œ๋ฒ„๊ฐ„์˜ ๋ช…ํ™•ํ•œ ํ†ต์‹ ์„ ํ•˜์ง€ ์•Š๊ณ  ๋ฉ”์„ธ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ๋ฅผ ํ†ตํ•ด ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์คŒ
    • Message ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„์—์„œ๋Š” ๋ฉ”์„ธ์ง€ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์ค‘์š”ํ•จ. ์–ด๋–ค ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ์ฒ˜๋ฆฌ๋ฅผ ํ• ์ง€๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ช…์‹œ๋ฅผ ํ•  ์ˆ˜๊ฐ€ ์—†์Œโ€ฆ ์ผ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ๋ฐ”๋กœ ๋„˜๊ฒจ์ค˜์•ผํ•ด์„œ ๊ทธ๋Ÿฐ ๋น„๋™๊ธฐ ๋ฉ”์„ธ์ง€?๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์‚ฌ๋žŒ์ด ํ•„์š”. ์ด๊ฒŒ ํ•„์š”ํ•˜๋‹ค๋ฉด ์นดํ”„์นด๋ฅผ ์ถ”์ฒœํ•œ๋‹ค.
    • gRPC : RPC๋ผ๋Š” ๊ธฐ์ˆ ์€ ipc ํ†ต์‹ ๊ทœ์•ฝ์˜ ์ผ์ข…. HTTP๋ฅผ ์•ˆ์”€. HTTP์˜ ํ•œ๊ณ„์ ์€ ๋„ˆ๋ฌด ์‰ฌ์›€. ๊ตฌ์กฐ๋„ ๋„ˆ๋ฌด ์‰ฝ๊ณ  ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋„ ์–ผ๋งˆ ์•ˆ๋œ๋‹ค. HTTP ๋ฉ”์†Œ๋“œ 4๊ฐœ๋กœ๋Š” ๋„ˆ๋ฌด ์ฒ˜๋ฆฌ๊ฐ€ ์•ˆ๋œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์กฐ๊ธˆ ๋” ๋ณต์žกํ•œ ํ†ต์‹์ธ RPC๋ฅผ ์ฒ˜๋ฆฌํ•จ. (Remote Procedure Call) ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฃจ๋น„๋ผ๋ฉด ๋ฃจ๋น„๊ฐ€ C++ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ. ๋งŒ๋“ค์–ด์„œ ๋ณดํ†ต ์‚ฌ์šฉ์„ ํ•ด์•ผํ•˜๋Š”๋ฐ ์šด์˜์ฒด์ œ๋„ ์•Œ์•„์•ผํ•˜๊ณ  ๋‚ด๋ถ€ ๊ธฐ์ˆ ๋„ ์ž˜ ์•Œ์•„์•ผํ•ด์„œ ๋ณต์žกํ•จ. ๋ˆ„๊ฐ€ ํ•œ ๋ช… ๋งŒ๋“ค์–ด๋†“๊ณ  ์“ฐ์ž ํ•ด์„œ ๋งŒ๋“ค์–ด๋‘” ๋†ˆ์ด ๊ตฌ๊ธ€์ด๊ณ  ๊ทธ๊ฒŒ gRPC์ž„.
      • HTTP๋Š” blocking์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— non-blocking ๊ธฐ์ˆ ์ด ํ•„์š”ํ•˜๋‹ค. ๊ทธ๊ฒŒ gRPC. ๊ทธ๋ž˜์„œ ์•„์ฃผ ์œ ์šฉํ•จ.
      • HTTP๋Š” json๊ณผ ํ†ต์‹ ํ•จ. gRPC๋Š” Protobuf๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ†ต์‹ ์„ ํ•˜๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ๋žŒ์ด ํŽธํ•˜๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋Š” ์ฝ์„ ์ˆœ ์—†์ง€๋งŒ ์ปดํ“จํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—” ๋น ๋ฅด๋‹ค. gPRC๋Š” ๊ทธ๋ž˜์„œ Protobuf๋ž‘ ๋งŽ์ด ์ฒ˜๋ฆฌํ•œ๋‹ค. IDL? gRPC ์›น 1.0 ๋ฒ„์ „์ด ๋‚˜์˜ด.
    • Event-Driven System : ์„œ๋กœ ๊ฐ„์˜ ์—ญํ• ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•œโ€ฆ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์˜ ์‹œ์Šคํ…œ์œผ๋กœ ๋ฉ”์„ธ์ง€ ํ๊ฐ™์€๊ฑธ ์จ์„œ ์„œ๋ฒ„๊ฐ„ ์„œ๋ฒ„๋ฅผ ์ปจํŠธ๋กค.. ์ผ์„ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ๋‹ค.
      • Service discovery : ์ด ์„œ๋ฒ„๊ฐ€ ์ฃฝ์—ˆ๋Š”์ง€ ์‚ด์•˜๋Š”์ง€๋ฅผ ๊ธฐ๋กํ•ด๋‘๋Š” ์ƒ์น˜. UTC๋‚˜ ๋ฆฌ๋ณธ? ์œ ๋ ˆ์นด? ๊ฐ™์€๊ฑธ ์“ด๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” Hadoop, ์นดํ”„์นด๊ฐ€ ์“ฐ๋Š” ๊ธฐ์ˆ ์ธ ZooKeeper๋ฅผ ์“ด๋‹ค.
    • API Gateway : ์„œ๋ฒ„ ๊ตฐ์ง‘์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ์ฒซ๋ฒˆ์งธ ๊ด€๋ฌธ. ํ”„๋ก ํŠธ ์„œ๋ฒ„๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. ์–ด๋–ค ์š”์ฒญ์ด ์™”์„ ๋•Œ ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์„œ๋ฒ„๋ฅผ ์ฐพ์•„์ค„ ์ˆ˜๋„ ์žˆ๊ณ , ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธด๋‹ค๊ฑฐ๋‚˜ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ•œ๋‹ค๋˜๊ฐ€, ์ธ์ฆ(SSH ์ธ์ฆ, JWT Token ๊ถŒํ•œ์ฒ˜๋ฆฌ), ์บ์‹ฑ ๋“ฑ์˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ์ด๋ฅผ HTTP๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ
    • Circuit Breaker
    • Distribute Database
    • ๋””์Šค์ฝ”๋“œ, ์•Œ๋ฆฌ๋ฐ”๋ฐ” ๋“ฑ ๋Œ€๊ทœ๋ชจ ์ฒ˜๋ฆฌ ํ•˜๋Š”. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์•„ํ‚คํ…์ฒ˜๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๊ต‰์žฅํžˆ ๋งŽ์ด ํ’€๋ฆฌ๊ณ  ์žˆ๋‹ค. ์„œ๋ฒ„๋ฅผ ๋ถ„์‚ฐํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊ฒƒ์ธ๊ฐ€? ๋‹จ์ˆœํ•˜๊ฒŒ๋Š” HTTP ์ฒ˜๋ฆฌ๋กœ๋Š” ์‰ฝ์ง€๋งŒ, ๋„ˆ๋ฌด ์•„์‰ฌ์šด ์ ์ด ๋งŽ๋‹ค ๋ผ๋Š”๊ฒŒ ํ•ต์‹ฌ.
  • Two Phase Commint : ์„œ๋ฒ„๊ฐ€ ๋ถ„์‚ฐ๋˜์–ด์žˆ๋‹ค๋ณด๋‹ˆ๊นŒ DB์˜ ํŠธ๋žœ์žญ์…˜์„ ๋ณด์žฅํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง. DB๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๊ณ  ์ด ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ค ์œ ์ง€ํ•ด์•ผํ•˜๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€? ์ด๊ฑธ ๋ฌด์‹ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š”๊ฑธ Two Phase Commit์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๊ฑด DB์— lock์„ ํ•œ๋‹ค.
    • ์ฒ˜๋ฆฌ๊ฐ€ ๊ต‰์žฅํžˆ ๋ช…ํ™•ํ•˜๊ณ  ์‰ฝ์ง€๋งŒ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.
  • Saga Patterns : ์ด๋ฒคํŠธ๋ฅผ ๋ฐœํ–‰์‹œ์ผœ์„œ, ์ด๋ฒคํŠธ๊ฐ€ ํŠธ๋žœ์žญ์…˜์˜ ํ‚ค๊ฐ€ ๋˜์–ด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€๋Š” ๋ณด์ง€ ์•Š๋Š”๋‹ค. ๊ณผ๊ฑฐ์˜ ๋ฒ„์ „์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฑฐ์ž„. ๋”ํ‹ฐ๋ผ์ดํŠธ? ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฐฉ๋ฒ•์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋น…๋ฐ์ดํ„ฐ์ชฝ ์œ ์šฉํ•œ ๋ณ€ํ™” : Data Warehouse. ๋Œ€๊ทœ๋ชจ ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ์„ค๊ณ„. ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•ด์•ผ ํ•œ๋‹ค, ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๋ญ ํ•„์š”ํ•œ ๊ทธ๋Ÿฐ๊ฑฐ.
  • ์•„ํŒŒ์น˜, ์ŠคํŒŒํฌ๋ฅผ ๋งŽ์ด ์“ฐ๋Š”๋ฐ Data Streaming ๊ธฐ์ˆ ์ด ์ค‘์š”ํ•ด์ง. ๋Œ€ํ‘œ์ ์ธ๊ฒŒ ์•„ํŒŒ์น˜ ํ”Œ๋งํฌ. ํ•œ๊ตญ์—์„œ๋„ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋‚˜ ๊ณ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์ด ํ•„์š”ํ•œ ๊ณณ์—์„œ๋Š” ์•„ํŒŒ์น˜ ํ”Œ๋žญํฌ? ๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค.

JVM

JVM Garbage Collector

  • JVM์ด ์™œ ๊ณ„์† ๋ณ€ํ•˜๊ณ  ์žˆ๋ƒ๋ฉด, ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ์—์„œ์˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์œผ๋ฉด ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŠธ๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฅด๋‹ค๋Š” c Python์˜ ์—ฐ๊ตฌ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ๊ณ„์† ๋ฐ”๋€Œ๋ƒ? ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์™œ ๊ณ„์† ๋ฐ”๋€Œ๋Š”๊ฑฐ๋ƒ? ํ•˜๋ฉด ๋ฉ€ํ‹ฐ ์ฝ”์–ด์—์„œ์˜ ์ฒ˜๋ฆฌ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ํ•˜๋ ค๊ณ .
  • ๊ธฐ๋ณธ์ ์œผ๋กœ Keep Allocator์˜ ์ฒ˜๋ฆฌ..๋ฅผ.. Young Generation๊ณผ Old Generation์„โ€ฆ
  • Young : ๊ธˆ๋ฐฉ ํ•ด์ฒด๋  ๊ฐœ์ฒด๋“ค -> ๊ฐ€๋“ ์ฐจ๋ฉด ์ฒ˜๋ฆฌํ•  ๊ฒŒ ๋งŽ์œผ๋‹ˆ๊นŒ ๋น„์šด๋‹ค. ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋Œ์ง€ ์•Š์•„๋„ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž๋ฐ”๋Š” Heap์„ ์‚ฌ์šฉ๋ฒ•์— ๋‚˜๋ˆ ์„œ ์ด๋Ÿฐ ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. unuse๋œ๊ฑฐ ๋ฉ”๋ชจ๋ฆฌ ์•Œ๋ฆฌ๊ณ , paging์ด ์ผ์–ด๋‚˜์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ณณ๊ณณ์— ๊ตฌ๋ฉ์ด ๋‚˜์„œ ์บ์‹œ๋ผ์ธ์„ ๋‹ค ๋ฌด๋„ˆ๋œจ๋ฆฌ๋‹ˆ๊นŒ compacktaion์„ ํ•œ ๋ฒˆ ํ•œ๋‹ค.
  • Old : ์˜ค๋ž˜๋™์•ˆ ์‚ด์•„๋‚จ์„ ๊ฒƒ ๊ฐ™์€ ๊ฐœ์ฒด๋“ค
  • ์ด ๊ณผ์ •์ด ์ผ์–ด๋‚˜๋ ค๋ฉด Stop the world๋ฅผ ํ•œ๋‹ค. ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž ๊น ๋ฉˆ์ถ”๊ณ , ์ปฌ๋ ‰ํ„ฐ์˜ ๊ธฐ๋Šฅ์„ ์ •์ƒํ™”์‹œํ‚ค๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์ด๋‹ค. Garbage COllector์„ ์ž˜ ์•Œ์•„์•ผ ํ•˜๋Š” ์ด์œ  : ์„œ๋ฒ„๊ฐ€ ๋ฉˆ์ถ”๋ฉด ์•ˆ๋˜๋‹ˆ๊นŒ.
  • ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋Š”๋ฐ ์„œ๋ฒ„๋Š” ๋ฉˆ์ถ”๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค. Garbage Collector๋ฅผ ์ž˜ ์•Œ์•„์•ผํ•œ๋‹ค.
  • ๊ฐ์ฒด ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์—๋„ ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ์ด๊ฑฐ์ž„.

  • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€?

    • Serial GC : ๊ต‰์žฅํžˆ ๋…ธ๋ฉ€ํ•œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹. Mark - Sweep - Compaction : ๋ฉ€ํ‹ฐ ์ฝ”์–ด์—์„œ ๋А๋ฆผ
    • Throughput Collector
    • CMS : ๋ช…์‹œ์ ์ธ ๋™์ž‘์„ ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์‹œ๋„

    • Race Condition ๋•Œ๋ฌธ์— ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Œ? ์ž๋ฐ” ํŒŒ์ผ ์ดํ›„๋กœ๋Š” ๋˜๊ฒŒ ์ž˜ ์•ˆ์“ฐ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋‹ค. CMS๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๋ฉ€ํ‹ฐ ์ฝ”์–ด๋ฅผ ๋Œ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.
  • G1 Collector : ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์ž์›.. Heap.. Full DC..? application๊ณผ generation๊ฐ„์˜ ๊ด€๊ณ„..? old generation์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๋ฉด..?

  • ์„ธ๋ Œ๋„์–ด๋ฅผ ์“ธ ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด G1 GC๋ฅผ ์“ธ ๊ฒƒ์ด๋‹ค.

  • GC Tuning์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์—์„œ ์ค‘์š”ํ•˜๋‹ค.


etc Share Tweet +1