# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wnsgml972.gitbook.io/midas_log/contents/2018.12/12.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
