์ „์ฒด ๊ธ€ 159

[JAVA] ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™” ๊ฐœ๋…

์ง๋ ฌํ™”Object๋ฅผ ByteStream์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •๊ฐ์ฒด๋‚˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋„คํŠธ์›Œํฌ๋‚˜ ์ €์žฅ์†Œ(ex. ๋ฐฐ์—ด ๋ฒ„ํผ ๋˜๋Š” ํŒŒ์ผ ํ˜•์‹)๋ฅผ ํ†ตํ•œ ์ „์†ก์— ์ ํ•ฉํ•œ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค[https://developer.mozilla.org/ko/docs/Glossary/Serialization]์ž๋ฐ” ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” Object ๋˜๋Š” Data๋ฅผ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์˜ ์ž๋ฐ” ์‹œ์Šคํ…œ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ ํ˜•ํƒœ๋กœ ์—ฐ์†์ ์ธ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํฌ๋งท ๋ณ€ํ™˜ ๊ธฐ์ˆ  JVM์˜ ํž™ ํ˜น์€ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ง๋ ฌํ™”๋ฅผ ํ†ตํ•ด ๋ฐ”์ดํŠธ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ์ €์žฅ์†Œ์— ์ €์žฅํ•ด ๋‘๊ณ , ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ์ด ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€ ์—ญ์ง๋ ฌํ™”๋ฅผ ํ†ตํ•ด ์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ JVM ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ๋‹ค๋ฐ”์ดํŠธ ์Šค..

JAVA 2024.10.02

[Spring] ์ปดํŒŒ์ผ ๊ณผ์ •, ์˜์กด์„ฑ ์ถ”๊ฐ€์™€ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ ์ฐจ์ด

(์•„๋ž˜ ๋‚ด์šฉ์€ ์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ์˜ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.) ์ปดํŒŒ์ผ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด, ์ฆ‰ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ์ผJava ์ปดํŒŒ์ผ๋Ÿฌ๋Š” Java ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ฐ”์ดํŠธ ์ฝ”๋“œ(byte code)๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค์ด๋•Œ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋Š” ํŠน์ • ์šด์˜์ฒด์ œ๋‚˜ ์•„ํ‚คํ…์ฒ˜์— ์ข…์†๋˜์ง€ ์•Š์€ ์ฑ„ Java ๊ฐ€์ƒ๋จธ์‹ (JVM)์—์„œ ์‹คํ–‰๋œ๋‹ค- Interpretation์ด JVM์—์„œ ์ปดํŒŒ์ผ๋œ ๊ธฐ๊ณ„์–ด๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์ŠคJIT(Just-In-Compiler) ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๋ฐ”์ด๋„ˆ๋ฆฌ์ฝ”๋“œ(์ด์ง„์ฝ”๋“œ)๋กœ ๋ณ€ํ™˜ํ•ด ์†๋„๋ฅผ ์ค„์ด๊ธฐ๋„ ํ•œ๋‹คjavac.exe๊ฐ€ ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ, java.exe๊ฐ€ ์ž๋ฐ” ์ธํ„ฐํ”„๋ฆฌํ„ฐjavac.exe : ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ๋ฌธ์žฅ์„ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญ(.java -> .class)java.exe : ์ž๋ฐ”..

Spring 2024.09.30

[JAVA] ํ(Queue), ๋ฑ(Deque) ๊ตฌํ˜„์ฒด, ๋ฉ”์„œ๋“œ ์ •๋ฆฌ

ํ(Queue)๋Œ€๊ธฐ ์ค„์ฒ˜๋Ÿผ ์‚ฝ์ž…ํ•˜๋Š” ๊ณณ๊ณผ ์ œ๊ฑฐํ•˜๋Š” ๊ณณ์ด ๊ฐ๊ฐ ํ•˜๋‚˜์”ฉ์ธ ์ž๋ฃŒ ๊ตฌ์กฐ๋จผ์ € ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜๊ฐ„๋‹ค(= FIFO) cf. ์Šคํƒ์€ LIFO ์ž๋ฐ”์—์„œ๋Š” Queue ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๊ณ , ๊ทธ์— ๋”ฐ๋ฅธ ๊ตฌํ˜„์ฒด๋Š” ๋‹ค์–‘ํ•˜๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ LinkedList()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.(PriorityQueue - ์ •๋ ฌ ๊ฐ€๋Šฅ, ArrayBlockingQueue, ConcurrentLinkedQueue ...) https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Queue.htmlQueue queue = new LinkedList(); ์‚ฝ์ž… ๋ฉ”์„œ๋“œ- ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. add(): ์‚ฝ์ž… ์„ฑ๊ณต ์‹œ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ํ์— ์ž๋ฆฌ๊ฐ€ ์—†๋‹ค๋ฉด I..

JAVA 2024.09.30

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ณ‘ํ•ฉ ์ •๋ ฌ(MergeSort) ํ•ต์‹ฌ ์•„์ด๋””์–ด

์ฑ… [Do it! ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ - ์ž๋ฐ” ํŽธ;๊น€์ข…๊ด€ ์ง€์Œ]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๋ถ„ํ•  ์ •๋ณต(divide and conquer) ๋ฐฉ์‹: ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•˜๊ณ  ๋ถ„ํ• ํ•œ ์ง‘ํ•ฉ์„ ์ •๋ ฌํ•˜๋ฉฐ ํ•ฉ์น˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ฐ€์žฅ ์ž‘์€ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ(ํฌ๊ธฐ 1)์œผ๋กœ ๋‚˜๋ˆˆ ํ›„ 2๊ฐœ์˜ ๊ทธ๋ฃน์„ ํ•ฉ์น˜๋ฉด์„œ ์ •๋ ฌ2๊ฐœ์˜ ๊ทธ๋ฃน์„ ํ•ฉ์น  ๋•Œ๋Š” ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‘˜ ์ค‘ ๋” ์ž‘์€ ์ˆ˜๋ฅผ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์— ๋จผ์ € ์ €์žฅ๊ทธ๋Ÿฐ ๋‹ค์Œ ํฌ์ธํ„ฐ๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋Š”๋ฐ, ์–ด๋Š ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ๋ฐฐ์—ด์˜ ๋์— ๋จผ์ € ๋„๋‹ฌํ•˜๋ฉด ๋‚˜๋จธ์ง€ ๋ฐฐ์—ด์˜ ๊ฐ’๋“ค๋„ ์˜ฎ๊ฒจ ๋ถ™์ž„   ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ํ‰๊ท  O(nlogN)- ํฌ๊ฒŒ ๋ณด๋ฉด row ํ•˜๋‚˜ ๋‹น n๋ฒˆ์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ- ๋ณ‘ํ•ฉ ๊ณผ์ •์—์„œ logN๋ฒˆ๋งŒํผ ์ •๋ ฌ๋ฒ„๋ธ” ์ •๋ ฌ(swap)๊ณผ ์—ฐ๊ด€์ง€์€ ํ•ต์‹ฌ ์•„์ด๋””์–ด- ๋ฒ„๋ธ” ์ •๋ ฌ์—์„œ๋Š” swap์ด ๋ช‡ ๋ฒˆ ์ผ์–ด๋‚ ๊นŒ- ์ฒซ์งธ ์ค„์—์„œ 5..

[Spring] Filter, Interceptor, AOP ๋น„๊ต

Filter, Interceptor, AOP๋Š” ๋ชจ๋‘ ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „ ๋˜๋Š” ํ›„์— ํ•ด์•ผ ํ•  ์ž‘์—…์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด ๋‘” ๊ฒƒ์ด๋‹ค. ์ด ์ „์ฒ˜๋ฆฌ, ํ›„์ฒ˜๋ฆฌ์˜ ์ž‘์—…์ด ๊ฐ ๋ฉ”์„œ๋“œ์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด ์ค‘๋ณต์ฝ”๋“œ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ๊ทธ ๊ณตํ†ต ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชฉ์ ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ์ž‘์—…์ด ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๊ตฌํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, ํ•ด๋‹น ์ž‘์—…์˜ ์ˆ˜ํ–‰ ์ „ ํ˜„์žฌ ์‹œ๊ฐ„์„ ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ์ˆ˜ํ–‰ ํ›„ ํ˜„์žฌ ์‹œ๊ฐ„์—์„œ ๋นผ๋ฉด ๋œ๋‹ค. ์ด๋•Œ ์ˆ˜ํ–‰ ์ „ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •, ์ˆ˜ํ–‰ ํ›„ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •์ด ๊ฐ๊ฐ ์ „์ฒ˜๋ฆฌ, ํ›„์ฒ˜๋ฆฌ ์ž‘์—…์ด ๋œ๋‹ค. 1. Filter์„œ๋ธ”๋ฆฟ ์ดˆ๊ธฐํ™” ์‹œ init(), ์ฒ˜๋ฆฌ ์‹œ doFilter(), ์„œ๋ธ”๋ฆฟ ์ข…๋ฃŒ ์‹œ destroy() Filter๋Š” ์ „์ฒ˜๋ฆฌ, ํ›„์ฒ˜๋ฆฌ ์ž‘์—…์„ ๋ชจ๋‘ doFilter()์—์„œ ์ฒ˜๋ฆฌํ•œ..

Spring 2024.09.08

[์šฉ์–ด์ •๋ฆฌ] ํ™•์‹คํžˆ ์•Œ์•„๋‘๋ฉด ์ข‹์„ ์ปดํ“จํŒ… ์šฉ์–ด(-ing)

API(Application Programming Interface)์šด์˜์ฒด์ œ์™€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์˜ ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด๋‚˜ ๋ฉ”์‹œ์ง€ ํ˜•์‹์ค‘๊ฐ„ ์ „๋‹ฌ์ž๋กœ์„œ(like ์ ์›) ์–‘์ชฝ์˜ ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐopen API๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต๊ฐœ๋œ API [์œ„ํ‚ค๋ฐฑ๊ณผ]๋‹ค์–‘ํ•œ ์„œ๋น„์Šค์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ข€ ๋” ์‰ฝ๊ฒŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต๊ฐœํ•œ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค [์„œ์šธ ์—ด๋ฆฐ๋ฐ์ดํ„ฐ๊ด‘์žฅ]API๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ธฐ์—…์€ ์ž์‹ ์˜ ์„œ๋น„์Šค๋ฅผ ๋„๋ฆฌ ์•Œ๋ ค ์ธ์ง€๋„๋ฅผ ๋†’์ด๊ณ , ๋ฐ˜๋Œ€๋กœ API๋ฅผ ์ด์šฉํ•˜๋Š” ๊ธฐ์—…์€ ๋” ์ข‹์€ ์„œ๋น„์Šค๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹คHTTP APIHTTP๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋กœ ์ •ํ•ด๋‘” ์ŠคํŽ™์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ - ๋„“์€ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ [์ธํ”„๋Ÿฐ ๊น€์˜ํ•œ๋‹˜ QnA - https://www.inflearn.com/community/que..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - QuickSort(ํ€ต ์ •๋ ฌ)

์ฑ… [ํŒŒ์ด์ฌ์œผ๋กœ ์‰ฝ๊ฒŒ ํ’€์–ด์“ด ์ž๋ฃŒ๊ตฌ์กฐ; ์ตœ์˜๊ทœ, ์ฒœ์ธ๊ตญ ์ง€์Œ]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  QuickSort; ํ€ต ์ •๋ ฌํ‰๊ท ์ ์œผ๋กœ ๋งค์šฐ ๋น ๋ฅธ ์ˆ˜ํ–‰ ์†๋„๋ณ‘ํ•ฉ ์ •๋ ฌ๊ณผ ๊ฐ™์ด ๋ถ„ํ• -์ •๋ณต๋ฒ• ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ณ‘ํ•ฉ ์ •๋ ฌ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๊ท ๋“ฑ ๋ถ„ํ• ํ•  ํ•„์š” ์—†๋‹ค๋ฆฌ์ŠคํŠธ ์•ˆ์˜ ํ•œ ์š”์†Œ๋ฅผ ํ”ผ๋ฒ—(pivot), ์ฆ‰ ๊ธฐ์ค€์ ์œผ๋กœ ์‚ผ๊ณ  ์ด ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์€ ์ˆซ์ž๋Š” ์™ผ์ชฝ์œผ๋กœ, ํฐ ์ˆซ์ž๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์˜ฎ๊ธด๋‹ค(์˜ค๋ฆ„์ฐจ์ˆœ์ผ ๊ฒฝ์šฐ)๊ทธ๋Ÿฐ ๋‹ค์Œ ์ˆœํ™˜ ํ˜ธ์ถœํ•˜์—ฌ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋“ค์„ ์ •๋ ฌํ•œ๋‹ค๋ถˆ์•ˆ์ •์ •๋ ฌ, ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ•„์š”ํ•˜์ง€ ์•Š๋Š”๋‹คcf. ์•ˆ์ •์„ฑ: ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๋™์ผํ•œ ํ‚ท๊ฐ’์„ ๊ฐ–๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•  ๊ฒฝ์šฐ ์ •๋ ฌ ํ›„์—๋„ ์ด๋“ค์˜ ์ƒ๋Œ€์ ์ธ ์œ„์น˜๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ๊ฒƒ- ์‹œ๊ฐ„ ๋ณต์žก๋„์ตœ์„ ์˜ ๊ฒฝ์šฐ: ๋ฆฌ์ŠคํŠธ ๋ถ„ํ• ์ด ๊ฐ€์šด๋ฐ์—์„œ ์ด๋ฃจ์–ด์ ธ k๋ฒˆ(log_2 n)์˜ ๋ถ„ํ•  * ํ‰๊ท  n๋ฒˆ์˜..

[Spring] @Lookup - DL(์˜์กด๊ด€๊ณ„ ์กฐํšŒ/ํƒ์ƒ‰)

Dependency Lookup; ์˜์กด๊ด€๊ณ„ ์กฐํšŒ/ํƒ์ƒ‰์˜์กด๊ด€๊ณ„๋ฅผ ์™ธ๋ถ€์—์„œ ์ฃผ์ž…๋ฐ›๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ง์ ‘ ํ•„์š”ํ•œ ์˜์กด๊ด€๊ณ„๋ฅผ ์ฐพ๋Š” ๊ฒƒimport org.springframework.beans.factory.annotation.Lookup;@Scope("singleton") static class ClientBean { @Lookup public PrototypeBean getPrototypeBean() { return null; // ์‹ค์ œ ๊ตฌํ˜„์—์„œ๋Š” ๋ฌด์‹œ } public int logic() { PrototypeBean prototypeBean = getPrototypeBean(); pr..

Spring 2024.08.25

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์กฐํ•ฉ๊ณผ ๋™์  ๊ณ„ํš๋ฒ• (dynamic programming)

์กฐํ•ฉ (Combination)์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ์˜ ์ˆ˜ ์ค‘ ์ˆœ์„œ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  r๊ฐœ๋ฅผ ์„ ํƒ; nCr๋กœ ํ‘œํ˜„๊ทธ์— ๋ฐ˜ํ•ด ์ˆœ์—ด nPr์€ ์ˆœ์„œ๋ฅผ ๊ณ ๋ ค์กฐํ•ฉ์˜ ์„ฑ์งˆ์ดํ•ญ๊ณ„์ˆ˜์™€ ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜•๊ณผ ๊ด€๋ จ์ดํ•ญ๊ณ„์ˆ˜: ์ดํ•ญ์ •๋ฆฌ์—์„œ ๊ฐ ํ•ญ์˜ ๊ณ„์ˆ˜์ธ ์กฐํ•ฉ nCr → ์‰ฝ๊ฒŒ ๋งํ•ด, ์ดํ•ญ์ •๋ฆฌ์—์„œ๋Š” ๊ฐ ํ•ญ์˜ ๊ณ„์ˆ˜๊ฐ€ ์กฐํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค.์ดํ•ญ์ •๋ฆฌ: ๋‘ ํ•ญ์˜ ํ•ฉ์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์ธ (a+b)^n์„ ์ „๊ฐœํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฆฌํ•œ ๊ฒƒํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜•: ์ดํ•ญ๊ณ„์ˆ˜๋“ค์„ ์‚ผ๊ฐํ˜• ํ”ผ๋ผ๋ฏธ๋“œ ํ˜•ํƒœ๋กœ ๋ฐฐ์—ดํ•œ ๊ฒƒ  ์ด๋ฅผ ํ† ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์งœ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์•„๋ž˜์ชฝ์— combi() ํ•จ์ˆ˜๋ฅผ ๋ณด๋ฉด ์œ„ ์„ฑ์งˆ์„ ์ ์šฉํ•˜์—ฌ ์žฌ๊ท€ ํ˜ธ์ถœํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. import java.util.Scanner;public class Combination { public static void main(Str..

[JAVA] ์ž๋ฐ”์™€ C์–ธ์–ด ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ ๋น„๊ต

์ž๋ฐ” ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ ๋ฉ”์„œ๋“œ ์˜์—ญ์—๋Š” ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ ๋“ฑ์˜ ์‹คํ–‰ ์ฝ”๋“œ์™€ static ์˜์—ญ์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ์ถ”๊ฐ€๋กœ ๊ณตํ†ต ๋ฆฌํ„ฐ๋Ÿด ์ƒ์ˆ˜๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ์ƒ์ˆ˜ ํ’€(constant pool)์ด๋ผ๋Š” ๊ฒƒ๋„ ์žˆ๋Š”๋ฐ ๋‚˜๋Š” ์ธํ”„๋Ÿฐ - ๊น€์˜ํ•œ๋‹˜์˜ ์ž๋ฐ” ๊ธฐ๋ณธ ๊ฐ•์˜์—์„œ ๋ฉ”์„œ๋“œ ์˜์—ญ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฑธ๋กœ ๋ฐฐ์› ์œผ๋‚˜ ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๋“ค์„ ๋ณด๋ฉด ํž™ ์˜์—ญ์— ํฌํ•จ๋œ ๊ฒƒ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์˜๊ฒฌ์ด ๋ถ„๋ถ„ํ•˜๊ธธ๋ž˜ chatGPT์—๊ฒŒ ๋ฌผ์–ด๋ดค๋”๋‹ˆ ์ž๋ฐ” ๋ฒ„์ „์— ๋”ฐ๋ผ ์œ„์น˜ํ•˜๋Š” ์˜์—ญ์ด ๋‹ฌ๋ผ์ง„ ๊ฒƒ์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ์ฆ‰, ์ž๋ฐ” 7์ด์ „(PermGen)์—๋Š” ๋ฉ”์„œ๋“œ ์˜์—ญ์— ์žˆ์—ˆ๋Š”๋ฐ, ์ž๋ฐ” 8 ์ดํ›„(MetaSpace)๋กœ๋Š” ํž™ ์˜์—ญ์œผ๋กœ ์˜ฎ๊ฒจ์กŒ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ณ€ํ™”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•œ๊ณ„๋ฅผ ๊ฐœ์„ ์‹œ์ผœ์คฌ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ๋‚˜์ฒ˜๋Ÿผ ๋ฉ”์„œ๋“œ ์˜์—ญ์— ์žˆ๋ƒ, ํž™ ์˜์—ญ์— ์žˆ๋ƒ๋ฅผ ๊ตฌ๋ถ„์‹œํ‚ค๋Š” ์งˆ๋ฌธ์€ ๋ณ„๋กœ ์ข‹์ง€ ์•Š์€ ์งˆ๋ฌธ์ด๋ผ๊ณ  ..

JAVA 2024.08.19