๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€422

์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ - 4์žฅ ์ถ”์ƒํ™” ์„ค๊ณ„ ์•„์ดํ…œ 26. ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ์ถ”์ƒํ™” ๋ ˆ๋ฒจ์„ ํ†ต์ผํ•˜๋ผ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ์ถ”์ƒํ™”๋Š” ๋ณต์žกํ•œ ์ž๋ฃŒ, ๋ชจ๋“ˆ, ์‹œ์Šคํ…œ ๋“ฑ์œผ๋กœ๋ถ€ํ„ฐ ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋… ๋˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ„์ถ”๋ ค๋‚ด๋Š” ๊ฒƒ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด, ์ถ”์ƒํ™”๋Š” ๋ณต์žก์„ฑ์„ ์ˆจ๊ธฐ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋‹จ์ˆœํ•œ ๋ฐฉ์‹ ์ฝ”๋“œ์—์„œ๋Š” ์ถ”์ƒํ™”๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋„๊ตฌ๊ฐ€ ๋ฐ”๋กœ ํ•จ์ˆ˜์ด๋‹ค.์ถ”์ƒํ™” ๋ ˆ๋ฒจ ํ†ต์ผ(Single Level of Abstraction, SLA) ์›์น™: ํ•จ์ˆ˜๋„ ๋†’์€ ๋ ˆ๋ฒจ๊ณผ ๋‚ฎ์€ ๋ ˆ๋ฒจ์„ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉclass CoffeeMachine { fun makeCoffee() { boilWater() // ๋ฌผ์„ ๋“์ด๊ณ , brewCoffee() // ์ปคํ”ผ๋ฅผ ๋‚ด๋ฆฌ๊ณ , pourCoffee() // ์ปคํ”ผ๋ฅผ ๋ถ“๊ณ , pourMilk() // ์šฐ์œ ๋ฅผ ๋„ฃ๋Š”๋‹ค... 2025. 7. 12.
Kafka Consumer ์„ค์ • ๊ฐ€์ด๋“œ ์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ Kafka Producer ์„ค์ •์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ์š”, ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Consumer ๊ด€๋ จํ•˜์—ฌ ์„ค์ •๋“ค์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. https://kafka.apache.org/documentation/#consumerconfigs Apache KafkaApache Kafka: A Distributed Streaming Platform.kafka.apache.orgkey.deserializerDeserializer class for key that implements the org.apache.kafka.common.serialization.Deserializer interface.key ๋ฐ์ดํ„ฐ์˜ ์—ญ์ง๋ ฌํ™”๋ฅผ ์œ„ํ•œ Deserializer ํด๋ž˜์ŠคType: classDefault: Name: KE.. 2025. 7. 9.
Kafka Producer ์„ค์ • ๊ฐ€์ด๋“œ Kafka๋ฅผ ์ฒ˜์Œ ๊ตฌ์ถ•ํ•˜๋ฉด์„œ(MSK) ๋‹จ์ˆœํžˆ Produce/Consume ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ”„๋กœ๋“€์„œ, ์ปจ์Šˆ๋จธ, ๋ธŒ๋กœ์ปค, ํ† ํ”ฝ ๋“ฑ ์„ค์ • ๊ฐ’๋“ค์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์ ์ ˆํžˆ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฝค๋‚˜ ์–ด๋ ค์› ๋Š”๋ฐ์š”,์ด์™€ ๊ด€๋ จํ•˜์—ฌ ๊ฐ๊ฐ ์–ด๋–ค ์„ค์ •๋“ค์ด ์กด์žฌํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ณ , ์ƒํ™ฉ์— ๋งž๋Š” ๊ฐ’๋“ค์„ ์ž˜ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  ์นดํ”„์นด ํ”„๋กœ๋“€์„œ(Producer) ๊ด€๋ จ ์„ค์ •๋ถ€ํ„ฐ! https://kafka.apache.org/documentation/#producerconfigs Apache KafkaApache Kafka: A Distributed Streaming Platform.kafka.apache.orgkey.serializerSerializer class for key that implements the o.. 2025. 7. 6.
์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ - 3์žฅ ์žฌ์‚ฌ์šฉ์„ฑ ์•„์ดํ…œ 19. knowledge(์˜๋„์ ์ธ ์ •๋ณด)๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผํ•„์ž๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐ€์žฅ ํฐ ๊ทœ์น™์€?ํ”„๋กœ์ ํŠธ์—์„œ ์ด๋ฏธ ์žˆ๋˜ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋ถ™์—ฌ๋„ฃ๊ณ  ์žˆ๋‹ค๋ฉด, ๋ฌด์–ธ๊ฐ€๊ฐ€ ์ž˜๋ชป๋œ ๊ฒƒ์ด๋‹ค.ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ค‘์š”ํ•œ knowledge ๋‘ ๊ฐ€์ง€?๋กœ์ง: ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€์™€ ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€๊ณตํ†ต ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์›ํ•˜๋Š” ๋™์ž‘์„ ํ•˜๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๊ณ„์† ๋ณ€ํ•˜์ง€๋งŒ, ๊ณตํ†ต ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•œ ๋ฒˆ ์ •์˜๋œ ํ›„ ํฌ๊ฒŒ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.class Student { fun isPassing(): Boolean = ... fun qualifiesForScholarship(): Boolean = ... private fun calculatePointsFromPassedC.. 2025. 6. 25.
์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ 2์žฅ - ๊ฐ€๋…์„ฑ ์•„์ดํ…œ 11. ๊ฐ€๋…์„ฑ์„ ๋ชฉํ‘œ๋กœ ์„ค๊ณ„ํ•˜๋ผ๋กœ๋ฒ„ํŠธ ๋งˆํ‹ด์˜ ํด๋ฆฐ ์ฝ”๋“œ ... "๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋Š” ๋ฐ๋Š” 1๋ถ„ ๊ฑธ๋ฆฌ์ง€๋งŒ, ์ฝ๋Š” ๋ฐ๋Š” 10๋ถ„์ด ๊ฑธ๋ฆฐ๋‹ค."๊ฐ€๋…์„ฑ์ด๋ž€, ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์˜๋ฏธํ•œ๋‹ค.// Aif (persion != null && person.isAdult) { view.showPerson(person)} else { view.showError()}// Bperson?.takeIf { it.isAdult } ?.let(view::showPerson) ?: view.showError()A๊ฐ€ ์ฝ๊ณ  ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์‰ฌ์šด๋ฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ '์ธ์ง€ ๋ถ€ํ•˜'๋ฅผ ์ค„์ด๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ๊ณ  ํ•œ๋‹ค.100% ๊ณต๊ฐ์ด ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ž˜ ์ตํžˆ๊ณ , ์ž˜ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ถฉ๋ถ„ํžˆ ์ฝ๊ณ .. 2025. 6. 14.
์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ - 1์žฅ ์•ˆ์ •์„ฑ ์•„์ดํ…œ 1. ๊ฐ€๋ณ€์„ฑ์„ ์ œํ•œํ•˜๋ผ(๊ฐ€๋Šฅํ•˜๋ฉด) var ๋ณด๋‹ค๋Š” val ์‚ฌ์šฉ(๊ฐ€๋Šฅํ•˜๋ฉด) mutable ํ”„๋กœํผํ‹ฐ๋ณด๋‹ค๋Š” immutable ํ”„๋กœํผํ‹ฐ ์‚ฌ์šฉmutable ๊ฐ์ฒด๋ฅผ ์™ธ๋ถ€์— ๋…ธ์ถœํ•˜์ง€ ๋ง์ž.class Test { fun calculate(): Int { println("Cal...") return 42 } val fizz = calculate() val buzz get() = calculate()}fun main() { println(Test().buzz)}//Cal...//Cal...//42์ฝ๊ธฐ ์ „์šฉ ์ปฌ๋ ‰์…˜์„ Mutable ์ปฌ๋ ‰์…˜์œผ๋กœ ๋‹ค์šด์บ์ŠคํŒ… ํ•˜๋ฉด ์•ˆ๋œ๋‹ค.์ฝ๊ธฐ ์ „์šฉ์—์„œ mutable๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ๋ณต์ œ๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด mutable ์ปฌ๋ ‰์…˜์„ .. 2025. 6. 3.
"์‹ฌํ”Œ ์†Œํ”„ํŠธ์›จ์–ด" ๋„์„œ ๋ฆฌ๋ทฐ 1๋ถ€ | ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ ์›์น™๊ฐ€๋Šฅํ•œ ํ•œ ์ข‹์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋˜๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ์›ํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ์•„๋ฌด๋ฆฌ ๊ฐ€๋ฅด์น˜๊ณ  ์ง€์ ํ•˜๊ณ  ์„ธ๋ฏธ๋‚˜์— ๋ณด๋‚ด๋”๋ผ๋„ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค. ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์€ ๋‚˜์•„์ง€์ง€ ์•Š๋Š”๋‹ค.ํ•ต์‹ฌ์€, ๋” ๋‚˜์•„์ง€๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ๋” ๋‚˜์•„์ง€๊ณ  ์‹ถ๋‹ค๋Š” ์˜์š•์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์—”์ง€๋‹ˆ์–ด์˜ ์ž์„ธ๋ถ„์•ผ๋ฅผ ๋ง‰๋ก ํ•˜๊ณ  ์—”์ง€๋‹ˆ์–ด๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒ๊ฐ์„ ํ•ด์•ผ ํ•œ๋‹ค. ๋‚˜๋Š” ์ด ๋ฌธ์ œ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ค ๋ฌธ์ œ๋“  ๊ทธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด ํ•ญ์ƒ ์กด์žฌํ•˜๊ณ , ๊ทธ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ผ ์ˆ˜๋„ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด๋ž€, ์œ ์ง€๋ณด์ˆ˜์— ์œ ๋ณ„๋‚˜๊ฒŒ ๊ณต์„ ๋“ค์ด์ง€ ์•Š๋”๋ผ๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ƒํ™ฉ์˜ ์กฐ๊ฑด์— ๋Œ€์‘ํ•˜๊ณ , ํ•ฉ๋ฆฌ์  ์ˆ˜์ค€์˜ ํŠธ๋ž˜ํ”ฝ ์–‘์„ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ข…์˜ ๋‹ค๋ฆฌ๋ฅผ ์ง“๋Š” ์ผ์งง์€ ๊ธฐ๊ฐ„์ด์—ˆ์ง€๋งŒ ์ดˆ๊ธฐ์˜ ํ”„๋Ÿฌ๋•ํŠธ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋Š” ๊ณผ.. 2025. 5. 24.
๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ Unique ID ์ƒ์„ฑ๊ธฐ ์„ค๊ณ„ https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=278536695 [์ „์ž์ฑ…] ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ16๊ฐ€์ง€ ์‹ค์ œ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฉด์ ‘ ๋ฌธ์ œ์™€ ์ƒ์„ธํ•œ ๋‹ต์•ˆ์„ ์ œ์‹œํ•œ๋‹ค. ์‹œ์Šคํ…œ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ ์ฃผ๋Š” 188๊ฐœ์˜ ๋„ํ•ด๋กœ ์„ค๋ช…ํ•˜๋ฉด์„œ 4๋‹จ๊ณ„ ์ ‘๊ทผ๋ฒ•์œผ๋กœ ๋ฉด์ ‘ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค. ์ด ์ฑ…www.aladin.co.kr ๊ฐœ์š”์ด๋ฒˆ ํŒŒํŠธ์—์„œ๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋  Unique ID ์ƒ์„ฑ๊ธฐ๋ฅผ ์„ค๊ณ„ํ•ด๋ณด์ž. ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ, ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ๋“ฑ์œผ๋กœ ID๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ๋Š” 'auto_increment' ์†์„ฑ์ด ์„ค์ •๋œ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณค ํ–ˆ๋‹ค.ํ•˜์ง€๋งŒ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ๋Š” 'auto_increment'๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š”๋ฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ํ•œ ๋Œ€๋กœ๋Š” ์š”๊ตฌ.. 2025. 5. 12.
"์ดํŽ™ํ‹ฐ๋ธŒ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜" ๋ฆฌ๋ทฐ ํ‰์†Œ์— ์ดํŽ™ํ‹ฐ๋ธŒ ์‹œ๋ฆฌ์ฆˆ(์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”, ์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ, ์ดํŽ™ํ‹ฐ๋ธŒ ์†Œํ”„ํŠธ์›จ์–ด ํ…Œ์ŠคํŒ… ...)๋ฅผ ์œ ์ตํ•˜๊ฒŒ ์ฝ์—ˆ๊ธฐ์— ํ•ด๋‹น ๋„์„œ๋„ ์žฌ๋ฐŒ์„ ๊ฒƒ ๊ฐ™์•„์„œ ์ œ๊ณต๋ฐ›์•„ ์ฝ์–ด๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.์ง€๊ธˆ ๋‹น์žฅ ์•„ํ‚คํ…ํŠธ ๋ ˆ๋ฒจ๋กœ ์‹ค๋ฌด๋ฅผ ๋‹ด๋‹นํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, ๊ฒฐ๊ตญ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ํฐ๊ทธ๋ฆผ(?)์„ ๋ณด๋Š”๊ฒƒ์ด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ๊ฒƒ์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋„์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ณต์žก์„ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ ๊ฐ€์น˜์ž„์„ ๊ฐ•์กฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„ํ‚คํ…ํŠธ๋Š” ์š”๊ตฌ์‚ฌํ•ญ์˜ ๋ณ€ํ™”์™€ ๊ธฐ์ˆ  ๋ณ€๋™์„ฑ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ํ•ต์‹ฌ์€ ๊ฒฐ๊ตญ ๋‹จ์ˆœํ•จ์ด๋ผ๊ณ  ๊ฑฐ๋“ญ ๊ฐ•์กฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œํ™”๋Š” ํ•„์ˆ˜์ ์ด๋ฉฐ, ์ตœ์‹  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์—†๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ๋‹ค๊ณ  ์–˜๊ธฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ •๋ณด ์•„ํ‚คํ…์ฒ˜์™€ ์šฉ์–ด์ง‘ ๊ด€๋ฆฌ๋กœ, ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ฒด๊ณ„์ .. 2025. 4. 26.
์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜์˜ ์„ค๊ณ„ https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=278536695 [์ „์ž์ฑ…] ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ16๊ฐ€์ง€ ์‹ค์ œ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฉด์ ‘ ๋ฌธ์ œ์™€ ์ƒ์„ธํ•œ ๋‹ต์•ˆ์„ ์ œ์‹œํ•œ๋‹ค. ์‹œ์Šคํ…œ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ ์ฃผ๋Š” 188๊ฐœ์˜ ๋„ํ•ด๋กœ ์„ค๋ช…ํ•˜๋ฉด์„œ 4๋‹จ๊ณ„ ์ ‘๊ทผ๋ฒ•์œผ๋กœ ๋ฉด์ ‘ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค. ์ด ์ฑ…www.aladin.co.kr ๊ฐœ์š”๋„คํŠธ์›Œํฌ ์‹œ์Šคํ…œ์—์„œ ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜(Rate Limiter)๋Š” ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๋ณด๋‚ด๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ฒ˜๋ฆฌ์œจ(rate)์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์น˜๋‹ค. API ์š”์ฒญ ํšŸ์ˆ˜๊ฐ€ ์ œํ•œ ์žฅ์น˜์— ์ •์˜๋œ ์ž„๊ณ„์น˜(threshold)๋ฅผ ๋„˜์–ด์„œ๋ฉด ์ถ”๊ฐ€๋กœ ๋„๋‹ฌํ•œ ๋ชจ๋“  ํ˜ธ์ถœ์€ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘๋‹จ(block)๋œ๋‹ค.์ด์™€ ๊ด€๋ จํ•˜์—ฌ ๋ช‡ ๊ฐ€์ง€ ์‚ฌ๋ก€๋“ค์€ ๋‹ค์Œ.. 2025. 3. 10.
๋ฐ˜์‘ํ˜•