2024/10 9

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

πŸ€– 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

πŸ”₯ μžμœ¨μ£Όν–‰μ„ μœ„ν•œ ROS μž…λ¬Έ(1) : ROS λž€ ? (1)

0. λ“€μ–΄κ°€κΈ°μ „[μžμœ¨μ£Όν–‰ μžμž‘ μžλ™μ°¨ / DRIVEN ] 회고λ₯Ό μœ„ν•œ 기둝 [μžμœ¨μ£Όν–‰ μžμž‘ μžλ™μ°¨ / DRIVEN ] 회고λ₯Ό μœ„ν•œ 기둝DRIVEN 은 μ²œμ•ˆμ— μžˆλŠ” ν•œκ΅­κΈ°μˆ κ΅μœ‘λŒ€ν•™κ΅μ˜ μžμž‘ μžλ™μ°¨ 동아리이닀. λ‚΄κ°€ μ°Έμ—¬ ν–ˆμ„ λ•Œ 19κΈ° 동아리라 ν–ˆμœΌλ‹ˆ κ½€ μœ μ„œκ°€ μžˆλŠ” 동아리이닀. λ‚΄κ°€ μ–΄λ–»κ²Œ μ²œμ•ˆμ— μžˆλŠ” λŒ€ν•™κ΅ 동아리에 μ°Έμ—¬ν•˜κ²Œproggg.tistory.com λ‚˜λŠ” μžμœ¨μ£Όν–‰ μ‹œμŠ€ν…œμ„ λ§Œλ“€μ–΄λ³Έμ  μ—†λŠ” ꡰ인 κ°œλ°œμžμ΄λ‹€. μœ„μ˜ 이유둜 μžμœ¨μ£Όν–‰μ„ λ§Œλ“€κΈ° μ‹œμž‘ν•˜κΈ΄ ν–ˆλŠ”λ°, λ‚΄κ°€ μ•„λŠ”κ±°λΌκ³ λŠ” μ₯λΏ”도 μ—†μ—ˆλ‹€. μ—¬λŸ¬κ°€μ§€ μ„œμΉ­μ„ ν•˜λ©΄μ„œ μ•Œκ²Œ 된 건 A to Z 둜 κ°œλ°œν•΄μ•Όν•œλ‹€λŠ”κ²ƒμ΄λ‹€. 정성적인 λ§€λ‰΄μ–Όλ”°μœ„λŠ” μ—†λ‹€. 각각의 μ˜μ—­μ—μ„œλŠ” λ ˆνΌλŸ°μŠ€λ“€μ΄ κ½€ μžˆμ§€λ§Œ μžμœ¨μ£Όν–‰μ„ ν•˜κΈ° μœ„ν•΄μ„œ 뭐뢀터 해라, 뭘 해라, μ–΄λ””κΉŒμ§€ 해라 이런건..

Develop/ROS 2024.10.05