Skip to content

Roveloper/Study-ModernCPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ใ…‡# Study Modern C++:open_book:

Table of Contents:label:


Study Plan:star2:

  • ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๊ณจ๋ผ ๋ฐฐ์šฐ๋Š” ๋ชจ๋˜ C++
  • ์”น์–ด๋จน๋Š” C++
  • ์ฑ•ํ„ฐ 1๊ฐœ๋‹น 1 or 2์ฃผ ๊ฐ„ ์ฝ์–ด์˜จ ํ›„, ์Šคํ„ฐ๋”” ์‹œ๊ฐ„์— ๊ฐ„๋‹จํžˆ ๋ฆฌ๋ทฐ ๋ฐ ์—ฐ์Šต ๋ฌธ์ œ ํ’€์ด ํ”„๋กœ์ ํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง„ํ–‰
  • ์ง„ํ–‰ ์‹œ๊ฐ„์€ ์ผ์š”์ผ ์˜ค์ „ 8์‹œ ์ง„ํ–‰ ์‹œ๊ฐ„์€ ๋ชฉ์š”์ผ ์˜คํ›„ 8์‹œ
  • ์ผ์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜, ๋ณ€๋™์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ์นดํ†ก๋ฐฉ์— ๋‚ด์šฉ ๊ณต์œ 
  • ์ง„ํ–‰์— ๋”ฐ๋ผ ๋‚ด์šฉ์„ ์—…๋ฐ์ดํŠธ ์˜ˆ์ •

1์ฃผ์ฐจ (22/10/30):star:

  • ์ „์ฒด ์ง„ํ–‰ ์ผ์ • ์กฐ์ •
    • 2์ฃผ์ฐจ ๋ฆฌ๋ทฐ ์˜ˆ์ • ๋‚ด์šฉ
      • 1์žฅ C++ ๊ธฐ์ดˆ
      • 2์žฅ ํด๋ž˜์Šค

2์ฃผ์ฐจ (22/11/05):star:

  • 1์žฅ C++ ๊ธฐ์ดˆ
    • 1.1 ์ƒ์•  ์ฒซ C++ ํ”„๋กœ๊ทธ๋žจ
      • namespace std๋ฅผ ๊ผญ ์“ธ ํ•„์š”๋Š” ์—†์ง€๋งŒ, ์จ ์ฃผ๋Š” ๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ฝ”๋“œ๋ฅผ ๋ณผ ๋•Œ ์ดํ•ด๊ฐ€ ์‰ฝ๋‹ค.
      • ์ž…, ์ถœ๋ ฅ ๊ธฐ๋Šฅ์€ C++์˜ ํ•ต์‹ฌ ์–ธ์–ด์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹˜ (๋ช…์‹œ์ ์œผ๋กœ iostream์„ include ์‹œ์ผœ์ค˜์•ผํ•œ๋‹ค)
      • ๋ชจ๋“  C++ ํ”„๋กœ๊ทธ๋žจ์€ main ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๋กœ ์‹œ์ž‘๋˜๋ฉฐ, return์œผ๋กœ ํ•˜๋‚˜์˜ ์ •์ˆ˜๋ฅผ ๋Œ๋ ค์ฃผ๋Š”๋ฐ 0์€ ์ •์ƒ ์ข…๋ฃŒ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
      • ์ค‘๊ด„ํ˜ธ({})๋Š” ์—ฌ๋Ÿฌ ์ฝ”๋“œ ๋ฌธ์žฅ์„ ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๋ธ”๋ก์œผ๋กœ ๋ฌถ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. (๋ณตํ•ฉ๋ฌธ)
      • std::๋Š” ๊ทธ ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ์ด๋ฆ„์ด ํ‘œ์ค€ namespace์— ํฌํ•จ๋œ๋‹ค๋Š” ๋œป (namespace๋Š” ์ด๋ฆ„์„ ๊ด€๋ฆฌํ•˜๋Š” ์ˆ˜๋‹จ)
      • ๋ฌธ์ž์—ด ์ƒ์ˆ˜(๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด)์€ ํฐ๋”ฐ์˜ดํ‘œ("")๋กœ ๊ฐ์‹ผ๋‹ค. ('a' != "a")
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋Š” ์œ ์ผํ•œ ๊ธธ์€ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•ด ๋ณด๋Š” ๊ฒƒ์ด๋‹ค.
    • 1.2 ๋ณ€์ˆ˜
      • C++์€ ๊ฐ• ํ˜•์‹ ์–ธ์–ด(strongly typed language)
      • ๋ณ€์ˆ˜๋Š” ํ˜•์‹ ์ด๋ฆ„ ๋‹ค์Œ์— ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ์˜ค๋Š” ํ˜•ํƒœ์˜ ๋ฌธ์žฅ์œผ๋กœ ์„ ์–ธ
      • ๋ณ€์ˆ˜ ์ด๋ฆ„ ๋‹ค์Œ์— ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™” ๊ตฌ๋ฌธ์„ ๋‘˜ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‰ผํ‘œ๋ฅผ ์ด์šฉํ•ด์„œ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋‚˜์—ดํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
      • ๊ฐ ๋‚ด์žฅ ํ˜•์‹๋“ค์€ ์ปดํŒŒ์ผ๋Ÿฌ ๋ณ„๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค. (์ปดํŒŒ์ผ๋Ÿฌ์— ์ƒ๊ด€ ์—†์ด ๊ฐ™๊ณ  ์‹ถ๋‹ค๋ฉด, int8_t, uint16_t ๋“ฑ์„ ์“ฐ์ž)
      • 'a' + 7 = 'h'๊ฐ€ ๋˜์ง€๋งŒ, ์ฝ๋Š” ์‚ฌ๋žŒ์ด ํ™”๊ฐ€๋‚  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ ˆ๋Œ€ ์“ฐ์ง€ ๋ง์ž.
      • ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ๋•Œ๋Š” ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜์ž.
      • <C++14> ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ string์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋ ค๋ฉด ์ ‘๋ฏธ์‚ฌ s๋ฅผ ๋ถ™์—ฌ์•ผํ•œ๋‹ค. ("Hello" --> char [], "Hello"s --> string)
      • ๋ณ€์ˆ˜๋Š” ์ตœ๋Œ€ํ•œ ๋Šฆ๊ฒŒ ์„ ์–ธํ•ด๋ผ. ๋ณดํ†ต ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๊ธฐ ์ง์ „์— ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค, ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์  ์ดํ›„์—ฌ์•ผ๋งŒ ํ•œ๋‹ค.
      • ์ƒ์ˆ˜ ๋ณ€์ˆ˜๋Š” ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™” ๋˜์–ด์•ผํ•˜๋ฉฐ, ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ณณ ์–ด๋””๋“  ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
      • ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์— ๋ถ™๋Š” ์ ‘๋ฏธ์‚ฌ์— ๋”ฐ๋ผ, ํ˜•์‹์ด ์ง€์ •๋œ๋‹ค. (u, l, f, ul, l ๋“ฑ)
      • <C++14> ์ˆซ์ž๋“ค ์‚ฌ์ด์— ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์–ดํฌ์ŠคํŠธ๋กœํ”ผ๋ฅผ ์‚ฝ์ž… ๊ฐ€๋Šฅ (')
      • ์ค‘๊ด„ํ˜ธ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, narrowing conversion์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ (์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ๋ฐœ์ƒ)
      • ์ข์•„์ง€๋Š” ์˜ค๋ฅ˜๊ฐ€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
      • ์ „์—ญ ๋ณ€์ˆ˜๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ. (์ „์—ญ ์ƒ์ˆ˜ ๋ณ€์ˆ˜๋Š” ํ—ˆ์šฉ)
      • ์ง€์—ญ ๋ณ€์ˆ˜๋Š” {} ๋ธ”๋ก์— ํ•œ์ •๋จ. (C++์€ GC๊ฐ€ ์—†์Œ --> {}๋ฅผ ํƒˆ์ถœํ•˜๋ฉด ์•ˆ์—์„œ ์ •์˜ํ•œ ๋ณ€์ˆ˜๋“ค ๋‹ค ์‚ฌ๋ผ์ง)
    • 1.3 ์—ฐ์‚ฐ์ž
      • ์—ฐ์‚ฐ์ž๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ํ˜•์‹์— ๋Œ€ํ•ด ์ค‘๋ณต์ ์žฌ(overloading)ํ•  ์ˆ˜ ์žˆ๋‹ค.(overloading --> ํ•จ์ˆ˜ ์ด๋ฆ„์€ ๊ฐ™์œผ๋‚˜, ์ž…๋ ฅ ์ธ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ)
      • ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋ถ„๋ช… ์กด์žฌํ•˜์ง€๋งŒ, ์•„๋ฌด๋„ ๋ชจ๋ฆ„ (๊ทธ๋ƒฅ ๊ด„ํ˜ธ๋ฅผ ์ž˜ ์น˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค)
      • ์ „์œ„ ์ฆ๊ฐ€๋Š” ๋จผ์ € ์ฆ๊ฐ€ ํ›„ return, ํ›„์œ„ ์ฆ๊ฐ€๋Š” return ํ›„ ์ฆ๊ฐ€
      • ์ฃผ์†Œ ์ง€์ •์ด ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ C++์—์„œ๋Š” lvalue๋ผ๊ณ  ์ง€์นญ
      • ์‚ฐ์ˆ  ํ‘œํ˜„์‹์—์„œ๋Š” ์ฆ๊ฐ€, ๊ฐ์†Œ ์—ฐ์‚ฐ์ž ๋Œ€์‹  j+1์ฒ˜๋Ÿผ ๋ช…์‹œ์ ์œผ๋กœ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
      • ํ‘œํ˜„์‹ ์•ˆ์—์„œ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ์œ„ํ—˜ํ•˜๋‹ค, ์ˆ˜์ •์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜์ž.
      • ์ดํ•ญ ์—ฐ์‚ฐ์˜ ์ธ์ˆ˜๋“ค์˜ ํ˜•์‹์ด ๋‹ค๋ฅด๋ฉด, ๋‘˜ ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ๋‘˜ ๋‹ค๊ฐ€ ๊ณตํ†ต์˜ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. (๊ทธ๋ƒฅ ์ˆ˜๋™์œผ๋กœ ํ˜•๋ณ€ํ™˜ ํ•ด์ฃผ๋Š”๊ฒŒ ํŽธํ•  ๋•Œ๊ฐ€ ๋งŽ๋‹ค)
      • ์‚ผ์ค‘๋น„๊ต (<=>) a.k.a. ์šฐ์ฃผ์„  ์—ฐ์‚ฐ์ž (ufo ์—ฐ์‚ฐ์ž), a <=> b --> a < b์ธ ๊ฒฝ์šฐ -1, a == b๋ฉด 0, a > b๋ฉด 1์ด ๋‚˜์˜ด
        • ๊ทธ์น˜๋งŒ ๊ทธ๋ƒฅ a > b, a == b, a < b๋ฅผ ์“ฐ์ž.
      • C++๋„ not์ด ์žˆ๋‹ค. (not false --> true)
      • ๋…ผ๋ฆฌ ํ‘œํ˜„์‹์—๋Š” ๊ผญ bool์„ ์“ฐ์ž.
      • ๋“ฑํ˜ธ ์–‘๋ณ€์˜ ํ˜•์‹์ด ๋‹ค๋ฅด๋ฉด ์šฐ๋ณ€์ด ์ขŒ๋ณ€์˜ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. (float a = 1.0์œผ๋กœ ์ ์œผ๋ฉด, 1.0์ด float์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.)
      • ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์˜ ์ฃผ์š” ์›์น™ ์ค‘ ํ•˜๋‚˜๋Š” ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ (์œ ์—ฐ์„ฑ์ด ์ฆ๊ฐ€ํ•˜๊ณ , ๋ณต์žก์„ฑ์ด ๊ฐ์†Œํ•œ๋‹ค.)
      • ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ์€๊ทผ ์œ ๋ฆฌํ•˜๋‹ค. (๋ฐฐ์ •๋ฌธ์—์„œ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์€ ๋ฐฐ์ • ์—ฐ์‚ฐ์ž์˜ ์™ผ์ชฝ์— ์žˆ๋Š” ๋ณ€์ˆ˜๋ฟ์ด์–ด์•ผ ํ•œ๋‹ค.)
      • ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ์ผ ์ˆ˜๋ก, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ตœ์ ํ™”ํ•˜๊ธฐ๋„ ์‰ฝ๋‹ค.
    • 1.4 ํ‘œํ˜„์‹๊ณผ ๋ฌธ์žฅ
      • if๋ฌธ์˜ ๊ฐ ๊ฐˆ๋ž˜๋Š” ๊ฐ์ž ํ•˜๋‚˜์˜ ๋ฒ”์œ„๋ฅผ ํ˜•์„ฑํ•œ๋‹ค.
      • ์ค‘๊ด„ํ˜ธ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค. (ํ•œ์ค„๋งŒ ์ˆ˜ํ–‰์„ ํ•˜๋”๋ผ๋„)
      • ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด์„œ ์ค‘๊ด„ํ˜ธ ์•ˆ์˜ ๋ฌธ์žฅ์„ ๋“ค์—ฌ์“ฐ์ž.
      • <C++17> ์กฐ๊ฑด์‹์—์„œ ๋ณ€์ˆ˜ ์„ ์–ธ ๊ฐ€๋Šฅ
      • <C++17> switch-case ๋ฌธ์—์„œ [[fallthrough]]๊ฐ€ ์ถ”๊ฐ€๋จ (์•„๋ž˜๋กœ ํ˜๋Ÿฌ๊ฐ€๋„๋ก ์„ค์ • ๊ฐ€๋Šฅ)
      • while์€ ์„  ์กฐ๊ฑด ๊ฒ€์‚ฌ ํ›„ ์‹คํ–‰, do-while์€ ์„  ์‹คํ–‰ ํ›„ ์กฐ๊ฑด ๊ฒ€์‚ฌ (do-while์€ ์ตœ์†Œ 1ํšŒ๋Š” ์‹คํ–‰๋œ๋‹ค)
      • for๋ฌธ์€ ์ดˆ๊ธฐํ™” ์ ˆ, ์กฐ๊ฑด์‹, ๋‹จ๊ณ„ ์—ฐ์‚ฐ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
      • ๋‚ด์žฅ ํ˜•์‹์—์„œ๋Š” ++i๋‚˜ i++๋‚˜ ๋ณ„๋กœ ์ฐจ์ด๊ฐ€ ์—†์ง€๋งŒ, ์‚ฌ์šฉ์ž ์ •์˜ ํ˜•์‹์—์„œ๋Š” i++๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์“ธ๋ฐ์—†๋Š” ๋ณต์‚ฌ ์—ฐ์‚ฐ์ด ๋˜๋ฏ€๋กœ, ++i๋ฅผ ๊ถŒ์žฅ
      • ์ดˆ๊ธฐํ™” ์ ˆ์—๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ํ‘œํ˜„์‹๊ณผ ๋ณ€์ˆ˜ ์„ ์–ธ์ด ๊ฐ€๋Šฅ, ๋น„์›Œ๋‘๊ธฐ๋„ ๊ฐ€๋Šฅ, ๊ฐ™์€ ํ˜•์‹์˜ ๋ณ€์ˆ˜ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ
      • ๋ฃจํ”„ ์ƒ‰์ธ์„ ๋ฃจํ”„ ๋ณธ๋ฌธ์—์„œ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋‹น์—ฐํžˆ ํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ๊ถŒ์žฅ
      • <C++11> ๊ตฌ๊ฐ„ ๊ธฐ๋ฐ˜ for ๋ฃจํ”„ ( for (int i : ๋ฐฐ์—ด)๊ณผ ๊ฐ™์€ ์‹์œผ๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋ฐฐ์—ด ๋‚ด๋ถ€์˜ ๊ฐ’์ด i์— ์ˆœ์ฐจ์ ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. )
      • <C++20> ๊ตฌ๊ฐ„ ๊ธฐ๋ฐ˜ ๋ฃจํ”„์˜ ์‹œ์ž‘ ์ง€์ ์— ์ดˆ๊ธฐํ™”๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
      • goto๋Š” ์ ˆ๋Œ€ ์“ฐ์ง€ ๋ง ๊ฒƒ
    • ๋‹ค์Œ์ฃผ ๊ณ„ํš
      • 1์žฅ ๋งˆ๋ฌด๋ฆฌ ๋ฐ 1์žฅ ์—ฐ์Šต๋ฌธ์ œ ํ’€์ด

3์ฃผ์ฐจ (22/11/20):star:

  • 1์žฅ C++ ๊ธฐ์ดˆ
    • 1.5 ํ•จ์ˆ˜
      • ๊ฐ’ ์ „๋‹ฌ, ์ฐธ์กฐ ์ „๋‹ฌ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹
      • ๊ฐ’ ์ „๋‹ฌ์€ ๋ณ€์ˆ˜๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์‚ฌ์šฉ! (์‹ค์ œ ๊ฐ’์—๋Š” ์˜ํ–ฅ ์—†์Œ)
      • ์ฐธ์กฐ ์ „๋‹ฌ์€ ๋ณ€์ˆ˜๋ฅผ ์ง์ ‘ ์‚ฌ์šฉ! (์‹ค์ œ ๊ฐ’์—๋„ ์˜ํ–ฅ ์žˆ์Œ)
      • ํ•จ์ˆ˜์—๋„ ๊ธฐ๋ณธ ์ธ์ˆ˜ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ
      • ํ‘œํ˜„์‹ ํ…œํ”Œ๋ฆฟ์€ ์ฃผ์–ด์ง„ ๊ณ„์‚ฐ์„ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ์‹ค์ œ๋กœ ์ €์žฅ๋˜๋Š” ์‹œ์ ๊นŒ์ง€ ๋ฏธ๋ฃธ์œผ๋กœ์จ ๋ถˆํ•„์š”ํ•œ ๋ณต์‚ฌ๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค (?????, TODO.)
      • ํ•จ์ˆ˜ ํ˜ธ์ถœ์€ ์‚ฌ์‹ค ๊ณต์งœ๊ฐ€ ์•„๋‹˜ (์ด๋ฅผ ๊ณต์งœ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์ด ์ธ๋ผ์ธํ™”)
      • ํ•จ์ˆ˜ ์ด๋ฆ„, ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜ ํ˜•์‹์ด ํ•จ์ˆ˜์˜ ์„œ๋ช…์ด๋ฉฐ, ์ด ๊ฐ’์ด ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐ์ค€๊ฐ’์ด ๋œ๋‹ค.
      • mainํ•จ์ˆ˜์—๋Š” argc, argv์˜ 2๊ฐ€์ง€ ์ธ์ˆ˜๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
    • 1.6 ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ
      • assertion์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์‹ค์ˆ˜๋ฅผ ๊ฒ€์ถœํ•˜๊ธฐ ์œ„ํ•จ์ด๋ฉฐ, ํ•ด๋‹น ๊ตฌ๋ฌธ์ด false์ด๋ฉด ์ฝ”๋“œ๊ฐ€ ์ข…๋ฃŒ
      • assertion์˜ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” Release ๋ชจ๋“œ๋กœ ๋นŒ๋“œ ์‹œ, ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ
      • ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” try, catch ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Œ
      • ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์—์„œ try
      • ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋™์ž‘ํ•  ๋ถ€๋ถ„์„ catch ์‚ฌ์šฉ
      • catch๋Š” ๋‹ค์ค‘์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ž…๋ ฅ๋˜๋Š” ๊ฐ’์ด๋‚˜, ์˜ˆ์™ธ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Œ
      • ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๊ทธ๋ƒฅ ๋ฌด์‹œํ•˜๊ณ  ์ง„ํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋นˆ catch๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
      • static_assert๋Š” ์ปดํŒŒ์ผ ์‹œ์ ์—์„œ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ถœํ•˜๊ธฐ ์œ„ํ•จ
    • 1.7 ํŒŒ์ผ ์ž…์ถœ๋ ฅ
      • ํŒŒ์ผ ์ž…์ถœ๋ ฅ ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ จ ์ž…์ถœ๋ ฅ์ด ์กด์žฌ
      • ํ•„์š”ํ•œ ์ƒํ™ฉ์— ๋งž์ถฐ์„œ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰์„ ์ž˜ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋  ๊ฒƒ์œผ๋กœ ๋ณด์ž„
    • 1.8 ๋ฐฐ์—ด, ํฌ์ธํ„ฐ, ์ฐธ์กฐ
      • ๋ฐฐ์—ด์€ ์„ ์–ธ ์‹œ์— ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผํ•จ (์‹ซ์„ ๊ฒฝ์šฐ, ๋™์ ํ• ๋‹น)
      • ๋ฐฐ์—ด ์ ‘๊ทผ ์‹œ, ์ƒ‰์ธ์˜ ์œ ํšจ์„ฑ์ด ์ ๊ฒ€๋˜์ง€ ์•Š๋Š”๋‹ค. (C++ Array๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ)
      • ๋™์  ํ• ๋‹น ์‹œ์— ํฌ์ธํ„ฐ์˜ new, delete๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์ค˜์•ผ ํ•œ๋‹ค.
      • ๊ผญ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ํ•ด์ œ๋ฅผ ํ•ด์ค˜์•ผ๋งŒ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Œ
      • ํฌ์ธํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธ
      • ํฌ์ธํ„ฐ์˜ ์ดˆ๊ธฐํ™”๋Š” nullptr (C++ 11์ด์ƒ)
      • ํฌ์ธํ„ฐ๋Š” ๊ฒฐ๊ตญ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ, ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด, ์—ฌ๋Ÿฌ ๋ฐฉ๋ฉด์œผ๋กœ ์˜ค์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Œ
      • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด๋ถ€์˜ ์ปจํ…Œ์ด๋„ˆ, RAII๋ฅผ ์ด์šฉํ•œ ์บก์Šํ™”, ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹๋‹ค.
      • unique_ptr์€ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์œ ์ผํ•œ ์†Œ์œ ๊ถŒ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํฌ์ธํ„ฐ (๋™์ผํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑ ๋ถˆ๊ฐ€)
      • shared_ptr์€ ๊ณต์œ  ํฌ์ธํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ผ๋ฐ˜์ ์ธ ํฌ์ธํ„ฐ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ, ์ˆœํ™˜ ์ฐธ์กฐ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, make_shared๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ •์ ์ด๊ณ  ์ข‹๋‹ค.
      • ์ฐธ์กฐ๋Š” ํ•ด๋‹น ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ณ„๋ช…์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ
      • ํ•จ์ˆ˜์—์„œ ์ฐธ์กฐ๋ฅผ Returnํ•  ๋•Œ๋Š” ์ฃผ์˜ํ•  ๊ฒƒ (์ƒํ•œ ์ฐธ์กฐ)
      • vector๋Š” Python์˜ list์™€ ์œ ์‚ฌํ•œ ์ปจํ…Œ์ด๋„ˆ
      • valarray๋Š” ์„ฑ๋ถ„๋ณ„ ์—ฐ์‚ฐ์„ ์ง€์›ํ•จ, ์“ฐ๋Š”๊ฑธ ๋ณธ์ ์€ ์—†์Œ
    • 1.9 ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐํ™”
      • ์ฃผ์„ ์ž‘์„ฑ ์‹œ, ์ค‘์ฒฉ๋œ ์ฃผ์„ ์•ˆ๋˜๋ฏ€๋กœ ์ฃผ์˜
      • ๋งคํฌ๋กœ๋Š” ๋˜๋„๋ก ํ”ผํ•˜๊ณ , ์ƒ์ˆ˜, inline, constexpr ๋“ฑ์„ ํ™œ์šฉํ•  ๊ฒƒ
      • ํฌํ•จ๊ฐ€๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด, ํ—ค๋” ํŒŒ์ผ ์ค‘๋ณต ์ •์˜๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, #pragma once์— ๋น„ํ•ด ์ด์‹์„ฑ์ด ์ข‹๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ์กฐ๊ฑด๋ถ€ ์ปดํŒŒ์ผ์„ ์ด์šฉํ•˜๋ฉด, ๋””๋ฒ„๊น… ์ƒํ™ฉ์— ํŠน๋ณ„ํ•œ ๋กœ๊น…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Window, Linux & Unix์— ๋งž์ถฐ์„œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์กด์žฌ ์œ ๋ฌด๋ฅผ ์ด์šฉํ•˜์—ฌ, ์ฝ”๋“œ๋ฅผ ๋‹ค์–‘ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ๋˜ํ•œ, C++์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š” ์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ, ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

4์ฃผ์ฐจ (22/12/22):star:

  • ์ง„ํ–‰ ๋ฐฉ์‹ ๋ณ€๊ฒฝ
    • ์Šคํ„ฐ๋”” ์‹œ๊ฐ„ ๋ณ€๊ฒฝ $\rightarrow$ ๋ชฉ์š”์ผ ์˜คํ›„ 8์‹œ
    • ์Šคํ„ฐ๋”” ๋ฐฉ์‹ ๋ณ€๊ฒฝ $\rightarrow$ ํ”„๋กœ์ ํŠธ ์œ„์ฃผ ์ฝ”๋“œ ์ž‘์„ฑ
    • ์Šคํ„ฐ๋”” ์ฐธ๊ณ  ๋ฌธ์„œ ์ถ”๊ฐ€ $\rightarrow$ ์”น์–ด๋จน๋Š” C++
    • ๋‹ค์Œ์ฃผ๊นŒ์ง€ ๊ฐœ์ธ๋ณ„๋กœ ํ”„๋กœ์ ํŠธ ์ฃผ์ œ ์ •ํ•ด์˜ค๊ธฐ

5์ฃผ์ฐจ (22/12/29):star:

  • ์ฃผ์ œ ์„ ์ •
    • ์žฌํ›ˆ : SLAM์„ ๊ฐ„๋‹จํžˆ ๋งŒ๋“ค์–ด๋ณผ ์˜ˆ์ • (์‹œ์ž‘์€ ICP ๋ถ€ํ„ฐ ์ง„ํ–‰, ROS ์‚ฌ์šฉ ์˜ˆ์ •)
    • ์˜ˆ๋นˆ : ํ…ŒํŠธ๋ฆฌ์Šค (Visual Studio ์‚ฌ์šฉ ์˜ˆ์ • --> MSVC)
    • ๋ฒ”ํ›ˆ : ์ผ๋‹จ ํŒจ์Šค
    • ๋™ํ˜„ : ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ œ์ž‘ (ํ”„๋กœ๊ทธ๋žจ ๋ฏธ์ •)
    • ์ค€๊ทœ : ์‰์ด๋”๋ฅผ ์ด์šฉํ•ด์„œ ๋””ํŽœ์Šค ๊ฒŒ์ž„
    • ์šฐ์„ฑ : ์‹ค์ œ ๋“œ๋ก  ์ œ์–ด
  • ๋งค์ฃผ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ง„ํ–‰
  • ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ๋‚ด์šฉ์„ ๊ณต์œ 

6์ฃผ์ฐจ (23/01/08):star:

  • ๋ฒ”ํ›ˆ๋‹˜ ๊ฐœ์ธ ์ผ์ •์œผ๋กœ ํƒˆํ‡ด (๋Œ์•„์˜ค์‹ค ์ง€๋Š” ์˜๋ฌธ)
  • ์ง„ํ–‰ํ•˜์‹  ์ฝ”๋“œ ๊ผญ ์˜ฌ๋ ค์ฃผ์„ธ์š”!
  • ์ค€๊ทœ๋‹˜
    • ํƒ€์›Œ ๋””ํŽœ์Šค ์‹œ์ž‘ ์ „ ๋ฉ”๋‰ด๊นŒ์ง€ ๊ตฌํ˜„ (Terminal ํ™˜๊ฒฝ Only)
    • Review ํ”ผ๋“œ๋ฐฑ
      • ์˜ค๋ฅ˜ ์ฐพ๊ธฐ ๋ฐ ๋””๋ฒ„๊น… ๋•Œ ์šฉ์ดํ•˜๋„๋ก ํด๋ž˜์Šค ๋ณ„๋กœ ๋ถ„๋ฆฌ (๊ฒŒ์ž„๋™์ž‘ ํด๋ž˜์Šค, ๋ฉ”๋‰ด๋™์ž‘ ํด๋ž˜์Šค ๋“ฑ)
      • while ๋ฌธ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์žก์•„๋จน๊ณ  block์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๊ธฐ์— ์ง€์–‘ํ•  ๊ฒƒ
      • ์ฃผ์„์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค enumerate๋ฅผ ์ด์šฉํ•ด ๊ฐ€๋…์„ฑ๊ณผ ์ฝ”๋“œ ํ€„๋ฆฌํ‹ฐ์— ์‹ ๊ฒฝ์“ธ ๊ฒƒ
      • ๋‹ค์Œ์ฃผ๊นŒ์ง€ ์ž…๋ ฅ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ ๊ฒŒ์ž„ ํ™˜๊ฒฝ ์„ธํŒ… ์˜ˆ์ •
  • ๋™ํ˜„๋‹˜
    • ์˜คํ”ˆ ์†Œ์Šค ์ด์šฉํ•˜์—ฌ, ํ™”๋ฉด ์ƒ์—์„œ ์ด๋™๋งŒ ๊ฐ€๋Šฅ (Terminal ํ™˜๊ฒฝ Only)
    • ์•„์ง ํฌ๊ฒŒ ์ง„ํ–‰ ์‚ฌํ•ญ ์—†์–ด์„œ ํ”ผ๋“œ๋ฐฑ ๋”ฐ๋กœ ์—†์Œ
  • ์žฌํ›ˆ๋‹˜
    • ์—…๋ฌด๊ฐ€ ๋ฐ”๋น ์„œ ์•„์ง ์ง„ํ–‰ ์‚ฌํ•ญ ์—†์Œ
    • ๋‹ค์Œ์ฃผ๊นŒ์ง€๋Š” ICP ๋…ผ๋ฌธ ๋ณด๊ณ , ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ ํ•ด๋ณด๊ธฐ
  • ์˜ˆ๋นˆ๋‹˜
    • PPO๋ฅผ ๊ตฌํ˜„?
  • ์šฐ์„ฑ๋‹˜
    • Ubuntu 20.04 ์„ค์น˜ ๋ฐ CrazyFile ์กฐ๋ฆฝ ์ค‘
    • Localization์€ Base Station ๊ธฐ๋ฐ˜์œผ๋กœ ์ง„ํ–‰ ์˜ˆ์ • (LightHouse)
    • ๋‹ค์Œ์ฃผ๊นŒ์ง€ ํ™˜๊ฒฝ ์„ธํŒ… ๋งˆ์น˜๊ณ  ์ฝ”๋“œ ์ž‘์„ฑ ์ง„ํ–‰ ์˜ˆ์ •

7์ฃผ์ฐจ (23/01/12):star:

  • vector์— ๊ด€๋ จ๋œ ๊ฐ„๋‹จํ•œ ์ด์•ผ๊ธฐ([]์™€ at์˜ ์ฐจ์ด)
  • valgrind ๋ฐ sanitizer๋ฅผ ํ†ตํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐฉ์ง€
  • ๋ฉ”๋ชจ๋ฆฌ Heap ๋ฐ Stack์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์†Œ๊ฐœ
  • ๋‹ค์Œ์ฃผ ์ง„ํ–‰ ์—ฌ๋ถ€๋Š” ์•„์ง ๋ถˆํ™•์‹ค

8์ฃผ์ฐจ (23/01/26):star:

  • ์ง„ํ–‰ ๋ฐฉ์‹ ๋ณ€๊ฒฝ
    • ์•ฝ 10 ~ 15๋ถ„ ์ •๋„ ๋ฐœํ‘œํ•  ๋‚ด์šฉ ์ค€๋น„
    • ์ค€๋น„ ์•ˆํ•ด์˜ฌ ์‹œ, ๋ฒŒ๊ธˆ 5000์›
    • ์—ฐ์†์œผ๋กœ ์•ˆํ•ด์˜ค์‹œ๋ฉด, ๋ˆ„์ง„์„ธ (2์ฃผ ์—ฐ์†์ด๋ฉด 10000์›, 3์ฃผ ์—ฐ์†์ด๋ฉด 15000์›, 4์ฃผ ์—ฐ์†์ด๋ฉด ์Šคํ„ฐ๋”” ํƒˆํ‡ด)
    • ๊ฐœ์ธ ์‚ฌ์œ  ์žˆ์œผ์‹œ๋ฉด, ๋ฏธ๋ฆฌ ๋ง์”€ํ•ด์ฃผ์‹œ๊ณ , ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๋ฉด, ๊ฒฉ์ฃผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ์ค€๊ทœ๋‹˜
    • ์ฝ”๋“œ ์ž‘์„ฑ ์ถ”๊ฐ€ ์ง„ํ–‰
    • ํ”ผ๋“œ๋ฐฑ ๋‚ด์šฉ ์ž‘์„ฑ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  • ๋™ํ˜„๋‹˜
    • ๋”ฅ๋Ÿฌ๋‹๊ด€๋ จ ๋‚ด์šฉ ์„ธ๋ฏธ๋‚˜ ์ง„ํ–‰
    • ์„ค๋ช… ๋ณด์™„์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์Œ
  • ์šฐ์„ฑ๋‹˜
    • ์ถ”ํ›„ ์ง„ํ–‰ํ•  ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ๋‚ด์šฉ ์„ค๋ช…
    • CAN ํ†ต์‹  ๊ธฐ๋ฐ˜์˜ ๋ณด์•ˆ ๊ด€๋ จ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์˜ˆ์ •
  • ์žฌํ›ˆ๋‹˜
    • C++์˜ Thread ๋“ฑ์˜ ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์†Œ๊ฐœ ์˜ˆ์ •
    • ๊ฐ„๋‹จํ•œ Thread์™€ Process์˜ ์ฐจ์ด ์„ค๋ช…
    • Thread, Mutex, Future, Promise ๋“ฑ์— ๋Œ€ํ•ด ์†Œ๊ฐœ ์˜ˆ์ •

9์ฃผ์ฐจ (23/02/02):star:

  • ๋™ํ˜„๋‹˜
    • ORB-SLAM3 ์„ค์น˜ ๋ฐ ์‹คํ–‰
    • ์กฐ๊ธˆ ๋” ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์Šค์Šค๋กœ ์•Œ์•„๊ฐ€๋Š” ๊ธฐํšŒ๋ฅผ ๊ฐ€์กŒ์œผ๋ฉด ์ข‹๊ฒ ์Œ
  • ์˜ˆ๋นˆ๋‹˜
    • ๋ฌธ์ œ๋ฅผ ๋๊นŒ์ง€ ํ‘ธ๋Š” ์—ฐ์Šต์„ ํ•  ๊ฒƒ
    • CS๊ณต๋ถ€๋Š” ํ‹ˆํ‹ˆํžˆ ํ•  ๊ฒƒ
  • ์žฌํ›ˆ๋‹˜
    • Class ๊ตฌ์กฐํ™” ๋ฐ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ ๊ด€๋ จ ์„ค๋ช…
    • ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ ๊ด€๋ จ ๋‚ด์šฉ ์„ค๋ช… ์˜ˆ์ •

10์ฃผ์ฐจ (23/02/09):star:

  • ์˜ˆ๋นˆ๋‹˜
    • Dynamic Programming
  • ๋™ํ˜„๋‹˜
    • Unitree Go1
  • ์žฌํ›ˆ๋‹˜
    • C++ Operator Overloading
  • ์šฐ์„ฑ๋‹˜
    • ์ค€๋น„ ์•ˆํ•จ (5,000์› ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค)

11์ฃผ์ฐจ (23/02/16):star:

  • ์˜ˆ๋นˆ๋‹˜
    • 5000์›
  • ๋™ํ˜„๋‹˜
    • Visual Odometry ์ฝ”๋“œ ๋ฆฌ๋ทฐ
  • ์žฌํ›ˆ๋‹˜
    • ์ƒ์† ์—†์ด ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• (๋‹ค์Œ์ฃผ์— ์ƒ์† ๋‚ด์šฉ ์ง„ํ–‰ ์˜ˆ์ •)
  • ์šฐ์„ฑ๋‹˜
    • Simulink๋กœ ๊ฐ„๋‹จํ•œ Suspension ๋ชจ๋ธ ๊ตฌํ˜„
  • ์ค€๊ทœ๋‹˜
    • D435 + yolov5 ์ ์šฉํ•ด์„œ Object Detectionํ›„, ํ•ด๋‹น ๊ฐ์ฒด ์œ„์น˜๋กœ์˜ Goal ์ฐพ๊ธฐ

12์ฃผ์ฐจ (23/02/23):star:

  • ์žฌํ›ˆ๋‹˜
    • ์ƒ์† ๊ด€๋ จ ๋‚ด์šฉ ์„ค๋ช…
    • Rule of Three / Five / Zero ์„ค๋ช…
    • istream, ostream, ifstream, ofstream, stringstream ๊ด€๋ จ ๋‚ด์šฉ ์„ค๋ช…
  • ์˜ˆ๋นˆ๋‹˜ (์•ˆ์™”๋Š”๋ฐ..? 10000์›?)
  • ์šฐ์„ฑ๋‹˜
    • Active Suspension Model ๋งŒ๋“ค๊ธฐ
  • ๋™ํ˜„๋‹˜
    • Visual Odometry ์ฝ”๋“œ์— ์žˆ๋Š” FAST ๋Œ€์‹  ORB, BRISK๋กœ ๋ฐ”๊ฟ”๋ด„
  • ์ค€๊ทœ๋‹˜
    • 5000์›

13์ฃผ์ฐจ (23/03/02):star:

  • ์žฌํ›ˆ๋‹˜
    • C++ Template ์ผ๋ถ€
  • ์˜ˆ๋นˆ๋‹˜
  • ์ค€๊ทœ๋‹˜
    • D435๋ฅผ ์ด์šฉํ•ด ๋„ํ‚น ์Šคํ…Œ์ด์…˜ ๊ตฌ์ถ• ์œ„ํ•œ ๊ด€๋ จ์ž๋ฃŒ ๋ฐœํ‘œ

14์ฃผ์ฐจ (23/03/09):star:

  • ์žฌํ›ˆ๋‹˜
    • C++ Inline ํ•จ์ˆ˜ ๋‚ด์šฉ + implementation header ๊ด€๋ จ ๋‚ด์šฉ ์ถ”๊ฐ€
  • ๋™ํ˜„๋‹˜
    • CycleGAN ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ ์„ค์ • + ํ•™์Šต์ค‘...
  • ์šฐ์„ฑ๋‹˜
    • semi active susepension ์›๋ฆฌ

15์ฃผ์ฐจ (23/03/23):star:

  • ์žฌํ›ˆ๋‹˜
    • C++ Template ํŠน์ˆ˜ํ™” & Variadic Template & TMP
  • ์ค€๊ทœ๋‹˜
    • D435 + yolov5 ๋กœ ๋ฌผ์ฒด ๊ฐ๋„ ์ธก์ •.
    • ์ดํ›„ 2D LiDAR + Camera Calibration ์ง„ํ–‰ ์˜ˆ์ •
    • ๊ด€๋ จ ์ฝ”๋“œ ๋‚ด์šฉ ์ถ”๊ฐ€

16์ฃผ์ฐจ (23/04/01):star:

  • ์žฌํ›ˆ๋‹˜
    • STL & ์˜ˆ์™ธ์ฒ˜๋ฆฌ & rvalue reference

17์ฃผ์ฐจ (23/04/06):star:

  • ์žฌํ›ˆ๋‹˜
    • move semantics & perfect forwarding & Unique Ptr
  • ๋™ํ˜„๋‹˜
    • StarGAN v2 ๋…ผ๋ฌธ๋ฆฌ๋ทฐ
  • ์šฐ์„ฑ๋‹˜
    • Active Suspension Simulink & CarMaker๋กœ ํ…Œ์ŠคํŠธ

18์ฃผ์ฐจ (23/04/13):star:

  • ์žฌํ›ˆ๋‹˜
    • Shared Ptr & Callable & C++ GUI App
  • ์˜ˆ๋นˆ๋‹˜
    • BlackJack ์นด๋“œ ๊ฒŒ์ž„ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ(๊ฐ์ฒด์ง€ํ–ฅ, ์ƒ์†)

19์ฃผ์ฐจ (23/04/20):star:

  • ์žฌํ›ˆ๋‹˜
    • C++ Thread & mutex
  • ๋™ํ˜„๋‹˜
    • ORB-SLAM3๋ฅผ ์ง์ ‘ ์ทจ๋“ํ•œ ๋ฐ์ดํ„ฐ ์…‹์œผ๋กœ ์‹คํ–‰ํ•ด๋ณด๊ธฐ + ์„ฑ๋Šฅ๋น„๊ต
  • ์šฐ์„ฑ๋‹˜
    • ์ตœ์ข… ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œ ์ค€๋น„

20์ฃผ์ฐจ (23/04/27):star:

  • ์žฌํ›ˆ๋‹˜
    • Atomic, Memory Order

21์ฃผ์ฐจ (23/05/04):star:

  • ์žฌํ›ˆ๋‹˜
    • Python Selenium ์‚ฌ์šฉ ์˜ˆ์‹œ, Future & Promise
  • ์šฐ์„ฑ๋‹˜
    • Active Suspension ๊ด€๋ จ TTC ๊ณ„์‚ฐ ๋ฐ ์ด๋ฅผ ํ†ตํ•œ ์ œ์–ด ์†Œ๊ฐœ

22์ฃผ์ฐจ (23/05/11):star:

  • ํœด์‹ (ํšŒ์‹)

23์ฃผ์ฐจ (23/05/18):star:

  • ์˜ˆ๋นˆ๋‹˜
    • Point Cloud Library
  • ์ค€๊ทœ๋‹˜
    • C# ๊ธฐ๋ฐ˜ ์ฃผํ–‰ ์ œ์–ด ์ฝ”๋“œ

24์ฃผ์ฐจ (23/05/25):star:

  • ์žฌํ›ˆ๋‹˜
    • ThreadPool & initializer_list

25์ฃผ์ฐจ (23/06/01):star:

  • ์˜ˆ๋นˆ๋‹˜
    • pcl RANSAC & clustering

26์ฃผ์ฐจ (23/06/17):star:

  • ์šฐ์„ฑ๋‹˜

27์ฃผ์ฐจ (23/07/01):star:

  • ์˜ˆ๋นˆ๋‹˜
    • GUI rqt_example & qt_creator