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

์ „์ฒด ๊ธ€289

[Java] HashMap ๊ฐœ๋…๊ณผ ์‚ฌ์šฉ๋ฒ• ์™„์ „ ์ •๋ฆฌ ๐Ÿ’ก ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๋ ค๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์žˆ์—ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค ๋ณด๋‹ˆ ํŠน์ • ๊ฐ’์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์„ธ๊ฑฐ๋‚˜, ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ž์ฃผ ๋“ฑ์žฅํ–ˆ๋‹ค.์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ HashMap์„ ์•Œ์ง€ ๋ชปํ•˜๋ฉด ๊ตฌํ˜„ ์ž์ฒด๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ๊ฑธ ๋А๊ผˆ๊ณ , “์ด์ฐธ์— ๊ฐœ๋…๋ถ€ํ„ฐ ์ œ๋Œ€๋กœ ์žก์ž!”๋Š” ๋งˆ์Œ์œผ๋กœ HashMap์„ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๐Ÿ“ฆ HashMap,, ๊ทธ๋ž˜์„œ ๊ทธ๊ฒŒ ๋„๋Œ€์ฒด ๋ญ”๋ฐ?!HashMap์€ Map ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ Map ์ปฌ๋ ‰์…˜์ด๋‹ค. Map ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•˜๊ณ  ์žˆ๊ธฐ์— Map์˜ ์„ฑ์งˆ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Map์€ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ Entry๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ํ‚ค์™€ ๊ฐ’์€ ๋ชจ๋‘ ๊ฐ์ฒด์ด๋‹ค. ๊ฐ’์€ ์ค‘๋ณต ์ €์žฅ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํ‚ค๋Š” ์ค‘๋ณต ์ €์žฅ๋  ์ˆ˜ ์—†๋‹ค. ๋งŒ์•ฝ ๊ธฐ์กด์— .. 2025. 7. 10.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java] ๊ทค ๊ณ ๋ฅด๊ธฐ ๋ฌธ์ œ ์„ค๋ช…https://school.programmers.co.kr/learn/courses/30/lessons/138476 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr๊ฒฝํ™”๋Š” ๊ณผ์ˆ˜์›์—์„œ ๊ทค์„ ์ˆ˜ํ™•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝํ™”๋Š” ์ˆ˜ํ™•ํ•œ ๊ทค ์ค‘ 'k'๊ฐœ๋ฅผ ๊ณจ๋ผ ์ƒ์ž ํ•˜๋‚˜์— ๋‹ด์•„ ํŒ๋งคํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ˆ˜ํ™•ํ•œ ๊ทค์˜ ํฌ๊ธฐ๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š์•„ ๋ณด๊ธฐ์— ์ข‹์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•œ ๊ฒฝํ™”๋Š” ๊ทค์„ ํฌ๊ธฐ๋ณ„๋กœ ๋ถ„๋ฅ˜ํ–ˆ์„ ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒฝํ™”๊ฐ€ ์ˆ˜ํ™•ํ•œ ๊ทค 8๊ฐœ์˜ ํฌ๊ธฐ๊ฐ€ [1, 3, 2, 5, 4, 5, 2, 3] ์ด๋ผ๊ณ  ํ•ฉ์‹œ๋‹ค. ๊ฒฝํ™”๊ฐ€ ๊ทค 6๊ฐœ๋ฅผ ํŒ๋งคํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ํฌ๊ธฐ๊ฐ€ 1, 4์ธ ๊ทค์„ ์ œ์™ธํ•œ ์—ฌ์„ฏ ๊ฐœ์˜ ๊ทค์„ ์ƒ.. 2025. 7. 10.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java] ๊ตฌ๋ช…๋ณดํŠธ ๋ฌธ์ œ ์„ค๋ช…https://school.programmers.co.kr/learn/courses/30/lessons/42885 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr๋ฌด์ธ๋„์— ๊ฐ‡ํžŒ ์‚ฌ๋žŒ๋“ค์„ ๊ตฌ๋ช…๋ณดํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ์ถœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ช…๋ณดํŠธ๋Š” ์ž‘์•„์„œ ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ 2๋ช…์”ฉ ๋ฐ–์— ํƒˆ ์ˆ˜ ์—†๊ณ , ๋ฌด๊ฒŒ ์ œํ•œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ [70kg, 50kg, 80kg, 50kg]์ด๊ณ  ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์ด 100kg์ด๋ผ๋ฉด 2๋ฒˆ์งธ ์‚ฌ๋žŒ๊ณผ 4๋ฒˆ์งธ ์‚ฌ๋žŒ์€ ๊ฐ™์ด ํƒˆ ์ˆ˜ ์žˆ์ง€๋งŒ 1๋ฒˆ์งธ ์‚ฌ๋žŒ๊ณผ 3๋ฒˆ์งธ ์‚ฌ๋žŒ์˜ ๋ฌด๊ฒŒ์˜ ํ•ฉ์€ 150kg์ด๋ฏ€๋กœ ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์—ฌ ๊ฐ™์ด ํƒˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.๊ตฌ๋ช…๋ณดํŠธ๋ฅผ ์ตœ๋Œ€ํ•œ ์ ๊ฒŒ ์‚ฌ์šฉํ•˜.. 2025. 7. 9.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java] ์ ํ”„์™€ ์ˆœ๊ฐ„ ์ด๋™ ๋ฌธ์ œ ์„ค๋ช…https://school.programmers.co.kr/learn/courses/30/lessons/12980 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.krOO ์—ฐ๊ตฌ์†Œ๋Š” ํ•œ ๋ฒˆ์— K ์นธ์„ ์•ž์œผ๋กœ ์ ํ”„ํ•˜๊ฑฐ๋‚˜, (ํ˜„์žฌ๊นŒ์ง€ ์˜จ ๊ฑฐ๋ฆฌ) x 2 ์— ํ•ด๋‹นํ•˜๋Š” ์œ„์น˜๋กœ ์ˆœ๊ฐ„์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ์•„์ด์–ธ ์ŠˆํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ํŒ๋งคํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์•„์ด์–ธ ์ŠˆํŠธ๋Š” ๊ฑด์ „์ง€๋กœ ์ž‘๋™๋˜๋Š”๋ฐ, ์ˆœ๊ฐ„์ด๋™์„ ํ•˜๋ฉด ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์ด ์ค„์ง€ ์•Š์ง€๋งŒ, ์•ž์œผ๋กœ K ์นธ์„ ์ ํ”„ํ•˜๋ฉด K ๋งŒํผ์˜ ๊ฑด์ „์ง€ ์‚ฌ์šฉ๋Ÿ‰์ด ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์•„์ด์–ธ ์ŠˆํŠธ๋ฅผ ์ฐฉ์šฉํ•˜๊ณ  ์ด๋™ํ•  ๋•Œ๋Š” ์ˆœ๊ฐ„ ์ด๋™์„ ํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์•„์ด์–ธ ์ŠˆํŠธ ๊ตฌ๋งค์ž๋Š” ์•„์ด์–ธ ์Šˆ.. 2025. 7. 8.
[TIL] ํ”„๋กœ์ ํŠธ 25์ผ์ฐจ.. ๊ตฌํ˜„ํ–ˆ๋˜ ๊ธฐ๋Šฅ๋“ค ๋งˆ๋ฌด๋ฆฌํ•˜๊ธฐ!! ๐ŸŒž ์˜ค๋Š˜์€ ์–ด๋–ค ํ•˜๋ฃจ์˜€์ง€..์˜ค์ „์—๋Š” ์ƒํ’ˆ ๊ฐ€๊ฒฉ ๋ณ€๋™ ๋กœ์ง์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ์Ÿ์•˜๋‹ค.// ๊ฐ€๊ฒฉ ๊ด€๋ จ Kafka Listener@KafkaListener(topics = "${kafka.topic.price}", groupId = "${spring.kafka.consumer.product-combination.group-id}")public void listenPriceChange(@Header(KafkaHeaders.RECEIVED_KEY) String key, String value) { log.info("๐Ÿ“ฅ ๊ฐ€๊ฒฉ๋ณ€๋™ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ : key={}, value={}", key, value); try { OperationWrapperDto wrapperDto = JsonHelp.. 2025. 6. 12.
[TIL] ํ”„๋กœ์ ํŠธ 24์ผ์ฐจ.. ์ „์ฒด์ ์ธ ๋กœ์ง ๋งˆ๋ฌด๋ฆฌํ•˜๊ธฐ!! ๐ŸŒž ์˜ค๋Š˜์€ ์–ด๋–ค ํ•˜๋ฃจ์˜€์ง€..์šฐ์„  ํŒ€์›์˜ ํ”ผ๋“œ๋ฐฑ๋ถ€ํ„ฐ ์ฝ”๋“œ์— ๋ฐ˜์˜ํ–ˆ๋‹ค.Kafka๋กœ ์žฌ๊ณ  ๋ณต์› ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๋ถ€๋ถ„์ด ์ค‘๋ณต๋˜์–ด์„œ ๋ฉ”์„œ๋“œ๋กœ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์•„ ๋ณด์ธ๋‹ค๋Š” ์˜๊ฒฌ์— ์ˆ˜๊ธํ•˜๊ณ  ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”์ถœํ–ˆ๋‹ค.private void sendInventoryRestoreMessage(CreateDeliveryRequest request) { String payload = JsonHelper.toJson(request); OperationWrapperDto wrapper = OperationWrapperDto.from(OperationType.DELIVERY_FAIL_INVENTORY_RESTORE, payload); String wrappedMessage = JsonHelper.toJson(wra.. 2025. 6. 11.