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

์ „์ฒด ๊ธ€

(259)
[์ŠคํŒ€ ๊ฒŒ์ž„ ์ถ”์ฒœ] 3๋Œ€ ์•…๋งˆ์˜ ๊ฒŒ์ž„ ๊ท€ํ™˜! 'HOMM: ์˜ฌ๋“  ์—๋ผ' ์–ผ๋ฆฌ ์–ต์„ธ์Šค ๋‚ด๋ˆ๋‚ด์‚ฐ ์ฐํ›„๊ธฐ (feat. ๋‚ด 3์‹œ๊ฐ„ ์–ด๋””๊ฐ..? ํ•œํ„ด๋งŒ ๋”.. ํ•œํ„ด๋งŒ ๋”) ์•ˆ๋…•ํ•˜์„ธ์š”! ์—ฌ๋Ÿฌ๋ถ„... ์ € ์˜ค๋Š˜ ์ง„์งœ ๋ฌด์„œ์šด ๊ฒฝํ—˜์„ ํ•˜๊ณ  ์™”์Šต๋‹ˆ๋‹ค. ํƒ€์ž„๋จธ์‹ ์ด ์•„์ง ๊ฐœ๋ฐœ ์•ˆ ๋œ ์ค„ ์•Œ์•˜๋Š”๋ฐ, ์ŠคํŒ€(Steam)์—์„œ ๋ฒ„์ “์ด ํŒ”๊ณ  ์žˆ๋”๋ผ๊ณ ์š”? ใ…‹ใ…‹ใ…‹์ตœ๊ทผ์— ๋ฐ๋ชจ ๋ฒ„์ „์ด ๋‚˜์™€์„œ '์˜ค? ๋“œ๋””์–ด ๋‚˜์˜ค๋‚˜?' ํ•˜๊ณ  ๊ฐ๋งŒ ์žฌ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์–ผ๋งˆ ์ง€๋‚˜์ง€๋„ ์•Š์•„์„œ ๋ฐ”๋กœ ์–ผ๋ฆฌ ์–ต์„ธ์Šค(Early Access) ๋กœ ์ถœ์‹œ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ ๊ทธ ๊ฒŒ์ž„.๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ์ผœ๋ฉด ํ•ด๊ฐ€ ๋œจ๋Š” ๊ฑธ ๋ด์•ผ ๋Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ „์„ค์˜ ๊ทธ ์ด๋ฆ„, ํžˆ์–ด๋กœ์ฆˆ ์˜ค๋ธŒ ๋งˆ์ดํŠธ ์•ค ๋งค์ง: ์˜ฌ๋“  ์—๋ผ (Heroes of Might and Magic: Olden Era) ์ž…๋‹ˆ๋‹ค. ๐Ÿ’ธ ์ •์‹  ์ฐจ๋ ค๋ณด๋‹ˆ ๋‚ด ์†์—” ์˜์ˆ˜์ฆ์ด...์†”์งํžˆ ์ฒ˜์Œ์—” ์•ˆ ์‚ฌ๋ ค๊ณ  ํ–ˆ์–ด์š”. "์•„์ง ์–ผ๋ฆฌ ์–ต์„ธ์Šค์ž–์•„? ์ •์‹ ์ถœ์‹œ๋˜๋ฉด ์‚ฌ์•ผ์ง€~" ๋ผ๊ณ  ๊ตณ๊ฒŒ ๋‹ค์งํ–ˆ๊ฑฐ๋“ ์š”.๊ทผ๋ฐ ์ŠคํŒ€ ์ƒ์  ํŽ˜์ด์ง€๋ฅผ ..
[์˜์ •๋ถ€ ๋Œ€ํ˜• ์นดํŽ˜] ์•„๋‚˜ํ‚ค์•„ ์ด๊ฒŒ ์ง„์งœ ๋Œ€ํ˜•์นดํŽ˜ ๐Ÿฅโ˜• ๊ธด ์—ฐํœด ๊ธฐ๊ฐ„์— ์˜์ •๋ถ€์— ๋‹ค๋…€์™”๋‹ค์›๋ž˜ ์ง‘ ๊ทผ์ฒ˜๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š์ง€๋งŒ...ใ…Žใ…Ž๋งˆ์Œ๋จน๊ณ  ๋‹ค๋…€์˜จ ์˜์ •๋ถ€! ๊ฐ„ ๊น€์— ์นดํŽ˜๋„ ๋‹ค๋…€์™”๋Š”๋ฐ ๊ทธ๊ณณ์€์œ„๋‚˜๋ผ ์ตœ๋Œ€ ๊ทœ๋ชจ ์นดํŽ˜๋ผ๊ณ  ํ•˜๋Š”'์•„๋‚˜ํ‚ค์•„' ๐Ÿ“์•„๋‚˜ํ‚ค์•„๊ฒฝ๊ธฐ๋„ ์˜์ •๋ถ€์‹œ ์ž”๋Œ๊ธธ 22 ๐Ÿš˜์ฃผ์ฐจ์žฅ ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ์ฒญ๊ฒฐํ•˜๊ณ  ์‹œ์Šคํ…œ์ด ์ž˜ ๊ตฌ์ถ•๋˜์–ด ์žˆ์—ˆ๋‹ค ์ฃผ์ฐจ๋Š” ์•„๋‚˜ํ‚ค์•„ ์ „์šฉ ์ฃผ์ฐจ์žฅ์ด ์žˆ๋‹ค์•ˆ๋‚ดํ•ด ์ฃผ์‹œ๋Š” ๋ถ„๋“ค์ด ๊ฐ ์ธต๋งˆ๋‹ค ๊ณ„์…”์„œ๋ช‡ ์ธต์œผ๋กœ ๊ฐ€๋ผ ์•ˆ๋‚ด๋„ ํ•ด์ฃผ์…”์„œ ํŽธ์•ˆํ–ˆ๋‹ค์•„๋‹ˆ ๊ทผ๋ฐ, ๋“ค์–ด๊ฐˆ ๋• ์ง„์ž ๋„๋„ ํ–ˆ๋Š”๋ฐ๋‚˜์˜ฌ ๋•Œ ๋ณด๋‹ˆ๊นŒ ๋ฐ–๊นŒ์ง€ ์ฐจ๋“ค์ด ๋Œ€๊ธฐ๊ฐ€ ์žˆ์—ˆ๋‹ค ใ…‡_ใ…‡์ด๋ ‡๊ฒŒ ์œ ๋ช…ํ•œ ๊ณณ์„ ์‰ฝ๊ฒŒ ๋“ค์–ด๊ฐ”์—ˆ๋‚˜ ๋ณด๋‹ค ใ…‹ใ…‹ 1์ธต์€ ์ฃผ๋ฌธํ•˜๋Š” ๊ณณ2,3์ธต์€ ์ปคํ”ผ ๋งˆ์‹ค ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด๊ณ 4์ธต 5์ธต์€ ํ–‰์‚ฌ๋ฅผ ํ•˜๋Š” ๊ณณ์ด์—ˆ๋‹ค 2์ธต์€ ์ฃผ๋ง ๊ณต์—ฐํ•  ๋•Œ ๋ณด๋ฉด์„œ ์ปคํ”ผ ๋งˆ์‹ค ์ˆ˜ ์žˆ๊ณ 3์ธต์€ ์›๋ž˜ '๋ฐ”'๋กœ ์šด์˜๋˜๋˜ ๊ณณ ๊ฐ™์€๋ฐ๋ฆฌ๋ชจ๋ธ๋ง ์ „..
Yahoo ํŒํƒ€์ง€ ๊ฒŒ์ž„ - NBA ์ง€์ธ์˜ ์†Œ๊ฐœ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ Yahoo Fantasy BasketBall ์ž‘๋…„์—๋Š” ์•„์‰ฝ๊ฒŒ 7์œ„๋กœ ๋งˆ๋ฌด๋ฆฌํ•˜์—ฌ ํ”Œ๋ ˆ์ด์˜คํ”„์— ์ฐธ๊ฐ€๋ฅผ ํ•˜์ง€ ๋ชปํ•˜์˜€๋Š”๋ฐ, ์˜ฌํ•ด๋Š” ์šฐ์Šน์œผ๋กœ ํ•œ ํ•ด๋ฅผ ๋งˆ๋ฌด๋ฆฌํ–ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ฝ‘์€ ์„ ์ˆ˜๋“ค์€ ์ด๋žฌ๋‹ค. - ๋งˆ์ง€๋ง‰๊นŒ์ง€ ์œ ์ง€ํ•œ ์„ ์ˆ˜๋Š” ๋‹จ 4๋ช…์— ๋ถˆ๊ณผํ–ˆ๋‹ค. 1R - ํ• ๋ฆฌ๋ฒ„ํŠผ 2R - ํƒ€์šด์Šค 3R - ์›ธ๋ฐ˜์•ผ๋งˆ 4R - ์•„๋ˆ„๋…ธ๋น„ 5R - ์กฐ๋˜ํ’€ 6R - ์ œ์ด๋ฅ 7R - ๋งˆํฌ์ฃผ 8R - ๋””๋กœ 9R - ์ž์Šค์ฅฌ 10R - ์กฐ์‰ฌํ•˜ํŠธ 11R - PJ ์›Œ์‹ฑํ„ด 12R - ์•Œ ํ˜ธํฌ๋“œ 13R - ๋ง๋ฆญ ๋ชฝํฌ ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰ ์ฃผ์ฐจ ๋‚ด ์„ ์ˆ˜ ๋ฆฌ์ŠคํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค. ์Šˆ๋กœ๋” ํ• ๋ฆฌ๋ฒ„ํŠผ ์ œ์ด๋ฅ ์œ„๊ธด์Šค ์›ธ๋ฐ˜์•ผ๋งˆ ํ•˜์น˜๋ฌด๋ผ ์˜ฌ๋ฆฌ๋‹‰ ์›ฌ์นด์ฅฌ ํŠธ๋ ˆ์กด์Šค ๊ทธ๋ ˆ์ด์Šจ ์•Œ๋ Œ ์นผ๋ฐํฌํ”„ ๋งˆํฌ์ฃผ ๋“€๋ Œ 3R์—์„œ ๋ฝ‘์€ ์ด๋ฒˆ ์‹œ์ฆŒ ์‹ ์ธ์™•์ด์ž ์ด๋ฒˆ ์‹œ์ฆŒ ํŒํƒ€์ง€์˜ ์ตœ..
์นด์นด์˜ค OAuth2 ๋กœ๊ทธ์ธ ์‚ฌํŒŒ๋ฆฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์•ˆ๋˜๋Š” ์ด์Šˆ ์ผ์„ ํ•˜๋‹ค๋ณด๋‹ˆ ์นด์นด์˜ค OAuth ์—ฐ๋™ ๋กœ๊ทธ์ธ์ด ์‚ฌํŒŒ๋ฆฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์•ˆ๋˜๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด์œ ๋Š” ๊ฐ„๋‹จํ–ˆ๋‹ค. iCloud ๋น„๊ณต๊ฐœ ๋ฆด๋ ˆ์ด๊ฐ€ ์ผœ์ ธ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌํŒŒ๋ฆฌ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด IP์ถ”์ ์„ ๋ง‰๊ธฐ ์œ„ํ•ด IP๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š”๋ฐ ์ด ๊ฒฝ์šฐ ์นด์นด์˜ค ์ •์ฑ…์ƒ ๋กœ๊ทธ์ธ ๋„์ค‘์— IP ๋ณ€๊ฒฝ ๋˜๋Š” ๊ฒฝ์šฐ ๊ณ„์ • ํƒˆ์ทจ ์‹œ๋„์™€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๊ทธ์ธ ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ iOS 17์ด ๋˜๋ฉด์„œ ์ด ๊ธฐ๋Šฅ์ด ๋” ์ž์ฃผ ์ผœ์ง€๊ฒŒ ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์‚ฌํŒŒ๋ฆฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์นด์นด์˜ค ๋กœ๊ทธ์ธ์ด ์•ˆ๋˜๋ฉด ์„ค์ • > ์‚ฌ์šฉ์ž ์ด๋ฆ„ > iCloud > ๋น„๊ณต๊ฐœ ๋ฆด๋ ˆ์ด ์ด๋™ ํ›„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์…‹ํŒ…ํ•ด๋ณด์ž ~
ํŒŒ์ด์ฌ - ์ˆ˜์‹(์‚ฌ์น™์—ฐ์‚ฐ)์„ ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ด๋ฏธ์ง€์˜ ์ œ๋ชฉ์œผ๋กœ ํ•˜๊ธฐ import random from PIL import Image, ImageDraw, ImageFont # ์ˆ˜์‹ ์ƒ์„ฑ ํ•จ์ˆ˜ def generate_equation(): operand_count = random.randint(2, 3) # ํ•ญ์˜ ๊ฐœ์ˆ˜ (2-3) equation = "" # ๋žœ๋คํ•˜๊ฒŒ ์ˆซ์ž์™€ ์—ฐ์‚ฐ์ž๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์ˆ˜์‹ ์ƒ์„ฑ for i in range(operand_count): if i > 0: operator = random.choice(["+", "-"]) # ์—ฐ์‚ฐ์ž ์„ ํƒ (+, -) equation += operator equation += str(random.randint(1, 9)) # ์ˆซ์ž ์„ ํƒ # ๊ณฑํ•˜๊ธฐ ์—ฐ์‚ฐ์ž ์ถ”๊ฐ€ (์ตœ๋Œ€ 1๋ฒˆ) if random.random() < 0.5: # 50..
ํŒŒ์ด์ฌ - ์‚ฌ์ดํŠธ ํฌ๋กค๋งํ•ด์„œ ์ •๋ณด ์ €์žฅํ•˜๊ธฐ (ํฌ์ผ“๋ชฌ ๋„๊ฐ LOCAL์— ์ €์žฅ) import os import re import requests from bs4 import BeautifulSoup from urllib.parse import urljoin # ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ directory = "C:/app/pokemon9" # ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. if not os.path.exists(directory): os.makedirs(directory) # ํฌ์ผ“๋ชฌ ๋ฒˆ์—ญ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ ๋”•์…”๋„ˆ๋ฆฌ ์ƒ์„ฑ translation_data = { "Sprigatito": "๋‚˜์˜คํ•˜", "Floragato": "๋‚˜๋กœํ…Œ", "Meowscarada": "๋งˆ์Šค์นด๋‚˜", "Fuecoco": "๋œจ์•„๊ฑฐ", "Crocalor": "์•…๋œจ๊ฑฐ", "Skeledirge": "๋ผ์šฐ๋“œ๋ณธ", "Q..
Spring Boot & DDD(Domain-Driven Design) ์•„ํ‚คํ…์ฒ˜ Spring Boot & DDD(Domain-Driven Design) ์•„ํ‚คํ…์ฒ˜ DDD๋Š” ๋ณต์žกํ•œ ๋„๋ฉ”์ธ์„ ์ดํ•ดํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์— ์ดˆ์ ์„ ๋งž์ถ˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ด์–ด๋กœ ๋‚˜๋ˆ„์–ด ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ ˆ์ด์–ด๋Š” ๊ฐ๊ฐ์˜ ์ฑ…์ž„๊ณผ ์—ญํ• ์„ ๊ฐ€์ง€๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ ˆ์ด์–ด๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Spring Boot๋Š” Spring Framework์˜ ๊ฐ„์†Œํ™”๋œ ๋ฒ„์ „์œผ๋กœ, Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. Spring Boot๋Š” ์„ค์ •์˜ ์ž๋™ํ™”, ๋‚ด์žฅ๋œ ์„œ๋ฒ„, ์Šคํ”„๋ง ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. Spring Boot์™€ DDD๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ, ์ „ํ†ต์ ์ธ Spring ๊ธฐ๋ฐ˜์˜ ๊ณ„์ธต ๊ตฌ์กฐ ๋Œ€์‹  D..
JAVA & Spring Boot JAVA๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ํ”Œ๋žซํผ์— ๋…๋ฆฝ์ ์ธ ์–ธ์–ด๋ผ๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” CLASSํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์ด ํŒŒ์ผ์˜ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ฝ์€ ๋’ค ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ ์—์„œ ๊ธฐ๊ณ„์–ด๋กœ ๋ฐ”๊พธ์–ด ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œˆ๋„์šฐ, ๋ฆฌ๋ˆ…์Šค, ๋งฅOS๋“ฑ OS์— ๊ตฌ๋ถ„์—†์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฆ˜ ๊ฐœ๋ฐœ์–ธ์–ด๋กœ ๊ฐ๊ด‘๋ฐ›๊ณ  ์žˆ๋Š” Python, Ruby๋ฅผ ์ˆœ์ˆ˜ ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ผ ๋ถ€๋ฅด๋Š”๋ฐ, JAVA๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ์ฒด๋กœ ๋ณด๋Š” ์–ธ์–ด๋Š” ์•„๋‹ˆ๋‹ค. *์›์‹œํƒ€์ž…(Primitive)์€ ๊ฐ์ฒด๋กœ ๋ณด์ง€ ์•Š์Œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ž ๊น ์„ค๋ช…ํ•˜์ž๋ฉด, ์ž‘์€ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋“ค์„ ๋งŒ๋“  ํ›„ ๊ฐ์ฒด๋“ค์„ ์กฐํ•ฉํ•ด์„œ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ƒํ–ฅ์‹ ํ•ด๊ฒฐ๋ฒ•์„ ๋„์ž…ํ•ด์„œ ๋งŒ๋“  ๊ฒƒ์œผ๋กœ ์ด๋Ÿฐ ๊ฐ์ฒด๋“ค์€ ๋งŒ๋“ค์–ด ๋†“๊ธฐ๋งŒ ํ•˜๋ฉด ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ์š”..