728x90

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 53

MLOps : Kubeflow์™€ MLflow ๋น„๊ต: ์˜จํ”„๋ ˆ๋ฏธ์Šค MLOps ํ™˜๊ฒฝ์—์„œ Kubeflow๊ฐ€ ์ ํ•ฉํ•œ ์ด์œ 

MLOps๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ ๊ฐœ๋ฐœ๋ถ€ํ„ฐ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๊นŒ์ง€์˜ ๊ณผ์ •์„ ์ž๋™ํ™”ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” ๊ธฐ์ˆ ๋กœ, ์ตœ๊ทผ ๋งŽ์€ ๊ธฐ์—…๋“ค์ด ๋„์ž…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ณด์•ˆ๊ณผ ์„ฑ๋Šฅ ๋ฌธ์ œ๋กœ ์ธํ•ด ํด๋ผ์šฐ๋“œ ๋Œ€์‹  ์ž์ฒด ์ธํ”„๋ผ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Kubeflow์™€ MLflow์™€ ๊ฐ™์€ ๋„๊ตฌ๋“ค์ด ํ™œ์šฉ๋˜๋Š”๋ฐ, ๊ฐ๊ฐ์˜ ํŠน์ง•๊ณผ ์žฅ๋‹จ์ ์„ ์ดํ•ดํ•˜์—ฌ ์ ํ•ฉํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Kubeflow์™€ MLflow์˜ ์ฃผ์š” ์ฐจ์ด์ ์„ ์ค‘์‹ฌ์œผ๋กœ ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์—์„œ Kubeflow๋ฅผ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.๋ชฉ์ฐจKubeflow์™€ MLflow ๊ฐœ์š”Kubeflow์™€ MLflow์˜ ์ฃผ์š” ์ฐจ์ด์ ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์—์„œ Kubeflow๊ฐ€ ์ ํ•ฉํ•œ ์ด์œ ๊ฒฐ๋ก 1. Kubeflow์™€ MLflow ๊ฐœ์š”Ku..

AI/MLOps 2024.11.05

Kubeflow๋กœ MLOps ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•ํ•˜๊ธฐ: ๊ฐœ๋…๋ถ€ํ„ฐ ์‹ค์Šต๊นŒ์ง€

Kubeflow๋Š” Kubernetes ์œ„์—์„œ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ(MLOps)์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. Kubeflow๋Š” ๋ชจ๋ธ ํ•™์Šต, ์‹คํ—˜, ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹, ๋ฐฐํฌ๊นŒ์ง€ ๋จธ์‹ ๋Ÿฌ๋‹ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ ์ž๋™ํ™”์™€ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ, ํšจ์œจ์ ์ธ MLOps ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Kubeflow์˜ ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ๊ฐ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ MLOps ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.๋ชฉ์ฐจKubeflow ๊ฐœ์š”Kubeflow ์„ค์น˜Kubeflow์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†ŒํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ ๋ฐ ์‹คํ—˜๋ชจ๋ธ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌKubeflow์˜ ์žฅ๋‹จ์ 1. Kubeflow ๊ฐœ์š”Kubeflow๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ Kubernetes ์œ„์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ..

AI/MLOps 2024.11.05

[ Python ] dataclass ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ

Python์˜ Dataclass: ๊ฐœ๋…๊ณผ ํ™œ์šฉ๋ฒ•Python์˜ dataclass๋Š” ์ฝ”๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. Python 3.7๋ถ€ํ„ฐ ๋„์ž…๋œ dataclass๋Š” ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ณ , ๋” ๊ฐ€๋…์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” dataclass์˜ ๊ธฐ๋ณธ ๊ฐœ๋…, ํŠน์ง•, ์‚ฌ์šฉ๋ฒ•, ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ํฌํ•จํ•œ ์‹ฌํ™” ๋‚ด์šฉ๊นŒ์ง€ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.1. Dataclass๋ž€?dataclass๋Š” ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ๋•Œ ์œ ์šฉํ•œ Python์˜ ๋‚ด์žฅ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž, __repr__, __eq__ ๋“ฑ ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด ์คŒ์œผ๋กœ์จ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ณ , ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.from datacla..

Develop 2024.11.03

[ DAO, DTO, VO / Python ์—์„œ ] DAO, DTO, VO ์— ๋Œ€ํ•ด

Python์—์„œ DAO, DTO, VO๋ž€? ๊ฐœ๋…๊ณผ ์˜ˆ์ œPython์„ ๋น„๋กฏํ•œ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๊ตฌ์กฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋””์ž์ธ ํŒจํ„ด๊ณผ ๊ฐ์ฒด ์œ ํ˜•์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ DAO(Data Access Object), DTO(Data Transfer Object), VO(Value Object)์™€ ๊ฐ™์€ ๊ฐœ๋…์ด ์ž์ฃผ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•, ๊ทธ๋ฆฌ๊ณ  Python์—์„œ์˜ ๊ตฌํ˜„ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.1. DAO (Data Access Object)DAO๋ž€?DAO๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ ๋“ฑ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. DAO๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ง์ ‘์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹ด๋‹นํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ์ฝ”๋“œ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ ..

[ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ / Python ] ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋Š” ์™œ ์‚ฌ์šฉํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ

1. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋Š” ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋ฅผ ๋‹ค๋ฅธ ํ•จ์ˆ˜์— ์ธ์ž๋กœ ์ „๋‹ฌํ•˜์—ฌ, ์›๋ณธ ํ•จ์ˆ˜์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Python์—์„œ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋Š” @ ๊ธฐํ˜ธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. @๋ฐ์ฝ”๋ ˆ์ดํ„ฐdef ํ•จ์ˆ˜์ด๋ฆ„(): pass ์œ„ ๊ตฌ๋ฌธ์€ ํ•จ์ˆ˜์ด๋ฆ„ = ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ(ํ•จ์ˆ˜์ด๋ฆ„)๊ณผ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ˆœ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋Š” ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ๊ทธ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. def simple_decorator(func): def wrapper(): print(f"Calling function: {func.__name__}") func() return wrapper@simple_decoratordef say_hello(): ..

Design Pattern : VO ( Value Object ) ์™œ ์‚ฌ์šฉํ• ๊นŒ ?

์ฝ”๋“œ๋“ค์„ ์‚ดํŽด๋ณด๋‹ค๊ฐ€ VO ๊ฐ€ ๋ฐœ๊ฒฌ๋๋‹ค. ์ด๊ฒƒ์ด ๋ฌด์—‡์ธ๊ณ .. ํ•˜๋‹ˆ value object ๋ž€๋‹ค. ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. DAO DTO VO impl ... ์•„์ฃผ ๋ชจ๋ฅด๊ฒ ๋Š”๊ฒƒ๋“ค ํˆฌ์„ฑ์ด์ด๋‹ค. ๋””์ž์ธํŒจํ„ด์„ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋งˆ์Œ๋จน์€ ์ˆœ๊ฐ„์ด์—ˆ๋‹ค. ์ž๊ฒฉ์ฆ ์‹œํ—˜ ๋ณผ ๋•Œ ์žˆ์—ˆ๋˜ ์—„์ฒญ ๋งŽ์€ ๋””์ž์ธํŒจํ„ด๋“ค์ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ์ง€๋งŒ ์ผ๋‹จ ๋‚ด ์—…๋ฌด์˜ ๋””์ž์ธํŒจํ„ด์€ ์•Œ์•„์•ผ๊ฒ ๋‹ค. ์–ด์ฐจํ”ผ ๊ฐ๋™์—†๋Š” ๋ฐฐ์›€์€ ๊ธˆ๋ฐฉ ์žŠํ˜€์ง€๊ธฐ ๋•Œ๋ฌธ..1. VO( Value Obejct ) ๋Š” ๋ฌด์—‡์ผ๊นŒVO ์˜ ๊ทธ ์‚ฌ์ „์ ์ธ ์˜๋ฏธ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. VO(Value Object)๋Š”  ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. VO๋Š” ๊ฐœ๋ณ„์ ์œผ๋กœ ์‹๋ณ„๋  ํ•„์š” ์—†์ด, ๊ทธ ๋‚ด๋ถ€ ๊ฐ’๋งŒ์œผ๋กœ ์ •์˜ ๋˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‘ VO..

MLOps ์ž…๋ฌธ: ๋จธ์‹ ๋Ÿฌ๋‹ ์šด์˜์˜ ์ƒˆ๋กœ์šด ํŒจ๋Ÿฌ๋‹ค์ž„

MLOps ์ž…๋ฌธ: ๋จธ์‹ ๋Ÿฌ๋‹ ์šด์˜์˜ ์ƒˆ๋กœ์šด ํŒจ๋Ÿฌ๋‹ค์ž„์•ˆ๋…•ํ•˜์„ธ์š”, ๋ฐ์ดํ„ฐ ๊ณผํ•™๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹์— ๊ด€์‹ฌ ์žˆ๋Š” ์—ฌ๋Ÿฌ๋ถ„! ์˜ค๋Š˜์€ MLOps๋ผ๋Š” ํฅ๋ฏธ๋กœ์šด ์ฃผ์ œ์— ๋Œ€ํ•ด ์‹ฌ๋„ ์žˆ๊ฒŒ ์ด์•ผ๊ธฐํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. MLOps๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์™œ ์ค‘์š”ํ•œ์ง€, ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ƒ์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.MLOps๋ž€ ๋ฌด์—‡์ธ๊ฐ€?MLOps๋Š” 'Machine Learning Operations'์˜ ์ค„์ž„๋ง๋กœ, ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ ๊ฐœ๋ฐœ๋ถ€ํ„ฐ ๋ฐฐํฌ, ์œ ์ง€๋ณด์ˆ˜๊นŒ์ง€์˜ ์ „์ฒด ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ์ด๋Š” DevOps์˜ ์›์น™์„ ๋จธ์‹ ๋Ÿฌ๋‹ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•œ ๊ฒƒ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.MLOps๋Š” ๋‹จ์ˆœํžˆ ๋„๊ตฌ๋‚˜ ๊ธฐ์ˆ ์˜ ์ง‘ํ•ฉ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋Š” ์กฐ์ง์˜ ๋ฌธํ™”, ํ”„๋กœ์„ธ์Šค, ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์ˆ ์  ์‹คํ–‰์„ ํฌ๊ด„ํ•˜๋Š” ์ด์ฒด์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. MLOps์˜ ๋ชฉํ‘œ๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ ๊ฐœ..

AI/MLOps 2024.10.25

๋ฐฑ์ค€ 1018) ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ[Python]

์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ ๋ฌธ์ œ๋Š” brute force ์˜ ์‹œ์ž‘์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋‹ค.  ๋ฌธ์ œ์ •์˜ 1. N*M ๊ฐœ์˜ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ณด๋“œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.2. ์ด ์ค‘์—์„œ 8*8 ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ์ฒด์ŠคํŒ์„ ๋งŒ๋“œ๋ ค๊ณ  ํ•œ๋‹ค.3. ์ฒด์ŠคํŒ์€ ํ•œ ์ •์‚ฌ๊ฐํ˜•์ด ๊ฒ€์€์ƒ‰์ด๋ผ๋ฉด ๋‹ค๋ฅธ ์ •์‚ฌ๊ฐํ˜•์€ ํฐ์ƒ‰์ด ๋‚˜์™€์•ผํ•œ๋‹ค.4. N*M ๊ฐœ ์ค‘์—์„œ ์ž„์˜๋กœ 8*8 ํฌ๊ธฐ์˜ ๋ณด๋“œ๋ฅผ ๊บผ๋ƒˆ์œผ๋‹ˆ (3) ์„ ์–ด๊ธธ ์ˆ˜ ์žˆ๋‹ค.5. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋Œ€๋กœ ์ฒด์Šค ํŒ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์‹œ ์ƒ‰์„ ์น ํ•ด์•ผ ํ•˜๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ผ. ์•„์ด๋””์–ด1. ์ฒด์ŠคํŒ์˜ 8*8 ๋ณด๋“œ๋Š” [0][0] ์œ„์น˜์˜ ์ƒ‰์ด ๊ฒ€์ •์ƒ‰์ด๊ฑฐ๋‚˜ ํฐ์ƒ‰์ธ ๊ฒฝ์šฐ ๋‘๊ฐ€์ง€์ด๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ์ด๊ฑฐ๋‚˜ ์•„๋ž˜์˜ ์ƒ‰์„ ๋ฐ”๊ฟ” [0][0] ์ด ํฐ์ƒ‰์ธ ๊ฒฝ์šฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. BWBWBWBWWBWBWBWBBWBWBWBWWB..

Develop/Algorithm 2024.10.14

์ž์œจ์ฃผํ–‰ ํ”„๋กœ์ ํŠธ : ์ฐจ๋Š” ์•„์ง ์—†๋Š”๋ฐ, ์ž์œจ์ฃผํ–‰ ํ•ด๋ณผ๋ž˜ ?

์ž์œจ์ฃผํ–‰ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์‹œ์ž‘์˜ ์ดˆ๊ธฐ์˜€๋˜ ์œ„์˜ ๊ธ€์„ ๋ณด๊ณ  ์˜ค๋ฉด ์ดํ•ด๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค. [์ž์œจ์ฃผํ–‰ ์ž์ž‘ ์ž๋™์ฐจ / DRIVEN ] ํšŒ๊ณ ๋ฅผ ์œ„ํ•œ ๊ธฐ๋กDRIVEN ์€ ์ฒœ์•ˆ์— ์žˆ๋Š” ํ•œ๊ตญ๊ธฐ์ˆ ๊ต์œก๋Œ€ํ•™๊ต์˜ ์ž์ž‘ ์ž๋™์ฐจ ๋™์•„๋ฆฌ์ด๋‹ค. ๋‚ด๊ฐ€ ์ฐธ์—ฌ ํ–ˆ์„ ๋•Œ 19๊ธฐ ๋™์•„๋ฆฌ๋ผ ํ–ˆ์œผ๋‹ˆ ๊ฝค ์œ ์„œ๊ฐ€ ์žˆ๋Š” ๋™์•„๋ฆฌ์ด๋‹ค. ๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฒœ์•ˆ์— ์žˆ๋Š” ๋Œ€ํ•™๊ต ๋™์•„๋ฆฌ์— ์ฐธ์—ฌํ•˜๊ฒŒproggg.tistory.com  ์šฐ๋ฆฌ๋Š” ์„ผ์„œ๊ธฐ๋ฐ˜ Level 4 ์˜ ์ž์œจ์ฃผํ–‰ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.๊ฒฐ๊ณผ์ฃผํ–‰๊ฒฐ๊ณผ์ž์ž‘์ž๋™์ฐจ ํ”Œ๋žซํผ์— ์ž์œจ์ฃผํ–‰ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ• ํ•˜์˜€๊ณ  ํƒ€์›ํ˜• ํŠธ๋ž™์„ ์™„์ฃผ ํ–ˆ์œผ๋‚˜,๋Œ€ํšŒ ๋‹น์ผ ์•„๋‘์ด๋…ธ๋ณด๋“œ ๊ณผ๋ถ€ํ™”๋กœ ์ฐจ๊ฐ€ ์›€์ง์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ˆ˜๋™์šด์ „ 12→ ์ž์œจ์ฃผํ–‰ 14์ดˆ ํ™˜๊ฒฝHardware---main_computer : Jetson Xavier AGX H01 ..

Exp/Project 2024.10.13

๐Ÿค– ROS Custom Message

๐Ÿ’ป ROS ์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ณธ ๋ฉ”์‹œ์ง€๋“ค์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ํ•œ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ๋งŒ์„ ์ฃผ๊ณ  ์žˆ์„์ˆ˜๋Š” ์—†๋‹ค. ๋•Œ๋กœ๋Š” ๊ฐ์ฒด๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์•ผํ• ์ˆ˜๋„ ์žˆ๋Š”๊ฒƒ์ด๋‹ค. ์ด๋•Œ ์šฐ๋ฆฌ๋Š” ์ปค์Šคํ…€ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.python ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, C++ ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด CMakeList.txt, package.xml ์„ ์ˆ˜์ •ํ•ด์•ผํ•œ๋‹ค.c++ ์€ ๋‚˜์ค‘์—… ์ง€๊ธˆ ํ•„์š”ํ•œ๊ฑด ์ผ๋‹จ python message ์ด๋‹ค.1. ์™„์„ฑ ๋œ ROS Package ๋ฅผ ์ƒ์ƒํ•ด๋ดค๋‚˜์š”?์™„์„ฑ ๋œ ํŒจํ‚ค์ง€์˜ ๋…ธ๋“œ์™€ ํ† ํ”ฝ์„ ์ƒ์ƒ ํ–ˆ์„๊ฒƒ์ด์ง€์š”. ๋ฌธ์„œ๋กœ ์ •๋ฆฌ๋˜์—ˆ๋‚˜์š” ? ์•„๋‹ˆ๋ฉด ๊ทธ๋ž˜ํ”„๋กœ ์ž‘์„ฑํ•ด๋ดค๋‚˜์š” ? ์šฐ์„  ํ”Œ๋กœ์šฐ์ฐจํŠธ๋ฅผ ROS ๋…ธ๋“œ ํ† ํ”ฝ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ ค๋ณด์„ธ์š”. ๋ฌด์Šจ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””๋กœ ๋„˜๊ธฐ๊ณ  ์‹ถ์€๊ฑด์ง€๋ฅผ ์šฐ๋ฆฌ๋Š” ์•Œ์•„์•ผํ•ฉ๋‹ˆ๋‹ค.์šฐ๋ฆฌ๋Š” ๋Œ€์ถฉ ์ด๋Ÿฐ ์‹œ์Šคํ…œ์—์„œ Topic2 ๋ฅผ ์œ„..

Develop/ROS 2024.10.05
728x90