| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- HDmap
- timestamp
- Phase Offset
- Coding Test
- Motion compensate
- object detection
- PYTHON
- ApolloAuto
- Alpha Prime(VLS-128)
- PointCloud Frame
- Data Race
- Smart Pointer
- Multi threaded
- PointCloud
- coordinate system
- nvidia
- 3-sigma rule
- VLS-128
- lidar
- Alpha Prime
- Phase Lock
- Single threaded
- Azimuth
- Reflectivity
- Interference Pattern
- Frame rate
- Data Packet
- Veloview
- Quaternion 연산
- 센서셋
- Today
- Total
목록Modern C++ (6)
엔지니어 동행하기
Concurrency Programming에서 생길 수 있는 대표적인 문제로 Data Race가 있습니다. 이를 해결하기 위해 std::mutex를 사용하게 되는데, mutex의 operations를 그대로 사용하는 경우 개발자가 실수를 하기 쉽습니다. 따라서 std::lock_guard를 사용하면 실수를 없앨 수 있습니다. ( 그런데 이는 Concurrency Programming의 또 다른 Dead Lock이라는 문제를 유발할 수 있습니다. 이를 개선한 여러 lock manager들-unique_lock, scoped_lock, shared_lock 또한 존재합니다.) 이에 대해 자세히 하나씩 설명드리겠습니다. 먼저 다음 포스팅을 참고하시면 좋습니다. 2022.08.07 - [Modern C++/Co..
처음 접하는 경우 헷갈릴 수 있는 개념으로, Concurrency Programming과 Parallel Programming의 차이에 대해 확실히 구분하고 갈 필요가 있습니다. 또한 이러한 프로그래밍 방식을 사용하기 위해 기초적으로 알아야 하는 std::thread에 대해 설명드리겠습니다. Single threaded process VS Multi threaded process Thread에 관한 기본적인 설명은 다음 블로그를 참고하면 됩니다. https://goodgid.github.io/What-is-Thread/ 쓰레드(Thread)란 무엇인가? Index goodgid.github.io 기본적으로 Process에는 Main Thread가 존재하며 이외에 다른 Thread가 없을 경우 Single..
Floating Point 가 같은지 비교할 때, == operator를 사용하면 의도하지 않은 결과를 얻게 됩니다. 그 이유는 컴퓨터가 Floating Point를 정확히 그 값으로 가지고 있는 것이 아니라 그 값과 가장 가까운, 컴퓨터로 표현할 수 있는 값으로 가지고 있기 때문입니다. 그렇다면 Floating Point가 같은지 비교하기 위해서는 어떻게 해야 하는지에 대한 내용을 정리하도록 하겠습니다. epsilon() epsilon() 함수는 1.0과 Type T로 나타낼 수 있는 1.0보다 큰 가장 작은 값의 차이를 출력합니다. 즉, Type T로 나타낼 수 있는 0에 가장 가까운 값을 반환합니다. 예제 1 : Floating Point가 같은 값인지 판단 epsilon()함수의 반환 값을 이용하..
Smart Pointer는 RAII idiom 기법을 따르며, C++에서 메모리 관리를 위한 핵심 개념입니다. 그중 두 번째로 Shared ownership을 제공하는 std::shared_ptr에 대해 설명드리겠습니다. std::shared_ptr는 잘못 사용할 경우, Circular reference가 발생해 Memory leak이 생길 수 있어 주의가 필요합니다. 또한 std::shared_ptr를 Class의 member variable로 사용할 때, std::unique_ptr과 어떻게 다른지 분석하였습니다. Shared ownership 하나의 Object를 여러 개의 Pointer가 가리킬 수 있다. 그래서 RAII idiom을 따르기 위해 reference counter를 사용한다. 즉, ..
Smart Pointer는 RAII idiom 기법을 따르며, C++에서 메모리 관리를 위한 핵심 개념입니다. 그중 첫 번째로 Exclusive ownership을 보장하는 std::unique_ptr에 대해 다뤄보겠습니다. Exclusive Ownership (Heap memory 상의) 하나의 Object는 하나의 Pointer만 가리킬 수 있음을 의미합니다. #include #include struct D { D() { std::cout
C++ 은 Memory(RAM)을 개발자가 직접 관리할 수있는 HW와 매우 밀접한 언어입니다. 그렇기 때문에 더욱 빠른 코드를 작성할 수 있지만, 잘못 사용할 경우 Segmentation fault, Memory Leak과 같은 문제가 발생할 수 있습니다. 따라서 Smart Pointer를 적절히 사용할 수 있어야 합니다. Smart Pointer 사용 이유 RAII ( Resource Acquisition Is Initailization) : Resource의 life cycle과 Object의 life cycle을 일치시켜 Memory Leak을 원천적으로 방지하기 위함 - Resource : Heap memory, Thread, Mutex, File access, DB connection 등이 이에..