> For the complete documentation index, see [llms.txt](https://wnsgml972.gitbook.io/midas_log/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wnsgml972.gitbook.io/midas_log/contents/2018.12/12.md).

# MIDAS LOG

## go home! [:house\_with\_garden:](https://github.com/wnsgml972/midas_log)

## 12.03

* IFC Import 1D 마무리

### 해야 할 것

* IFC Geometry Converter
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
* boost
  * asio
  * multi\_index

## 12.04

* IFC Import 2D
* PR Day 준비

### 해야 할 것

* IFC Geometry Converter
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
* boost
  * asio
  * multi\_index

## 12.05

* IFC Import 2D
* PR Day
* CPP Basic

### 해야 할 것

* IFC Geometry Converter
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
* boost
  * asio
  * multi\_index

## 12.06

* IFC Import 2D
* Solid Refactoring
* CPP Basic

### 해야 할 것

* IFC Import 2D
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
* boost
  * asio
  * multi\_index

#### C++ 다양한 초기화 방법

* [C++ Basic](/midas_log/contents/basiceducation/cppbasic.md)

#### `ASSERT, assert, static_assert`

일단 기본적으로 assert는 조건 처리를 통해 거짓이 나올경우 프로그램을 그 지점에서 바로 중단시켜 준다. <br>

* 그렇기 때문에 디버깅 할 때 매우 편하다.
* if 문을 통한 예외 처리 방식 보다는 때에 따라 assert를 넣는 것이 효과적이다.
* 디버깅 모드에서만 프로그램이 중단된다.
* 그 말은 Release 모드에서는 assert가 걸리지 않는다.
* 보통 사용할 때 `assert(0);` 을 넣는데 그것 뿐만 아니라 조건 처리를 이용해 프로그램을 중단시킬 수 있음을 기억하자.

ASSERT와 assert는 똑같다. 그러나 ASSERT는 mfc 함수 내에 전처리기로 정의되어 있는 듯 하다. assert는 헤더 파일에 따로 정의되어 있다. 범용적으로 사용하기 위해 assert를 사용하자.\ <br>

assert와 ASSERT가 프로그램 런타임 시점에 조건에 의해 중단을 시켜준다면, static\_assert는 컴파일 시점에 프로그램을 중단시켜준다. 역시 때에 따라 잘 사용하도록 하자.

## 12.10

* IFC Import 2D
* Solid Refactoring
* [Modern C++ Framework 분석](/midas_log/contents/basiceducation/framework.md)

### 해야 할 것

* [Modern C++ Framework 분석](/midas_log/contents/basiceducation/framework.md)
* IFC Import 2D
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
* boost
  * asio
  * multi\_index

## 12.11

* IFC Import 2D
* Solid Refactoring
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* [Naming](/midas_log/contents/basiceducation/naming.md)

### 해야 할 것

* IFC Import 2D
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
* boost
  * asio
  * multi\_index

## 12.12

* Modern C++ 이용해서 DPGet 개선
* IFC Rebar 일단 할 수 있는 부분...

### 해야 할 것

* IFC Import 2D
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
* boost
  * asio
  * multi\_index
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)

## 12.13

* IFC Rebar refactoring

### 해야 할 것

* IFC Import 2D
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
* boost
  * asio
  * multi\_index
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)

### boost, typeindex -> 해당 타입을 런타임 중에도 정확하게 추론해준다.

```cpp
#include <boost/type_index.hpp>
using namespace boost::typeindex;

template<typename T>
void f(const T& param)
{
    std::cout << type_id_with_cvr<T>().pretty_name() << std::endl;
    std::cout << type_id_with_cvr<decltype(param)>().pretty_name() << std::endl;
}

//f() 호출하면
//int
//int const &
//정확히 출력
```

## 12.14

### 우선 순위

* Ifc Export 기반 기술 확보
* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)

### 해야 할 것

* IFC Export 기반 기술 확보
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
  * [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)

### Code Quality

* [CodeQuality](/midas_log/contents/basiceducation/codequality.md)
* 최종적으로는 개발자 간 코드 리뷰 시스템 도입

## 12.17

### 우선 순위

* Ifc Export 기반 기술 확보
* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)

### 해야 할 것

* IFC Export 기반 기술 확보
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
  * [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)

## 12.18

### 우선 순위

* Ifc Export 기반 기술 확보
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)

### 해야 할 것

* IFC Export 기반 기술 확보
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
  * [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)

## 12.19

### 우선 순위

* IFC Import 사용자 제공을 위한 테스트
* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)

### 해야 할 것

* IFC Export 기반 기술 확보
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
  * [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)

### [Clean Code](/midas_log/contents/basiceducation/cleancode.md)

### IFC Export

기반 기술 확보, 일단 오픈 소스 기준 해당치까지는 구현... \
&#x20;더 이상 개발 불가능...

## 12.20

### 우선 순위

* IFC Import 사용자 제공을 위한 테스트
* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)

### 해야 할 것

* IFC Import 사용자 제공을 위한 테스트
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * filesystem
  * [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)

## 12.21

### 우선 순위

* IFC Import 사용자 제공을 위한 테스트
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)

### 해야 할 것

* IFC Import 사용자 제공을 위한 테스트
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)

### 변환 행렬 공식...

4 : 4 행렬 만들고, 단위행렬을 만든 뒤 4열의 {x, y, z, 1} 로 위치 이동을 시킬 수 있다. \
&#x20;핵힘듬... 문제 알아내고 적용시켜서 해결하는데 오늘 하루 다썼는데 코드 정리해보니까 20줄도 안 됨...ㅋㅋㅋ

## 12.24

### 우선 순위

* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* IFC Import 사용자 제공을 위한 테스트 일단 현 이슈는 처리 완료ㅎㅎ..
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)

### 해야 할 것

* IFC Import 사용자 제공을 위한 테스트
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)

## 12.26

### 우선 순위

* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)

### 해야 할 것

* IFC Import 사용자 제공을 위한 테스트
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* Cpp17
  * [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)

### [Modern C++ Framework 구현 분석](/midas_log/contents/basiceducation/framework.md)

### MArray 분석

## 12.27

### 우선 순위

* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)

### 해야 할 것

* IFC Import 사용자 제공을 위한 테스트
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)

### [Code Review](/midas_log/contents/basiceducation/codereview.md)

### Smart Pointer to Nomal Pointer

1. `std::shared<int> intPointer; int *ipVal;`

```cpp
std::shared<int> intPointer;
int *ipVal = intPointer.get();
```

1. `std::shared<int> intPointer; int intVal;`

```cpp
std::shared<int> intPointer;
int ipVal = *intPointer;
```

### Google 함수 별 퍼포먼스 측정이 가능한 benchmark

구글의 gtest와 연동해서 동작이 가능하다. 오늘 Build 다 성공함!!

## 12.31

### 우선 순위

* [Code Review](/midas_log/contents/basiceducation/codereview.md)
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)

### 해야 할 것

* IFC Import 사용자 제공을 위한 테스트
* [Clean Code](/midas_log/contents/basiceducation/cleancode.md)
* Analytics Line
* Cpp Basic
  * Thread
  * async future <http://snowdeer.github.io/c++/2017/08/20/cpp11-future-and-async/>
* boost
  * asio
  * multi\_index
* [Code Review](/midas_log/contents/basiceducation/codereview.md)
