오일러의 각에서 짐벌락

오일러의 각은 X,Y,Z 축을 따로따로 곱하게되어 축자체가 사라지는 현상이 발생한다. x -> y -> z순으로 계산할때 x축 회전시 y축 z축 동시에 회전하게되고 y축 회전시 z축도 같이 회전하게 된다. 이러한 문제때문에 x축과 z축이 겹쳐지는 발생한다. 이를 회피하는 방법으로는 회전을 한번에 계산하는 쿼터니언을 사용하면 된다. 아래를 영상을 참조하면 좀더 이해할수 있다.

네트워크 CAP 이론

CAP 이론이란 일관성(Consistency): 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다. 가용성(Availability): 모든 요청이 성공 또는 실패 결과를 반환할 수 있다. 분할내성(Partition tolerance): 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템이 계속 동작할 수 있다. 이 3가지의 만족하는 분산시스템은 없다는 이야기이고 다른말로 하면 한가지를 포기해야한다는 이야기이다. 대표적으로 AP는 Aws dynamonDB의 큰예이고 AP인경우는 AWS SQS서비스라고 보면된다.

데이터 집합일때 빠르게 조회하기

<i,j>와 <j,i> 같을시 이 문제를 순열문제로 볼수있겠지만 한번더 생각하면 그래프문제로 풀수도 있다. 예로 동일한 원이 3개가 있는데 이를 각가 충돌처리한다고 생각해보자. 출돌체크하기위해서는 한 객체와 따른 객체를 비교를해야하는데 가지고 있는 모든 원에 대해 충돌체크하면 아래와 같은 코드가 발생한다. 하지만 이걸 배열 그래프로 표현하게 되면 아래와 같은 식이 나오게 된다. 위 그림을 보면 알겠지만 대각선을 기준으로 대칭이기 소개 더보기 <i,j> 데이터 집합일때 빠르게 조회하기[…]

스핀락 구현시 참고할점

스핀락을 구현할때 아래와 같이 구현한다. 하지만 위 코드를 테스트시 생각외로 좋은 성능이 안 나오는걸 벤치 마크로 확인할수있다. 리누스 토바즈형님이 이에 대해 의견을 남긴글이 있는데 https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723&fbclid=IwAR1aqMqWNrvY7qcOmhGKUH6m9YkCanEEVIbhEqRlZcRP1Tb4rH053yvs2PE CPU 캐시 일관성때문에 성능이 더 느리다라는 이야기이다. 이는 실제로도 그렇다 라는 점이다. 다행히 x86에서는 이 문제를 펜티엄4부터 알았고 아래의 명령어를 추가되었다. 이는 NOP 명령어를 주어서 해결한다. 아래의 글을 보면 얼마나 소개 더보기 스핀락 구현시 참고할점[…]

원과 원 충돌 체크하는 방법

원과 원의 출돌 체크는 매우 깔끔하게 처리할수 있다. 두개의 원이 있고 반지름이 각각 R1 ,R2가 있다. 여기서 충돌했을때의 그림을 보자 직관적으로 두개의 중심의 거리보다 반지름의 합보다 작은걸 알수있다. 좀더 자세히 보기위해 태그를 추가했다. 두 거리는 아래의 공식으로 쉽게 구할수 있다. 거기에 두개의 반지름의 합보다 거리의 값이 작으면 충돌이 발생했다는 것이다. 하지만 이와같은식 을 컴퓨터로 구현할려면 소개 더보기 원과 원 충돌 체크하는 방법[…]

visual Studio 외부 dll 경로 추가하기

외부 DLL을 가져오는 방식으로 개발하게 되면 실행시 DLL이 필요하다며 에러를 출력하는걸 확인할수 있다. 넷에 공개된 해결방법은 총 3가지이면 아래와 같은 방법이 있다. 1.DLL을 하나의 디렉토리를 넣는다. 2.환경 변수를 등록한다. 3.내 프로젝트만 사용할수 있도록 환경변수를 추가한다. 이렇게 3가지의 방법이 있는데 이 방법으로 개발할시 가장 큰 문제가 배포 파이프라인을 만들기 힘들고 다른 컴퓨터 환경으로 옮길시 에러를 세팅을 소개 더보기 visual Studio 외부 dll 경로 추가하기[…]

cmake 시작부터 라이브러리까지

이 글은 리눅스/유닉스 환경으로 설정이 되어있습니다. 대부분의 오픈소스인 경우 cmake로 구성되어 있다. 그 이유는 플래폼마다 컴파일 방법 달라 솔루션을 동일하게 설치해야하는 문제가 발생한다. 그래서 위와 같은 모양이 나오게 된다. 하지만 이를 하나의 방법으로 통합시키기 위한툴이 cmake이다. cmake는 다음과 같이 여러개의 플래폼에 맞는 탬플릿을 생성해준다. 이글을 큰 흐름을 설명한 글입니다. 자세한 글 은 다음 링크를 참조해보시기 소개 더보기 cmake 시작부터 라이브러리까지[…]

MBCS에서는 한글을 어떻게 인식할까?

우리가 알고있는 아스키 코드는 위와 같지만 비주얼 스튜디오에서 아래와 같은 코드를 치게되면 한글이 나오는걸 확인할수있다. 어떻게 윈도우는 이를 인식할까? 답은 0x80이 넘는 값들은 자국에서 사용하는 언어를 덧붙이게 된다. 이를 코드페이지라고 하며 한국인 경우 EUC-KR이고 다음과 같은 언어 세트가 있다. EUC-KR, EUN-CN, EUC-JP 이를 멀티바이트라고 말하고 이를 하나로 바꾼것이 유니코드이다.