본문 바로가기

개발이야기27

데이터 직렬화(serialization)는 무엇이고 왜 필요한가? 우선 이 글은 구글링에서 나오는 여러 가지 직렬화에 대한 글들과 설명들을 읽고 제 나름대로 한번 더 이해하기 편하도록 정리한 글입니다. 데이터 직렬화(serialization), 역직렬화(deserialization)는 무엇이고 왜 필요한가? 소프트웨어 개발에서 말하는 데이터 직렬화(serialization)는 한 마디로 간략하게 요약하자면 메모리를 디스크에 저장하거나 네트워크 통신에 사용하기 위한 형식으로 변환하는 것을 말한다. 역직렬화(desrialization)는 그 반대로 디스크에 저장한 데이터를 읽거나, 네트워크 통신으로 받은 데이터를 메모리에 쓸 수 있도록 다시 변환하는 것이다. 여기서 궁금증이 해결되지 못한 사람들이 많을 텐데(내가 그랬다) 내가 아는 대로 자세히 설명해보도록 하겠다. 앞서 .. 2020. 5. 24.
[유니티] Euler, Quaternion 오일러각 쿼터니언 총 정리 [Unity] Euler, Quaternion 오일러각(짐벌락) 쿼터니언에 대하여! Unity의 Euler 각도는 x,y,z 3개 축을 기준으로 회전시키는 우리가 흔히 알고있는 각도계를 의미한다. 이 각도계를 사용하면 우리 모두 삽질할 필요없이 아름답게 개발을 할 수 있을텐데, 왜 Queternion 같은게 생겨서 우리를 괴롭히는가,,, 그 이유는 Euler angle은 짐벌락('Gimbal-lock')이라는 문제가 있기 때문에 모든 각도 변환을 표현하는데 한계가 있기 때문이다. 그 한계점을 보완하여 생겨난 게 쿼터니언(Quaternion)이다. 짐벌락이란 무엇인가. 우선 간단하게 설명하자면, 같은 방향으로 오브젝트의 두 회전 축이 겹치는 현상이다. https://www.youtube.com/watch?.. 2020. 3. 31.
자료구조와 알고리즘에 대한 기본적인 이해 자료구조와 알고리즘에 대한 기본적인 이해 자료구조, 알고리즘이란 무엇인가? 우선 자료구조를 정말 간단하게 말하자면 데이터를 표현하고 저장하는 방법이다. 그리고 크게 이 방법을 두 가지로 나눈다. 1. 선형 구조 : 데이터를 선의 형태로 나란히 혹은 일렬로 저장하는 방식(리스트, 스택, 큐) 2.비선형 구조 : 데이터를 나란히 저장하지 않는 구조 (트리, 그래프) 자료구조가 '데이터의 표현 및 저장 방법'을 뜻한다면, 알고리즘은 표현 및 저장된 데이터를 대상으로 하는 '문제의 해결 방법'을 뜻한다. 숫자 데이터를 가지고 있는 배열을 예로 들자면, 자료구조적 측면 : int arr[10] = {1,2,3,4,5,6,7,8,9,10}; 알고리즘적 측면 : for(idx = 0; idx = 10; idx++){.. 2020. 2. 13.