> 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.11/11.md).

# MIDAS LOG

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

## 11.01

* IFC Geometry Converter
  * dll, lib - 오늘 처리 완료
  * cmake
  * OpenSceneGraph

### 해야 할 것

* Analytics Line
* IFC Geometry Converter
* Clean Code
* 사내 Doc

## 11.05

* IFC Geometry Converter
  * cmake
  * OpenSceneGraph
  * BIM
  * IFC

-> 모두 개념 정리 완료!, 이제 코드 분석할 것

* [C++ 17 공부](/midas_log/contents/basiceducation/cpp17.md)

### 해야 할 것

* Analytics Line
* IFC Geometry Converter
* Clean Code
* 사내 Doc

## 11.06

* IFC Geometry Converter
  * Code 조금 분석  &#x20;
* [C++ 17 공부](/midas_log/contents/basiceducation/cpp17.md)

### 해야 할 것

* Analytics Line
* IFC Geometry Converter
* Clean Code
* 사내 Doc

## 11.08

* IFC Geometry Converter
  * Code, 구조 분석
* [C++ 17 공부 끝](/midas_log/contents/basiceducation/cpp17.md)
* [C++ Basic](/midas_log/contents/basiceducation/cppbasic.md), smart pointer 추가하기
* [Visual Basic Set](/midas_log/contents/basiceducation/visualcodebasicset.md)

### 해야 할 것

* Analytics Line
* IFC Geometry Converter
* Clean Code
* 사내 Doc

## 11.09

* IFC Geometry Converter
  * Code 직접 짜기, 구조 분석
* [C++ Basic](/midas_log/contents/basiceducation/cppbasic.md), smart pointer 추가하기

### 해야 할 것

* Analytics Line
* IFC Geometry Converter
* Clean Code
* 사내 Doc

## 11.12

* IFC Geometry Converter
  * Code 개발 중
* [C++ Basic](/midas_log/contents/basiceducation/cppbasic.md), smart pointer 추가하기

### 해야 할 것

* Analytics Line
* IFC Geometry Converter
* Clean Code
* 사내 Doc

## 11.13

* IFC Geometry Converter
  * Code 개발 중
* [C++ Basic](/midas_log/contents/basiceducation/cppbasic.md), smart pointer 추가하기
* IFCQuery Open Source Contribute
* Clean Code

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* 사내 Doc
* Analytics Line

## 11.14

* IFC Geometry Converter
  * Code 개발 중
* [C++ Basic](/midas_log/contents/basiceducation/cppbasic.md), smart pointer 완료
* Clean Code

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* 사내 Doc
* Analytics Line

## 11.15

* IFC Geometry Converter
  * 중간 완료, 테스트 코드 작성
* [C++ Basic](/midas_log/contents/basiceducation/cppbasic.md)
  * C++ Getter, Setter
  * Random header
  * Regex header
  * Multi Thread
* Clean Code

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* 사내 Doc
* Analytics Line
* cpp17 Varient

## 11.16

* IFC Geometry Converter
  * 기능 개 많이 완료..., 테스트 코드 및 리팩토링 필요
* Clean Code

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* 사내 Doc
* Analytics Line
* cpp17 Varient

## 11.19

* IFC Geometry Converter
  * 테스트 코드 및 리팩토링
* Clean Code

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* 사내 Doc
* Analytics Line
* cpp17 Varient

### 중단점

#### 단축기

* 중단점 창 **(** `ctrl + alt + B` **)**
* 중단점 설정/해제/삭제 **(** `F9` **)**
* 중단점 설정/해제 **(** `ctrl + F9` **)**
* 모든 중단점 설정 **(** `디버그 텝 메뉴 확인` **)**
* 모든 중단점 해제 **(** `디버그 탭 메뉴 확인` **)**
* 모든 중단점 삭제 **(** `ctrl + shift + F9` **)**

#### 조건 (마우스 오른쪽 클릭해서 조건 탭 중 하나)

**조건**\
중단점에 조건식을 걸 수 있다. (참, 거짓)

**적중 횟수**\
중단점에 걸리는 횟수를 이용해 중단점이 걸리는 것을 설정할 수 있다. (값 동일, 값이 배라면, 값 보다 크거나 같을 때)

**필터**\
병렬 프로그램에서 사용 프로세스, 스레드, 컴퓨터 이름을 중단점에 걸렸을 때 출력할 수 있음.

#### 작업

**동작 지정**\
일반적으로 중단점의 기본 동작은 실행을 중단하는 것입니다. 동작을 지정할 경우 출력 창에 특정 정보를 출력하는 용도로 사용할 수 있습니다. (적중 될 때, 지정을 하지 않을 경우 코드를 실행하며 동작을 실행)

* `$ADDRESS` : 현재 명령
* `$CALLER` : 이전 함수 이름
* `$CALLSTACK` : 호출 스택
* `$FUNCTION` : 현재 함수 이름
* `$PID`, `$PNAME` : 운영 체제 프로세스의 ID 및 이름을 반환
* `$TID`, `$TNAME` : 운영 체제 스레드의 ID 및 이름을 반환

## 11.20

* IFC Geometry Converter
  * 테스트 코드 작성
* Clean Code

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* Analytics Line
* cpp17 Varient

### 디버깅

**어떤 자료 구조의 생성과 소멸을 한 곳에서 관리해야 하는 이유...**\
소멸되서는 안 될 어떤 자료가 소멸됐다. 알아내기 위해 소멸하는 곳을 찾아가 조건부 중단점을 사용해서 바로 해결할 수 있었다!!

### static singleton shared\_ptr -> 상속

static으로 선언됐기 때문에 ptr이 계속 살아있는다.\
해당 선언부의 소멸자에서 reset을 시켜주도록 하자.

### CIM TransAction -> PPT

각종 정리 ppt 자료 참고

## 11.21

* IFC Geometry Converter
  * 테스트 코드 작성
* [Commit Message Rule](/midas_log/contents/basiceducation/commit.md)

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* Analytics Line
* cpp17 Varient

### CWaitCursor wait;

* 그냥 선언하고, wait.Restore() 사이가 바로 모래시계 모양이 됨

```
CWaitCursor wait;
wait.Restore();
```

## 11.22

* IFC Geometry Converter
  * 으아 1DMember 거의 완성해간다\~
  * Refactoring

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* Analytics Line
* cpp17 Varient

### Test Code

진짜 Test Code는 중요하다!\
Refactoring을 하는데 검증의 수단으로서 정말 너무 유용하다.\
혼자 개발을 할 시에도 꼭 Test Code를 짜도록 하자!

## 11.23

* IFC Geometry Converter
  * 1D Member
  * Refactoring

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future
* Cpp17
  * apply
  * optional
  * variant
  * any
  * string\_view

## 11.26

* IFC Geometry Converter
  * 1D Member
  * Refactoring
* Cpp17
  * optional
  * variant
  * any
  * string\_view

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* Clean Code
* Analytics Line
* Cpp Basic
  * Thread
  * async future

## 11.27

* IFC Geometry Converter
  * 1D Member
  * Refactoring
* Feature Solid
* Clean Code

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* 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

## 11.28

* Install Shield
* Clean Code
* MIDAS Docs

### 해야 할 것

* IFC Geometry Converter
* Install Shield
* 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

## 11.29

* Clean Code
* IFC Geometry Converter

### 해야 할 것

* 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

### Lambda

람다로 인해 함수의 파라미터로 함수를 넘길 수 있음을 기억하자!!\
Factory 패턴에서도 map을 이용해 함수를 value로 받아 그 안에서 또 맵을 이용해 특정 Entity를 찾는 방법도 있다. 꽤 괜찮은 듯?\
중요한 것은 함수를 인자로 넘겨 받을 수 있다는 사실을 아는 것이 중요.

## 11.30

* IFC Geometry Converter
* unicode
* C++ 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

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

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

### Unicode 분석

* [Unicode](https://wnsgml972.github.io/encoding/encoding_unicode.html)
