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

๋ชฉ๋ก์ด ์—†์Šต๋‹ˆ๋‹ค.

Java ํž™๋คํ”„ ๋ถ„์„ (Out of memoryํ˜„์ƒ์ด ์•„๋‹Œ ์ˆ˜๋™๋ถ„์„)

๐Ÿ—ฃ Language/JAVA
    ๋ฐ˜์‘ํ˜•

     

    ์–ด..? ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ..?

    ์„œ๋ฒ„ ์šด์˜ ์ค‘์— ๊ฐ„ํ—์ ์œผ๋กœ ์ ‘์† ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์šฐ๋ฆฌ ์„œ๋ฒ„์—๋Š” scouter๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•ด๋†“์•˜์—ˆ๊ณ  ์ด์ƒ ์ฆ์ƒ์ด ์žˆ์œผ๋ฉด ์‚ฌ๋‚ด slack์— ํŠน์ • ์ฑ„๋„๋กœ ์•Œ๋ฆผ์ด ์˜ค๊ฒŒ ํ•ด๋‘์—ˆ๋‹ค.

    ๋ฉฐ์น  ์ „๋ถ€ํ„ฐ ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๋Š” ์•Œ๋ฆผ์ด ์˜ค๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์—…๋ฌด๋“ค์ด ๋ฐ€๋ ค ์žˆ์–ด์„œ ์‹ ๊ฒฝ์“ฐ์ง€ ๋ชปํ–ˆ๋‹ค.

     

    ์ƒํ™ฉ ๋ฐœ์ƒ!! ๋น„์ƒ!!

    ๊ทธ๋Ÿฐ๋ฐ ์–ด์ œ๋ถ€ํ„ฐ ํŠน์ • ์‚ฌ์ดํŠธ์— ์ ‘์†์ด ๊ฐ„ํ—์ ์œผ๋กœ ์•ˆ๋œ๋‹ค๋Š” ๋ฌธ์˜๊ฐ€ ๋“ค์–ด์™”๋‹ค. ํ™•์ธ์„ ์•ˆํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด ๋˜์—ˆ๋‹ค.

    ์šฐ๋ฆฌ๋Š” ์•„ํŒŒ์น˜ ์›น์„œ๋ฒ„๋ฅผ ์•ž์— ๋‘๊ณ  ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ ๋’ค์—๋Š” Tomcat WAS๋ฅผ ์ด์ค‘ํ™”ํ•ด๋†“์•˜๊ณ  ์ด ์ค‘์— ํ•œ ์„œ๋ฒ„์—์„œ๋งŒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด์ ธ ์žˆ์—ˆ๋‹ค. ๋ฌผ๋ก  ๋‚˜๋จธ์ง€ ํ•œ ์„œ๋ฒ„๋„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งŽ์ด ์˜ฌ๋ผ์™€์žˆ๊ธฐ๋Š” ๋งˆ์ฐฌ๊ฐ€์ง€์˜€๋‹ค.

     

    ์šฐ์„  tomcat์„ ์˜ค๋žซ๋™์•ˆ ์ผœ๋‘์–ด์„œ ๊ทธ๋Ÿฐ๊ฒƒ์ด๋ผ๋Š” ๊ฒฝํ—˜์—์„œ ๋‚˜์˜จ ์ถ”์ธก์„ ํ–ˆ๊ณ , ๊ณ ๊ฐ์‚ฌ์™€ ํ˜‘์˜๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์Œ๋‚  ์˜ค์ „์— tomcat์„ ๋ฆฌ๋ถ€ํŒ…ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. WAS๊ฐ€ ์ด์ค‘ํ™” ๋˜์–ด ์žˆ๊ณ  ์›น์„œ๋ฒ„๊ฐ€ ์•ž๋‹จ์— ๋”ฐ๋กœ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋Š” ์•Œ ์ˆ˜ ์—†๊ฒŒ ๋ฌด์ค‘๋‹จ ํŒจ์น˜๊ฐ€ ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ ํ˜น์‹œ ๋ชจ๋ฅผ ์ƒํ™ฉ์— ๋Œ€๋น„ํ•˜์—ฌ ๊ณ ๊ฐ์‚ฌ์™€ ํ˜‘์˜๋ฅผ ํ–ˆ๋‹ค.

     

    ๊ธ‰ํ•œ ๋ถˆ์€ ๊ป๊ณ .. ๊ทผ๋ณธ์ ์ธ ์›์ธ์€?

    ๋‹ค์Œ๋‚  ์˜ค์ „์— ๋ฆฌ๋ถ€ํŒ… ์ž‘์—…์„ํ•˜๋‹ˆ ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ ˆ๋ฐ˜๊ฐ€๊นŒ์ด ์ค„์–ด๋“ค์—ˆ๋‹ค. ์ด๊ฑฐ๋Š” ๋ฌด์กฐ๊ฑด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์ธ ๊ฒƒ์œผ๋กœ ํŒ๋‹จ์ด ๋˜์—ˆ๊ณ  ๋ˆ„์ˆ˜๊ฐ€ ์–ด๋””์„œ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๋ถ„์„ํ•ด์•ผํ•  ํ•„์š”์„ฑ์„ ๋Š๊ผˆ๋‹ค.

    ์ด ๋•Œ๋ฌธ์— ์‚ฌ๋‚ด์˜ ์œ—๋ถ„๋“ค์€ ์•ž์œผ๋กœ ์ถ”๊ฐ€๋  ๊ณ ๊ฐ์‚ฌ๊ฐ€ ์˜ˆ์ •๋˜์–ด ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฅผ ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„œ๋ฒ„ ์ถ”๊ฐ€ ์ฆ์„ค(์Šค์ผ€์ผ์—… ๋˜๋Š” ์Šค์ผ€์ผ์•„์›ƒ)์„ ๊ณ ๋ฏผํ•˜๋Š” ์น˜์—ดํ•œ ํ† ๋ก ์ด ์žˆ์—ˆ๋‹ค.. ๊ธˆ์ „์ ์ธ ๋ถ€๋ถ„๊ณผ ํšจ์œจ์ ์ธ ๋ถ€๋ถ„(์‹ค์ œ๋กœ ์šด์˜ํ•˜๋Š” ์‹ค๋ฌด์ž ๊ด€์ )์—์„œ ์ŠคํŒŒํฌ๊ฐ€ ํŠ€๋Š” ํ† ๋ก ์ด์—ˆ๋‹ค.. (์‹ค๋ฌด์ž ์ž…์žฅ์„ ๊ณ ๋ คํ•ด์ฃผ์‹œ๋Š” ์œ—๋ถ„์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์— ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค..! ๐Ÿ™)

     

    ํž™๋คํ”„(heapdump) ๋ถ„์„ํ•ด๋ณด์ž!

    ๊ทธ๊ฑด ๊ทธ๊ฑฐ๊ณ ! ์ผ๋‹จ์€ ๋‚˜๋Š” ๋ฌธ์ œํ•ด๊ฒฐ์„ ์œ„ํ•ด์„œ ์›น์„œ๋ฒ„์—์„œ ํ•œ์ชฝ Tomcat์œผ๋กœ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•˜๊ณ , heapdump๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  memory analyzer Tool์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋คํ”„ํŒŒ์ผ์„ ๋ถ„์„ํ–ˆ๋‹ค.

     

    java ์‚ฌ์šฉ ํ”„๋กœ์„ธ์Šค ์•„์ด๋”” ํ™•์ธ

    ๋จผ์ € ํž™๋คํ”„ ์ƒ์„ฑ ๋ช…๋ น๋ฌธ์—์„œ ํ”„๋กœ์„ธ์Šค ์•„์ด๋””๊ฐ€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ํž™๋คํ”„๋ฅผ ์ƒ์„ฑํ•  ํ”„๋กœ์„ธ์Šค ์•„์ด๋””๋ฅผ ํ™•์ธํ•œ๋‹ค.

     

    $ jps -v
    java process ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์™ธ์šฐ๊ธฐ ์‰ฝ๋‹ค!
    ๊ผญ ์›น ์„œ๋ฒ„๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ Java ํ”„๋กœ๊ทธ๋žจ์ด๋ฉด ํž™๋คํ”„๋ฅผ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

     

    ํž™๋คํ”„ ์ƒ์„ฑ

    java๋กœ ์‹คํ–‰๋œ ํ”„๋กœ์„ธ์Šค์˜ ์•„์ด๋”” ๋ชฉ๋ก ์ค‘์— ํž™๋คํ”„ ๋Œ€์ƒ์ธ tomcat์˜ ํ”„๋กœ์„ธ์Šค ์•„์ด๋””๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ์„œ ํž™๋คํ”„๋ฅผ ์ƒ์„ฑํ•ด๋ณด์ž.

     

    ์ฃผ์˜ํ• ์ 
    ํž™๋คํ”„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ค‘์—๋Š” ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉˆ์ถ˜๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋ฒ„๊ฐ€ ์ด์ค‘ํ™”๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์šด์˜์ค‘์ธ ์„œ๋ฒ„์— ๋Œ€ํ•ด ํž™๋คํ”„๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์„œ๋น„์Šค๊ฐ€ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ผญ ์•Œ์•„๋‘์ž!

    ๋งŒ์•ฝ ๊ณ ๊ฐ์‚ฌ์™€ ํ˜‘์˜๊ฐ€ ์•ˆ๋œ ์ƒํƒœ์—์„œ ์šด์˜์ค‘์ธ ์„œ๋ฒ„์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ๋ผ๋„ ํž™๋คํ”„๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•ด๋ณด์ž.

    ํž™ ์ ์œ ์œจ ํ™•์ธ์„ ์œ„ํ•ด ํž™ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์„œ๋ฒ„์—์„œ ์ง์ ‘ ํ™•์ธํ•ด๋ณด์ž.
    ํˆด์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ํ™˜๊ฒฝ์ด๋ผ๋˜์ง€ ์„œ๋ฒ„ CLI ํ™˜๊ฒฝ์—์„œ ํ™•์ธํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•  ๊ฒƒ ๊ฐ™๋‹ค.
    $ jmap -histo {pid} | more

    full GC๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜ ๋ช…๋ น๋ฌธ์œผ๋กœ ํ•ด๋ณด์ž. GC๋Š” ์ผ์–ด๋‚˜๋ฉด ์•Œ๋‹ค์‹œํ”ผ Stop The World! ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•˜์ž! (๋‚ด๊ฐ€ ํ•ด๋ดค์„ ๋•Œ์—๋Š” ์งง๊ฒŒ ๋๋‚ฌ๊ณ  ์„œ๋น„์Šค์—๋Š” ๊ฑฐ์˜ ์˜ํ–ฅ์ด ์—†์—ˆ์œผ๋‚˜ ๊ฐ์ž ์„œ๋ฒ„ ์ƒํ™ฉ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์•ˆํ•ด์„œ ์‚ฌ์šฉํ•˜์ž.)
    $ jmap -histo:live {pid} | more

    (์—ฌ๊ธฐ์„œ๋Š” more๋ฅผ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ๋„˜๊ฒจ์„œ ์กฐ๊ธˆ์”ฉ ๋ณด๊ฒŒ ํ–ˆ๋Š”๋ฐ ํ•œ๋ฐฉ์— ์ „๋ถ€ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์œผ๋ฉด ํ•ด๋‹น ํŒŒ์ดํ”„๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์•ž์— ๋ช…๋ น๋ฌธ๋งŒ ์น˜๋ฉด ๋ฉ๋‹ˆ๋‹ค~)

     

    ๋คํ”„ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

    ์ฃผ์˜ํ• ์ ์€ ์šด์˜ ์ค‘์ธ ์„œ๋ฒ„๋ผ๋ฉด ์„œ๋น„์Šค๊ฐ€ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ !! ๊ผญ ๋ช…์‹ฌํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

     

    // pid๊ฐ€ 1234์ธ ์ž๋ฐ” ํ”„๋กœ์„ธ์Šค์˜ heapdump ํŒŒ์ผ์„ ๋Œ€์ƒ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ
    ubuntu@ubuntu:/home/ubuntu/heap$ jmap -dump:format=b,file=/tmp/heapdump.hprof 1234
    ubuntu@ubuntu:/home/ubuntu/heap$ ll
    total 8184540
    drwxrwxr-x  2 ubuntu ubuntu   28 11์›” 10 10:54 ./
    drwxr-xr-x 10 ubuntu ubuntu  284 11์›” 10 18:44 ../
    -rw-------  1 ubuntu ubuntu 7.9G 11์›” 10 10:54 heapdump.hprof
    7.9GB ์งœ๋ฆฌ ๋คํ”„ ํŒŒ์ผ ์ƒ์„ฑ๋จ.. ์šฉ๋Ÿ‰ ์™œ์ด๋ ‡๊ฒŒ ์ปค .. ๋คํ”„ ๋ช…๋ น์–ด ์ž˜๋ชปํ•œ๊ฑฐ ์•„๋‹ˆ์ง€..?

     


    ํ•ด๋‹น ํŒŒ์ผ์„ ์„œ๋ฒ„์—์„œ ํ™•์ธํ•  ์ˆ˜  ์žˆ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์žˆ๋‹ค.

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

     

    ํž™๋คํ”„ ๋ถ„์„ (Memory Analyzer ์‚ฌ์šฉ)

    memory analyzer (์ดํด๋ฆฝ์Šค ๊ธฐ๋ฐ˜) ๋‹ค์šด๋ฐ›๊ณ  ํ•ด๋‹น tool ์‚ฌ์šฉํ•ด์„œ ํžˆ์Šคํ† ๊ทธ๋žจ์ด๋ผ๋˜์ง€ ํž™๋คํ”„ ๋ถ„์„ํ•ด๋ณด๊ธฐ.
    http://www.eclipse.org/mat/downloads.php

     

    Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation

    The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and frameworks.

    eclipse.dev

     

     

    - 7.9GB ๋คํ”„ ๋ถ„์„ํ•˜๋Š”๋ฐ ํˆด์˜ max heap memory๋ฅผ 4GB๋กœ ์žก์•„๋„ ๋ป—์Œ. 8GB๋กœ ์žก์œผ๋‹ˆ๊นŒ ๋ถ„์„๋จ. (ํž™ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํฌ๊ฒŒ ์žก์•„์ค˜์•ผํ•จ)
    - ๋คํ”„ open์ด ๋๋‚˜๋‹ˆ๊นŒ leak suspect(๋ˆ„์ˆ˜ ์ถ”์ ?) ํ• ๊ฑฐ๋ƒ๊ณ  popup์ด ๋œธ. ์ข‹๋„ค! ์„ ํƒํ•˜๋‹ˆ๊นŒ leak๋˜๋Š”๋ถ€๋ถ„์ด pie ์ฐจํŠธ๋กœ ๋‚˜์˜ด. ํ™•์ธํ•ด๋ณด๋‹ˆ๊นŒ session์ด ๋ˆ„์ˆ˜ ์ถ”์ ๊ฒฐ๊ณผ๋กœ ๊ฐ€์žฅ ๋งŽ์€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์—ˆ๊ณ , ์‹ค์ œ๋กœ ๋Œ€๋ฏผ๊ณผ ๊ด€๋ฆฌ์ž ๋ชจ๋‘ session timeout์ด ๋ฌดํ•œ์ด์—ˆ์Œ.
    - OQL ์ด๋ผํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ SQL๋ฌธ์ฒ˜๋Ÿผ ์กฐํšŒํ•  ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ ๋‚˜๋Š” ์•ˆ๋ณด์ž„.. (ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ํ•ด์•ผํ•˜๋‚˜?)
    - histogram์œผ๋กœ ํ™•์ธํ•ด๋ณด๋‹ˆ byte[] ๋‹ค์Œ์œผ๋กœ java.util.concurrent.ConcurrentHashMap ๊ฐ์ฒด๊ฐ€ ๊ฐ€์žฅ ๋งŽ์•˜์Œ. (Hashmap์„ ์ƒ์†ํ•ด์„œ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋Š” ๋“ฏํ•จ. ๊ทธ ๋‹ค์Œ์ด StandardSession์ž„. ๊ทธ๋ฆฌ๊ณ  String, ArrayList, java.lang.reflect.Method ์ˆœ์„œ)

     

    Memory Analyer ํž™๋คํ”„ ๋ถ„์„ ๊ฒฐ๊ณผ Overview ํ™”๋ฉด

     

    Memory Analyzer์˜ ํžˆ์Šคํ† ๊ทธ๋žจ ํ™”๋ฉด

     

    Memory Analyzer์˜ ๋ˆ„์ˆ˜ ํƒ์ง€ ๊ธฐ๋Šฅ ๊ฒฐ๊ณผํ™”๋ฉด

     

     

     

    ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๊ฐ€ ์–ด๋””์„œ ์ƒ์„ฑ์ด ๋˜๊ณ  ์–ด๋Š ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š”์ง€ ๊นŒ์ง€๋Š” ์•Œ ์ˆ˜ ์—†์ง€๋งŒ ๊ทธ๋ž˜๋„! ์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ์–ด๋Š ์ •๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๊ทธ๋ฆฌ๊ณ  ๋ˆ„์ˆ˜๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ฐ์ฒด๊ฐ€ ์–ด๋Š๊ฒƒ์ธ์ง€ ๊นŒ์ง€๋Š” ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ž˜๋„ ์œ ์˜๋ฏธํ•œ ๊ฒฐ๊ณผ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

    ๋‚˜๋Š” ์—ฌ๊ธฐ์„œ Session ๊ฐ์ฒด๊ฐ€ ๋ˆ„์ˆ˜๋กœ ์ถ”์ธก์ด ๋˜๊ณ  ์šฉ๋Ÿ‰๋„ ํฌ๊ฒŒ ์žกํ˜€์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋Œ€์ฒ˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์•˜๋‹ค.

    ์•„๋‹ˆ๋‚˜ ๋‹ค๋ฅผ๊นŒ ์„ธ์…˜ ์œ ์ง€ ์‹œ๊ฐ„์ด ๋ฌดํ•œ์œผ๋กœ ์žกํ˜€ ์žˆ์—ˆ๋‹ค. ์ผ๋‹จ์€ ์„ธ์…˜ ์œ ์ง€ ์‹œ๊ฐ„์„ ๋Œ€๋ฏผ ์‹œ์Šคํ…œ ๊ทธ๋ฆฌ๊ณ  ๊ด€๋ฆฌ์ž ์‹œ์Šคํ…œ ๋ชจ๋‘ ์žก์•„์ฃผ์—ˆ๊ณ  ๋‹น๋ถ„๊ฐ„์€ ์ƒํ™ฉ์„ ์ข€ ๋” ์ง€์ผœ๋ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค.

     

    ๋งŒ์•ฝ ํ•ด๊ฒฐ์ด ๋˜์ง€ ์•Š์•˜์œผ๋ฉด ๋‹ค์‹œ ๋คํ”„๋ฅผ ๋œจ๊ณ  ๋‹ค๋ฅธ ์›์ธ์„ ๋ถ„์„ํ•ด์„œ .. ๋‹ค์‹œ ๋Œ์•„์˜ค๊ฒ ๋‹ค..

     

     

     


    ์ฐธ๊ณ 

    https://d2.naver.com/helloworld/1326256

    https://techblog.woowahan.com/2628/

    https://hays99.tistory.com/160

    https://timotimo.tistory.com/94

    https://stackoverflow.com/questions/71324768/eclipse-memory-analyzer-incompatible-jvm

    https://blueyikim.tistory.com/1242

    https://taetaetae.github.io/2019/01/10/spring-redirect-oom/

    https://dojjong.tistory.com/2

     

     

     

     

     

    ๋ฐ˜์‘ํ˜•