์ „์ฒด ๊ธ€

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๊ณ ์† ์„ฑ์žฅ์„ ๊ฟˆ๊พธ๋Š” ๋น„์ „๊ณต์ž ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž์˜ IT ๊ด€๋ จ ์ง€์‹์„ ์‰ฝ๊ฒŒ ํ’€์–ด ์ ์€ ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
ยทInfra/AWS
ํ˜„์žฌ ๋“ฃ๊ณ  ์žˆ๋Š” ๊ฐ•์˜์ธ ํ•ด์ปค์Šค HRD์˜ "๊ฐ€์žฅ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” AWS, ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค๋ฌด๊นŒ์ง€"์—์„œ AWS S3 ์‹ค์Šต ํŒŒํŠธ๊ฐ€ ์žˆ์–ด์„œ ๊ธฐ๋ก์„ ํ•ด๋†“์œผ๋ ค๊ณ  ํ•œ๋‹ค. Lambda ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ํŠน์ง• ๋ฐ ์žฅ๋‹จ์ ์€ ๋‚˜์ค‘์— ํฌ์ŠคํŒ…์„ ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ผ๋‹จ S3๋Š” ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋กœ, ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ์ฒด๋กœ ์ €์žฅ๋œ๋‹ค๋Š” ํฐ ํŠน์ง•์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋‘์ž. ์šฐ์„  AWS์— ๋กœ๊ทธ์ธ ํ›„, S3 ์„œ๋น„์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ S3 ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ„๋‹ค. S3 ๊ตฌ์ถ• ์‹ค์Šตํ•˜๊ธฐ 1. ๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ - aws-yoon-bucket ์ด๋ฆ„์œผ๋กœ ๋ฒ„ํ‚ท์„ ๋งŒ๋“ค์–ด๋ณด์ž - ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๊ฐ€ ํผ๋ธ”๋ฆญ ์„œ๋น„์Šค์ด๊ธด ํ•˜์ง€๋งŒ ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ ์ตœ์†Œํ•œ์˜ ์•ก์„ธ์Šค ๊ถŒํ•œ๋งŒ ์ฃผ๋Š” ๊ฒƒ์ด ๊ด€๋ก€์ด๋‹ค. - ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์™ธ๋ถ€์—์„œ ์ ‘์†์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค์ •ํ•˜๊ณ , ๋ถˆ๊ฐ€ํ”ผํ•˜๊ฒŒ ..
ยทInfra/AWS
ํ˜„์žฌ ํ•ด์ปค์Šค HRD์˜ "๊ฐ€์žฅ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” AWS, ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค๋ฌด๊นŒ์ง€" ์ธ๊ฐ•์„ ๋“ฃ๊ณ  ์žˆ๋Š”๋ฐ, Lambda ์‹ค์Šต ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ๊ธฐ๋ก์„ ํ•ด๋†“์œผ๋ ค๊ณ  ํ•œ๋‹ค. AWS Lambda๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ์„œ๋น„์Šค ์ด๋‹ค. ์ด๊ฑด ๋ญ๋ƒ. ์„œ๋ฒ„๋‚˜ ์ปจํ…Œ์ด๋„ˆ ์—†์ด (๊ธฐ์กด EC2 ๋‚˜ ECS ๋ฐฉ์‹์ด ์•„๋‹Œ) ์ฝ”๋“œ[ํ•จ์ˆ˜]๋‹จ์œ„๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•œ ์ปดํ“จํŒ… ์„œ๋น„์Šค ์ด๋‹ค. ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ€๋ณ๊ณ , ์˜ค๋žœ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” ๊ฐ„๋‹จํ•œ ์„œ๋น„์Šค๋“ค์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค. ์‹คํ–‰์‹œ๊ฐ„ ๋ณ„ ๊ณผ๊ธˆ์ด ํŠน์ง•์ด๋‹ค. AWS Lambda์˜ ํŠน์ง•๊ณผ ์žฅ,๋‹จ์ ์€ ๋‹ค์Œ์— ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ธฐ๋กœ ํ•˜๊ณ , ๋ƒ…๋‹ค ์‹ค์Šต์„ ํ•ด๋ณด๊ฒ ๋‹ค. ์‹ค์Šตํ•˜๊ธฐ AWS์— ๋กœ๊ทธ์ธ ํ›„, Lambda๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ํ•ด๋‹น ํ™”๋ฉด์„ ๋„์šด๋‹ค. ๋žŒ๋‹ค๋ฅผ ๋งŒ๋“ค์–ด ๋†“์€ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ํ™”๋ฉด์€ ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๋‹ค. 1. ํ•จ..
ยทInfra/AWS
์˜ค๋Š˜์€ ๊ฐ•์˜ ํ•˜๋‚˜๋ฅผ ์†Œ๊ฐœ ์‹œ์ผœ์ฃผ๋ ค๊ณ  ์™”์Šต๋‹ˆ๋‹น! ๋ฐ”๋กœ๋ฐ”๋กœ~ ํ•ด์ปค์Šค HRD ์— ์žˆ๋Š” ๊ฐ•์ขŒ์ž…๋‹ˆ๋‹ค~! ์ด ๊ฐ•์ขŒ๋ฅผ ์„ ํƒํ•œ ์ด์œ  1. ํƒ„ํƒ„ํ•œ ๊ฐ•์˜ ๋ชฉ์ฐจ -> ์™„์ „ ์ƒ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค์Šต๊นŒ์ง€ ํ•œ๋ฒˆ์— ํ•ด๊ฒฐ ๊ฐ€๋Šฅ! 2. ํ˜„์ง ๊ฐœ๋ฐœ์ž ์„ ์ƒ๋‹˜ -> ์‹ค๋ฌด์—์„œ ์ž‘์—…ํ•˜๋Š” ๋‚ด์šฉ ์œ„์ฃผ! 3. ํ’๋ถ€ํ•œ ๋‚ด์šฉ์˜ ํ•™์Šต์ž๋ฃŒ ๊ทธ๋ž˜์„œ ๋•๋ถ„์— ๋‚˜๋ฆ„ ๊ฐœ๋…์„ ์ €์˜ ๋‹จ์–ด๋กœ ์ •๋ฆฌ๋ฅผ ํ•ด๊ฐ€๋ฉด์„œ ๊ณต๋ถ€ํ•˜๊ธฐ๊ฐ€ ํ›จ์”ฌ ์ˆ˜์›” ํ–ˆ์Šต๋‹ˆ๋‹ค! ์ด๋Ÿฐ์‹์œผ๋กœ ์‹ค์Šต ๊ฐ•์˜๋ฅผ ๋ณด๋ฉฐ ๋”ฐ๋ผํ•˜๋ฉด ์•„๋ฌด ์–ด๋ ค์›€ ์—†์ด ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!ใ…Žใ…Ž ์–ด๋ ต๊ฒŒ๋งŒ ๋Š๊ปด์กŒ๋˜ AWS์— ํ•œ๋ฐœ ๋” ๊ฐ€๊นŒ์›Œ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹น ใ…Žใ…Ž ํ•ด์ปค์Šค HRD์˜ ๊ฐ•์ขŒ ๊ฐ•์ถ”!!
ยท๐Ÿ”  Language/JAVA
์ตœ๊ทผ ํฌํด์šฉ์œผ๋กœ ์˜คํ”ˆ๋งˆ์ผ“ ํ”Œ๋žซํผ์„ ์ฃผ์ œ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‚˜ ํ–ˆ๋Š”๋ฐ, ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด ๋น ์ ธ์žˆ์–ด์„œ ์ด๋ฒˆ์— ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•œ๋‹ค ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ํ•˜๋ ค๊ณ  ์—ฌ๊ธฐ์ €๊ธฐ ์„œ์น˜๋ฅผ ํ•ด๋ณธ ๊ฒฐ๊ณผ ELK์Šคํƒ์„ ๋ฐ”๋กœ ์ ์šฉํ• ๊นŒ?ํ•˜๋‹ค๊ฐ€ ์š”์ฆ˜ ์ž์†Œ์„œ๋‹ˆ ์ฝ”ํ…Œ๋‹ˆ ์Šคํ„ฐ๋””๋‹ˆ ํ• ๊ฒŒ ๋„ˆ๋ฌด ๋งŽ๊ธฐ๋„ ํ•˜๊ณ , ์šฐ์„ ์ ์œผ๋กœ ์ƒํ’ˆ ๊ฒ€์ƒ‰ ๋”ฑ ํ•œ ๊ธฐ๋Šฅ์—๋งŒ ์“ธ๊ฑด๋ฐ ๋„ˆ๋ฌด ์˜ค๋ฒ„์ŠคํŽ™์ด์ง€ ์•Š๋‚˜ ์‹ถ์–ด์„œ apache lucence ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์จ๋ณผ ์˜ˆ์ •์ด๋‹ค.
ยท๐Ÿ”  Language/JAVA
* ์กฐ์ธ ํฌ์ธํŠธ(Join point) ์–ด๋“œ๋ฐ”์ด์Šค๊ฐ€ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜, ๋ฉ”์†Œ๋“œ ์‹คํ–‰, ์ƒ์„ฑ์ž ํ˜ธ์ถœ, ํ•„๋“œ ๊ฐ’ ์ ‘๊ทผ, static ๋ฉ”์„œ๋“œ ์ ‘๊ทผ ๊ฐ™์€ ํ”„๋กœ ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ์ง€์  ์กฐ์ธ ํฌ์ธํŠธ๋Š” ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์ด๋‹ค. AOP๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ง€์ ์ด๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์Šคํ”„๋ง AOP๋Š” ํ”„๋ก์‹œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์กฐ์ธ ํฌ์ธํŠธ๋Š” ํ•ญ์ƒ ๋ฉ”์†Œ๋“œ ์‹คํ–‰ ์ง€์ ์œผ๋กœ ์ œํ•œ๋œ๋‹ค. * ํฌ์ธํŠธ์ปท(Pointcut) ์กฐ์ธ ํฌ์ธํŠธ ์ค‘์—์„œ ์–ด๋“œ๋ฐ”์ด์Šค๊ฐ€ ์ ์šฉ๋  ์œ„์น˜๋ฅผ ์„ ๋ณ„ํ•˜๋Š” ๊ธฐ๋Šฅ ์ฃผ๋กœ AspectJ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•ด์„œ ์ง€์ • ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ”„๋ง AOP๋Š” ๋ฉ”์„œ๋“œ ์‹คํ–‰ ์ง€์ ๋งŒ ํฌ์ธํŠธ์ปท์œผ๋กœ ์„ ๋ณ„ ๊ฐ€๋Šฅ * ํƒ€์ผ“(Target) ์–ด๋“œ๋ฐ”์ด์Šค๋ฅผ ๋ฐ›๋Š” ๊ฐ์ฒด, ํฌ์ธํŠธ์ปท์œผ๋กœ ๊ฒฐ์ • * ์–ด๋“œ๋ฐ”์ด์Šค(Advice) ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ ํŠน์ • ์กฐ์ธ ํฌ์ธํŠธ์—์„œ Aspect์— ์˜ํ•ด..
ยท๐Ÿ”  Language/JAVA
0. ์ปฌ๋ ‰์…˜ ์ปฌ๋ ‰์…˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ํŠน์ง•์„ ์‚ด๋ ค sql ์งˆ์˜์™€ ๊ฐ™์ด ๋น„์Šทํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. → ์„ ์–ธํ˜• ์ด์™€ ๊ฐ™์ด ๋งŽ์€ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์ปค๋‹ค๋ž€ ์ปฌ๋ ‰์…˜์€ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ⇒ ์ŠคํŠธ๋ฆผ์ด ํ•ด๊ฒฐ์ฑ…! 1. ์ŠคํŠธ๋ฆผ ์†Œ๊ฐœ ์ž๋ฐ” 8์—์„œ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ ์„ ์–ธํ˜•์œผ๋กœ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ์ฝ”๋“œ ๊ตฌํ˜„ ์—†์ด ๋ณ‘๋ ฌ๋กœ ํˆฌ๋ช…ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๋ณ‘๋ ฌํ™”ํ•˜๋ฉด์„œ ์Šค๋ ˆ๋“œ์™€ ๋ฝ์„ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Œ ์ŠคํŠธ๋ฆผ ์ ์šฉ ์ „์˜ ์ž๋ฐ” 7์ฝ”๋“œ List lowCaloricDishes = new ArrayList(); for(Dish dish: menu) { // ๋ˆ„์ ์ž๋กœ ์š”์†Œ ํ•„ํ„ฐ๋ง if(dish.getCalories() < 400) { lowCaloricDishes.add(dish); } } // ์ต๋ช… ํด๋ž˜์Šค๋กœ..
ยท๐Ÿ”  Language/JAVA
์ด๊ฑด ๋‚ด๊ฐ€ ๊ฒฝํ—˜ํ•œ ํŠธ๋Ÿฌ๋ธ”์€ ์•„๋‹ˆ๊ณ  ์šฐ๋ฆฌ ์Šคํ„ฐ๋””์›์ด ๊ฒช์€ ์—๋Ÿฌ๋ฅผ ๊ฐ™์ด ํ•ด๊ฒฐํ•ด๋ดค๋‹ค. ์žฌ๋ฐŒ์—ˆ์–ด์„œ ํฌ์ŠคํŒ…. spring data jpa + spring boot 3.2.0 + h2 2.2.224 + querydsl 5.0.0 ํ™˜๊ฒฝ๊ตฌ์„ฑ์ด๋‹ค. ์ „์— h2DB๋ฅผ 1.4.๋ช‡์œผ๋กœ ๊น”์•„๋†จ์—ˆ๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ผ๋‹จ DB๋Š” ๋‹ค ์‚ญ์ œ ํ–ˆ๊ณ  ๋‹ค์‹œ ๋ฒ„์ „์— ๋งž๋Š” ๊ฑธ ์„ค์น˜ํ–ˆ๋Š”๋ฐ๋„ Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "start_value" not found [42122-224] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' d..
ยท๐Ÿ”  Language/JAVA
๋žŒ๋‹ค ํ‘œํ˜„์‹ 3.1 ๋žŒ๋‹ค๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ๋‹จ์ˆœํ™”ํ•œ ๊ฒƒ [ํŠน์ง•] ์ต๋ช… ๋ณดํ†ต์˜ ๋ฉ”์„œ๋“œ์™€ ๋‹ฌ๋ฆฌ ์ด๋ฆ„์ด ์—†์œผ๋ฏ€๋กœ ์ต๋ช…์ด๋ผ ํ‘œํ˜„ํ•œ๋‹ค. ํ•จ์ˆ˜ ๋žŒ๋‹ค๋Š” ๋ฉ”์„œ๋“œ์ฒ˜๋Ÿผ ํŠน์ • ํด๋ž˜์Šค์— ์ข…์†๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ•จ์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํ•˜์ง€๋งŒ ๋ฉ”์„œ๋“œ์ฒ˜๋Ÿผ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฆฌ์ŠคํŠธ, ๋ฐ”๋””, ๋ฐ˜ํ™˜ ํ˜•์‹, ๊ฐ€๋Šฅํ•œ ์˜ˆ์™ธ ๋ฆฌ์ŠคํŠธ๋ฅผ ํฌํ•จํ•œ๋‹ค. ์ „๋‹ฌ ๋žŒ๋‹ค ํ‘œํ˜„์‹์„ ๋ฉ”์„œ๋“œ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ๋ณ€์ˆ˜๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๊ฒฐ์„ฑ ์ต๋ช… ํด๋ž˜์Šค์ฒ˜๋Ÿผ ๋งŽ์€ ์ž์งˆ๊ตฌ๋ ˆํ•œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋žŒ๋‹ค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ”๊พผ ์ฝ”๋“œ Comparator byWeight = new Comparator() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()..
ยท๐Ÿ”  Language/JAVA
๊น€์˜ํ•œ ์„ ์ƒ๋‹˜ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์Šคํ”„๋ง๋ถ€ํŠธ 3.1.5๋กœ ์—…๊ธ€ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ. gradle ๋ฒ„์ „ ์ถฉ๋Œ ๋ฌธ์ œ๋‹ค ํ”„๋กœ์ ํŠธ ์ด๋ฆ„/gradle/wrapper/gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip ์ด๊ฑฐ๋ฅผ distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 7.2 -> 7.6 ๋ณ€๊ฒฝ ํ›„ gradle ๋‹ค์‹œ ์ƒˆ๋กœ ๊ณ ์นจํ•˜๋ฉด ์ž˜๋œ๋‹ค.
flyweight pattern 1. Flyweight Fly(๊ฐ€๋ฒผ์šด) + Weight(๋ฌด๊ฒŒ)๋ฅผ ๋œปํ•˜๋ฉฐ, ๋ณต์‹ฑ์˜ ์ฒด๊ธ‰์—์„œ ์œ ๋ž˜๋˜์—ˆ๋‹ค. ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ์ผ์ผํžˆ ์ธ์Šคํ„ด์Šคํ™” ํ•˜์ง€์•Š๊ณ  ์žฌ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋Š” ์žฌ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€๋ณ๊ฒŒ ๋งŒ๋“ ๋‹ค๋Š” ์˜๋ฏธ๋กœ์„œ ์“ฐ์ธ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ⇒ ๊ฐ€๋ณ๊ฒŒ ๋งŒ๋“ ๋‹ค! ๊ณต์œ ๋œ ์ž์›๊ณผ ๊ทธ๋ ‡์ง€ ์•Š์€ ์ž์›์˜ ์‚ฌ์šฉ๋Ÿ‰ ์ฐจ์ด 2. Flyweight ํŒจํ„ด ๊ตฌ์กฐ Flyweight : ๊ฒฝ๋Ÿ‰ ๊ฐ์ฒด๋ฅผ ๋ฌถ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ConcreteFlyweight : ๊ณต์œ  ๊ฐ€๋Šฅํ•˜์—ฌ ์žฌ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด(intrinsic state) UnsahredConcreteFlyweight: ๊ณต์œ  ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด (extrinsic state) FlyweightFactory : ๊ฒฝ๋Ÿ‰ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๊ณต์žฅ ์—ญํ• ๊ณผ ์บ์‹œ ์—ญํ• ์„ ๊ฒธ๋น„ํ•˜๋Š” Flywei..
ํ‚จ์ง€ (Kinzie)
ํ‚จ์ง€ dev ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป