본문 바로가기
반응형

SWE326

데이터 직렬화 Serialization 직렬화(Serialization)의 정의 데이터 구조나 오브텍트 상태를 다른 컴퓨터 환경에 저장(이를테면 파일이나 메모리 버퍼에서, 또는 네트워크연결 링크 간 전송)하고 나중에 재구성할 수 있는 포맷으로 변환하는 과정이다. 오브젝트 직렬화하는 가정은 오브젝트를 마샬링한다고도 한다. 반대로, 일련의 바이트로부터 데이터 구조를 추출하는 일은 역질렬화(deserialization)이라고 한다. 마샬링 Marshalling std::boost serialization Protocol 단편화 Fragmentation 2022. 1. 12.
Modern C++ 소개 | 기존 C/C++와 차이점 Modern C++ 소개 Modern C++은 기존 C와 호환이 가능함과 동시에 더 간단하고 안정적이고 빠르고 더 아름다운 코드를 제공한다. C++11부터의 큰 특징들을 아래에 설명하겠다. 참고로, C++은 C스타일의 프로그래밍은 지양한다.(raw pointer의 사용, 배열, null로 종료되는 string 등) > 자원과 스마트 포인터 C 스타일 프로그래밍의 가장 큰 문제점은 메모리 누수(memory leak)이다. memory leak은 new로 할당된 메모리를 해제(delete)하지 않았을 때 발생한다. 모던 C++은 Resource Acquisition Is Initialization (RAII) 원칙을 강조한다. RAII 원칙은 간단하다. 모든 자원들은 object에 의해 소유되어야 한다. 즉.. 2022. 1. 11.
C++ template | type_traits | modern C++ 모르겠음 ㅠㅠ 템플릿 클래스 정의 template class A { public: vector vec; }; 템플릿 클래스 사용 A a; 템플릿 파라미터가 템플릿인지 확인하는 방법 #include template class A { public: vector vec; }; template struct is_instance : public std::false_type {}; template struct is_instance : public std::true_type {}; int mian() { A a; std::cout 2022. 1. 11.
Vector C Array | 메모리 복사 | 메모리 계산 | Address 연산 Q. vector의 Raw 데이터 메모리 주소 접근 방법 std::vector vec; 방법1) vec이 empty가 아닐 때만 가능. 비어있을 경우, vec[0]이 없는데 접근하기 때문에 에러난다. &vec[0] 방법2) 추천방법 vec.data() Q. vector의 Raw 데이터 메모리 연산 방법 *유의 std::vector vec = {1,2,3,4,5} vec.data() : 0x0AE21230 {1} // address vec.data() + 4 : 0x0AE21240 {5} // 0x0AE21230 + 4*sizeof(int) = 0x0AE21230 + 16 ((unsigned char*)vec.data()) + 4 : 0x0AE21234 {2} // 0x0AE21230 + 4 vec.dat.. 2022. 1. 11.
반응형