Develop 18

์˜คํ”„๋ผ์ธ ํ™˜๊ฒฝ์—์„œ Git ์‚ฌ์šฉ ๋ฐฉ๋ฒ•: SSH๋กœ ์›๊ฒฉ ์ €์žฅ์†Œ ์ ‘๊ทผํ•˜๊ธฐ

Git์€ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ, ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์ด ์—†์–ด๋„ ์ฝ”๋“œ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์˜คํ”„๋ผ์ธ ํ™˜๊ฒฝ์—์„œ๋Š” ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ๋‚˜ ์™ธ๋ถ€ ๋””์Šคํฌ๋ฅผ ํ™œ์šฉํ•ด ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, SSH๋ฅผ ์ด์šฉํ•ด ์ง์ ‘์ ์ธ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ์—†์ด๋„ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” SSH๋ฅผ ํ™œ์šฉํ•œ ์›๊ฒฉ ์ €์žฅ์†Œ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ํ•จ๊ป˜, ์˜คํ”„๋ผ์ธ ํ™˜๊ฒฝ์—์„œ Git์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. svn ๊ฐ™์€ ํ˜•์ƒ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„  ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, github ๊ฐ€ ์ต์ˆ™ํ•œ ์šฐ๋ฆฌ๋Š” ์˜คํ”„๋ผ์ธ ํ™˜๊ฒฝ์—์„œ๋„ svn ์„ ์‚ฌ์šฉํ•ด๋ด…์‹œ๋‹ค. ๋ชฉ์ฐจ์˜คํ”„๋ผ์ธ ํ™˜๊ฒฝ์—์„œ Git์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋กœ์ปฌ์—์„œ Git ์ €์žฅ์†Œ ์ƒ์„ฑ ๋ฐ ์ดˆ๊ธฐ ์„ค์ •Git ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•œ ๊ธฐ๋ณธ์ ์ธ ๋ฒ„์ „ ๊ด€๋ฆฌ์˜คํ”„๋ผ์ธ ํ™˜๊ฒฝ์—์„œ ์›๊ฒฉ ์ €..

Develop 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..

๋ฐฑ์ค€ 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

๐Ÿค– ROS Custom Message

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

Develop/ROS 2024.10.05

๐Ÿค– ROS package ์˜์กด์„ฑ ์ถ”๊ฐ€

๐Ÿ’ป ํŒจํ‚ค์ง€ ์ƒ์„ฑํ•  ๋•Œ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.catkin_create_pkg {PKG_NAME} [dependency1] [dependency2] ...ํŒจํ‚ค์ง€ ์ƒ์„ฑ ํ›„ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ์—๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ ?1. ํ•ด๋‹น ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜์—ฌ pakage.xml ํŒŒ์ผ์„ ํŽธ์ง‘ํ•œ๋‹ค.$ vi package.xml2. catkin ์•„๋ž˜์— ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.์˜์กด์„ฑ์˜์กด์„ฑ3.rospack depend1 {PKG_NAME} ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€์— ์˜์กด์„ฑ์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

Develop/ROS 2024.10.05

๐Ÿ”ฅ์ž์œจ์ฃผํ–‰์„ ์œ„ํ•œ ROS ์ž…๋ฌธ(3) : Transform, TF

๋ฌธ์ œ์˜์‹์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„ผ์„œ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ๋งž์ถ”๋ƒ? ์—์„œ ์‹œ์ž‘๋œ ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ๋ณ„ ์ƒ๊ฐ์„ ์•ˆํ–ˆ์—ˆ์ง€๋งŒ, ์ขŒํ‘œ๊ณ„๋ฅผ ๋งž์ถ”๋Š” ์ผ์€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์ผ์ด๋‹ค. ์™œ๋‚˜ํ•˜๋ฉด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“œ๋Š” ๊ฒฝ๋กœ๊ณ„ํš์„ ์œ„ํ•œ ์ง€๋„๊ฐ€ ์–ด๋–จ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋Œ€์ฒด๋กœ ๊ทธ ์ง€๋„์™€ ๋‹ค๋ฅธ ์„ผ์„œ์˜ ์„ผ์„œ์™€๋Š” ์„ธ์ƒ(system, ๊ณ„)์ด ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๋ฌธ์ œ์˜์‹์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„ผ์„œ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ๋งž์ถ”๋ƒ? ์—์„œ ์‹œ์ž‘๋œ ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ๋ณ„ ์ƒ๊ฐ์„ ์•ˆํ–ˆ์—ˆ์ง€๋งŒ, ์ขŒํ‘œ๊ณ„๋ฅผ ๋งž์ถ”๋Š” ์ผ์€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์ผ์ด๋‹ค. ์™œ๋‚˜ํ•˜๋ฉด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“œ๋Š” ๊ฒฝ๋กœ๊ณ„ํš์„ ์œ„ํ•œ ์ง€๋„๊ฐ€ ์–ด๋–จ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋Œ€์ฒด๋กœ ๊ทธ ์ง€๋„์™€ ๋‹ค๋ฅธ ์„ผ์„œ์˜ ์„ผ์„œ์™€๋Š” ์„ธ์ƒ(system, ๊ณ„)์ด ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.์˜ˆ๋ฅผ๋“ค์–ด ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์ธ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋ฆฌ๋Š” ์ง€๋„๋Š” map ์ด๊ณ , ์œ„์˜ ๋กœ๋ด‡ํ”Œ๋žซํผ์€ ๊ทธ ์œ„์—์„œ..

Develop/ROS 2024.10.05

๐Ÿ”ฅ ์ž์œจ์ฃผํ–‰์„ ์œ„ํ•œ ROS ์ž…๋ฌธ(2) : Publisher ์™€ Subscriber

๋…ธ๋“œ๋“ค๊ฐ„ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๊ฒƒ์ด ROS ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ์ฃผ๊ณ  ๋ฐ›๋Š”์ง€์— ๋Œ€ํ•ด ์ด์ „ ์ฑ•ํ„ฐ์—์„œ ๋ฐœํ–‰์ž( Publisher ) ์™€ ์ˆ˜์‹ ์ž ( Subscriber ) ๋ผ๋Š”๊ฒƒ์„ ์–ธ๊ธ‰ํ•˜์—ฌ ์•Œ๊ณ ์žˆ๋‹ค.1. Publisherpublisher ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๋ฐœํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋•Œ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•  ์ ์€ Publisher ๊ฐ€ ๋ฐœํ–‰ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋Š” ์ˆ˜์‹ ์ž๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Publisher ํ˜ผ์ž ์žˆ๋‹ค๋ฉด ์•„๋ฌด๋„ ๋“ฃ๊ณ ์žˆ์ง€ ์•Š์ง€๋งŒ ํ˜ผ์ž ๋– ๋“ค๊ณ  ์žˆ๋Š” ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ง€๋Š”๊ฒƒ์ด๋‹ค.2. SubscriberPublisher ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋“ค์–ด์ฃผ๋Š”๊ฒƒ์ด ๋ฐ”๋กœ Subscriber ์ด๋‹ค. Subscriber ๋Š” ๊ฐ™์€ ROS ๋„คํŠธ์›Œํฌ ์ƒ์— ์กด์žฌํ•˜๋Š” ํŠน์ • *ํ† ํ”ฝ ๋ช…์„ ๊ฐ€์ง„ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœํ–‰๋˜๋Š”๊ฒƒ์„ ๋ณด๊ณ  ์žˆ๊ณ  Subscriber ๊ฐ€ ์ฃผ์‹œํ•˜๊ณ  ์žˆ๋Š” ๋ฉ”์‹œ์ง€..

Develop/ROS 2024.10.05