MIDAS LOG
go home! :house_with_garden:
10.01
C++ 공부
익명 함수 문법(Lambda)
vector, push_back vs emplace_back
push_back vs emplace_back
※ 실제 사용예 필자가 전에 push_back으로 작성했던 코드이다. 이 코드는 CStationObj 임시 객체를 생성하고 그것을 push_back에 전달하는 걸 알 수 있으며 성능을 따져봤을때 비효율적이다.(내부적으로 CStationObj의 임시 객체가 생성되고 생성자와 소멸자도 호출되기 때문)
emplace_back은 함수 원형에서 본 거와 같이 가변 인자를 받을 수 있어서 아래와 같이 인자를 넣을 수 있으며, 받은 인자를 std::vector안에서 직접 CStationObj를 생성하므로 push_back보다 성능상 낫다.
※ 참고 사항
push_back으로 하여도 컴파일러 내부적으로 최적화 하기 때문에 emplace_back으로 하는 것과 별차이가 없을 수 있다. 고로 개인 프로젝트가 아니라면 호환성이 더 좋은 push_back 사용이 더 나을 수도 있다.
push_back함수로 할 수 있는 모든 것을 emplace_back으로 할 수 있다.
push_back함수보다 emplace_back 함수가 대체로 효율적이다.
해야 할 것
Feature 툴 사용, 모델링 해보기 (4)
mday ppt 제작
shared_ptr 공부할 것
해결한 것
Solid 기능 구현 약간
10.02
해결한 것
MDay 발표 준비
해야 할 것
Feature 툴 사용, 모델링 해보기 (4)
mday ppt 제작
shared_ptr 공부할 것
Feature Solid
10.04
해결한 것
Feature 툴 사용, 모델링 해보기 (4)
해야 할 것
Feature 툴 사용, 모델링 해보기 (4)
shared_ptr 공부할 것
Feature Solid
10.05
해결한 것
Feature Solid 하는 중
해야 할 것
C++, C# ??
shared_ptr 공부할 것
Feature Solid
10.08
C++ 공부
교차 포함 (형식 지정자가 필요합니다)
분명히 클래스를 Include 하였음에도 불구하고 오류가 난다. program once에 의해 Include가 한번만 불려지기 때문, 아니면 포함하지 않았지만 간접적으로 서로를 포함한 경우 에러가 발생
다음과 같이 참조하는 클래스를 포인터로 선언하고, 클래스를 나중에 구현할 것이다! 하고 선언만 해 놓으면 간단히 오류를 해결할 수 있다.
C++, C#, Java
다양한 언어가 나와서 각자의 영역을 조금씩 마련했다.
각각 장단점이 있고 분야에 맞게 사용하는 것이 좋다.
하지만 범용적으로 쓰이는 언어는 자바가 맞다.
Inline 함수
최적화에 사용
Stack에서 컴파일러가 함수를 호출하는 대신, 그에 대응하는 함수 코드 자체를 넣는다는 것을 의미. 주소를 왔다갔다 하며 되돌아오지 않기 때문에 어떤 연산을 많이하는 함수 같은 경우에 유리.
컴파일러에 의해 처리가 되기 때문에 디버깅에 용이
근데 지금은 컴파일러가 오히려 성능에 해가된다고 판단하면 무시하기도 하고(재귀함수이거나 덩치가 큰 함수) 도움이 된다고 생각하면 일부 함수들을 임의로 인라인 처리를 하기도 함.
즉 인라인 자동화로 요새는 많이 사용하지는 않지만 퍼포먼스에 중요한 프로그램일 경우 생각하며 리팩토링 하는게 좋을 듯?
Interface
순수가상함수로 짜면 된다.
문법으로도 따로
__interface
라는 것이 있다.
해결한 것
Feature Solid 완성!
해야 할 것
shared_ptr 공부할 것
Feature Solid 테스트 코드 작성할 것 (구글의 gtest)
10.10
gtest
특징
Google에서 개발된 C++ 테스트 프레임 워크
Git에서 다운받아서 헤더파일 추가해서 사용
간단한 사용 방식은 다운 받아서, 검증해야할 부분을 검증하면 됨
사용하기 편하게 라이브러리를 덮어서 만들면 더 좋음, Test Fixture
구글에서도 실제로 사용 중 (Chrom)
항상 맞다고 생각하는 부분은 꼭 테스트 코드를 작성해야 함 (DB, Socket 통신 등등)
테스트 코드를 다 통과하더라도 버그가 없는 건 아니다.
사실 상 및에 참고 자료 정독하면 다 이해 됨
참고 자료
Interior Program 구조 개선 중
해야 할 것
shared_ptr 공부할 것
Feature Solid 테스트 코드 작성할 것 (구글의 gtest)
10.11
해결한 것
MFC-InteriorProgram 리팩토링
해야 할 것
shared_ptr 공부할 것
Feature Solid 테스트 코드 작성할 것 (구글의 gtest)
10.12
전체 구조 변경... 너무 안 좋은 구조 개선
해결한 것
MFC-InteriorProgram 리팩토링
Feature Solid 끝
해야 할 것
shared_ptr 공부할 것
10.15
전체 구조 변경
기존 구조
변경된 구조
해결한 것
MFC-InteriorProgram 리팩토링 중
해야 할 것
shared_ptr 공부할 것
개발 제품 수업
10.16
해결한 것
MFC-InteriorProgram 리팩토링 끝!
CIM 수업 끝!, 간단한 정리 파트 공유 폴더
해야 할 것
Interior Program 남은 기능
Redo, Undo ( 딜리트 시 스택에 담으면 됨 )
키보드 단축기
ctrl+z : undo ( 이벤트 처리기 리스너만 만들어놈 )
ctrl+y : redo ( 리스너 만들었는데 안 불림ㅠ )
Save Load As JSon ( 저장 로드 )
키보드 단축기
ctrl+s : 저장 ( 리스너 만들었는데 딴 거 불림 )
ctrl+o : 불러오기 ( 리스너 만들어야 함 )
마우스 우클릭 메뉴
Rotate ( 이벤트 처리기 리스너만 만들어놈 )
ObjectShape
추 후 Room 그룹화 고민해 볼 것
이미지 크기 변환 (Wheel, Edit)
사용자 추가 기능
Group Mode??
재질 바꾸기
Magnetic 보완
10.17
MIDAS DB 수업
해야 할 것
수업 정리
InteriorProgram 각종 Issues
10.18
MIDAS DB 수업 (member)
대형 과제 첫 기획자와 회의... (예상 기간 1년...?)
해야 할 것
수업 정리
당분간 또 InteriorProgram 못 할듯ㅠㅠ
10.22
MIDAS DB 보완 업무 80% 완성
해야 할 것
MIDAS DB 보완
Analytics Line
10.23
MIDAS DB 보완 완성
고등 알고리즘 시험... 개망... (알고리즘 한 문제씩 풀기 긴급...)
해야 할 것
MIDAS DB 보완
Analytics Line
10.24
Clean Code
각종 DB 배운 것 정리
해야 할 것
Analytics Line
10.25
Clean Code
SolidPhase 다시 정리
해야 할 것
Analytics Line
사내 Doc
10.26
Clean Code
SolidPhase 다시 정리
사내 Doc
해야 할 것
Analytics Line
10.29
Clean Code
사내 Doc
TODO Comment (작업목록)
TODO 주석을 통해 앞으로의 할 일을 주석해놓고 Ctrl + \, Ctrl + T -> (Ctrl + F, Ctrl + T)
를 이용해 작업 목록을 조회할 수 있다.
해야 할 것
Analytics Line
IFC Geometry Converter
10.30
IFC Geometry Converter
해야 할 것
Analytics Line
IFC Geometry Converter
Clean Code
사내 Doc
10.31
IFC Geometry Converter
MDay 준비
해야 할 것
Analytics Line
IFC Geometry Converter
Clean Code
사내 Doc
Last updated
Was this helpful?