WINAPI INSTANCE란 도대체 무엇일까?

최근에 디버깅 관련해서 보고있습니다. 책중에서 winapi중에 INSTANCE이 값이 도대체 무엇인가 라는 답 하나를 찾았습니다. 결론부터 말하면 PE구조의 imagesBase + entry Point 값입니다 샘플코드는 VS에서 기본적으로 제공하는 Windows Project 코드입니다. 테스트 하기위해 아래에 randomized base address을 해제하겠습니다. 이 기능은 WIndows에서 Images Base 주소를 랜덤으로 해주는 기능입니다. 이 기능을 해제한후에 디버깅을 한뒤에 wWinMain의 인스턴스를 봐주시기 바랍니다. 해당더 보기

RSA 암호화 구현

필자는 수학을 못하기때문에 왜 이게 이렇게 되는지 아직두 잘 모르겠다. 그래서 이글은 stap by step으로 구현에 대해 이야기를 할것이다. RSA는 아래의 flow을 따라간다. 두개의 소수를 찾는다. 공개키를 만든다. 공개키 기반으로 개인키를 만든다. 데이터를 암호화 복호화을 해본다. 1. 두개의 소수를 찾는다. 공개키를 만들기위해서는 총 두가지의 다른 소수가 필요하다. 필자는 이키를 p와 q라고 부를거고 p를 11로 q를더 보기

오일러의 각에서 짐벌락

오일러의 각은 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개가 있는데 이를 각가 충돌처리한다고 생각해보자. 출돌체크하기위해서는 한 객체와 따른 객체를 비교를해야하는데 가지고 있는 모든 원에 대해 충돌체크하면 아래와 같은 코드가 발생한다. 하지만 이걸 배열 그래프로 표현하게 되면 아래와 같은 식이 나오게 된다. 위 그림을 보면 알겠지만 대각선을 기준으로 대칭이기더 보기

스핀락 구현시 참고할점

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

원과 원 충돌 체크하는 방법

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

월드워z 세이브 100% 파일

기준 2020년 1월 13일 기준 파일입니다. 에픽게임즈 클라우드가 문제가 되어 따로 올립니다. 적용법은 시작전에 에픽게임지를 전부 꺼줍니다. 파일 경로를 아래와 같이 입력을 해줍니다. 위 경로를 들어가시면 32글자의 폴더가 하나 있습니다. 여기다가 받은 파일을 덮어쓰기 하면됩니다. 그후에 에픽게임즈를 ON할때 파일충돌이 났다구 할텐데 로컬파일을 업로드를 클릭하시면 됩니다.