2024/06 18

함수와 스택 그리고 호출 스택

너무 짧은 코드의 함수화는 주소지를 찾아가야하기 때문에 비효율적이다.하지만 inline 함수는 자주 쓰이기 때문에 짧은 코드를 활용하기 좋다. C/C++ 및 어셈블러는 x64 환경에서RSP의 현재 주소를 초과하는 모든 메모리는 휘발성으로 간주된다.OS 또는 디버거는 사용자 디버그 세션 또는 인터럽트 처리기 중에 이 메모리를 덮어쓸 수 있다. 따라서 스택 프레임에 대한 값을 읽거나 쓰기 전에 항상 RSP를 설정해야 한다.이 섹션에서는 로컬 변수에 대한 스택 공간 할당 및 alloca 내장 함수에 대해 설명한다. 스택 할당 함수의 프롤로그는1) 로컬 변수, 2) 저장된 레지스터, 3) 스택 매개 변수 및 4) 레지스터 매개변수에 대한 스택 공간을 할당한다. 매개 변수 영역은 항상 스택의 맨 아래에 있다(al..

Conditional Door(player needed key) & bullet shooting

추가한 것 문- 키 회득하지 않고 문에 가까이 가면 열리지 않고 키가 필요하다는 위젯이 플레이어게 발생- 키 회득 시에만 열림 키 - 플레이어가 물체에 완전히 가까이 가거나, 근처에서 e키 누르면 획득 총알 쏘기- 맞으면 없어지는 액터와 그렇지 않은 액터 구분함 추가 했던 것 Dash- 이동 중에만 가능- 점프 등 다른 이동기 사용 중에 불가능- 이펙트 이쁘게 변경 게임 다시하기 끝내기 기능 순간이동 - 이펙트 이쁘게 변경- 사운드 추가- 통과할 수 없는 곳은 순간이동 불가능 heal / damage item- 이펙트 이쁘게 변경

UE5 2024.06.20

완벽한 해싱 & 유니버설 해싱

완벽한 해싱 n개가 n개의 버킷에 하나씩 따로따로 저장된다면 완벽한 해싱이라 볼 수 있다.입력한 데이터가 뭔지 모두 알고 있을 경우에만 가능하다. 대부분의 경우에는 입력이 정확히 어떤 것들이 들어올지미리 알 수가 없기 때문에 충돌이 최소가 되는 좋은 해시 함수를 사용할 필요가 있다.  유니버설 해싱 유니버설 해싱은 "랜덤 해싱"으로 이해하면 더 쉽다.난수를 사용하는 무작위 알고리듬이 성능을 높이는 데에 도움이 되는 예로 퀵 정렬을 들 수 있다.이와 같이 난수의 개념을 해싱 함수에 적용한 것이다. 입력이 어떤 것들인지 정확히 알 수 없는 무작위인 경우에 항상 해시값들을 고르게 분포시켜주는 함수를 만드는 것은 어렵다.때문에 유니버설 해싱에서는 해시 함수에 난수를 적용한다.  암호화 해시 함수 다양한 길이의 ..

인하대 미래인재개발원 개발분야 면접후기

면접은 2:2 면접으로 진행 되었다.잠깐의 시간이었지만 교수님과 함께한 대화는 꽤나 내게 인상적으로 짙게 남았다.좋은 개발자란 무엇인지 면접 시간 동안 짧게 교수님과 대화를 나누었다.늘 탐구하는 개발자란 답변을 받았다.사실 혼자 공부하면서 막막한 마음에각 대학 교수님께 메일도 보내보고 저자분께 어떻게 공부하면 좋을지 메일도 보내보았었다.내가 가는 길이 맞는지 불안해하기도 했었다.하지만 이번 면접 시간 때 나눈 대화들을 통해 들은 생각은더 노력하고 더 탐구하며 더 신중하게 배우려 노력하고자 하는 마음가짐으로 살아야겠다 싶었다.그런 의미로필기 시험 때 당황했었던 수학 좀 신경써야겠다 싶었다.

삽입 정렬과 힙 정렬

삽입 정렬(Insertion Sort): 이해와 구현  이번에 소개하는 삽입 정렬은보는 관점에 따라서 별도의 메모리를 필요로 하지 않는 '개선된 선택 정렬'과 유사하다고 느낄 수 있다.하지만 전혀 다른 방법으로 정렬을 이뤄나간다.이와 관련해서 다음 그림을 보자.  위 그림의 배열은 정렬이 완료된 부분과 완료되지 않은 부분으로 나뉘어 있다.이렇듯 삽입 정렬은 정렬 대상을 두 부분으로 나눠서,정렬 안 된 부분에 있는 데이터를 정렬 된 부분의 특정 위치에'삽입'해 가면서 정렬을 진행하는 알고리즘이다.그럼 다음 그림을 통해서 5,3,2,4,1의 오름차순 정렬 과정을 보이겠다.   위 그림의 가장 윗부분에서 보이듯이,첫 번쨰 데이터와 두 번째 데이터를 비교하여,정렬된 상태가 되도록 두 번째 데이터를 옮기면서 정렬..

Moving skill & heal/damage item

추가된 것 Dash- 이동 중에만 가능- 점프 등 다른 이동기 사용 중에 불가능- 이펙트 이쁘게 변경 게임 다시하기 끝내기 기능 순간이동 - 이펙트 이쁘게 변경- 사운드 추가- 통과할 수 없는 곳은 순간이동 불가능 heal / damage item- 이펙트 이쁘게 변경      추가 할 것game timer 조절하기- 플레이어 시간만 빠르게- 게임 시간도 빠르게 각각 건들여보기.

UE5 2024.06.10

동적 계획법의 접근 방식

동적 계획법의 접근 방식 1단계: 동적 계획법 필요조건 분석하기 부분집합의 합과 같은 문제에 직면하게 되면먼저 이 문제를 동적 계획법으로 해결할 수 있는지를 확인해야 한다.일반적으로 주어진 문제가 다음 속성을 가지고 있다면 동적 계획법으로 해결할 수 있다. 중복되는 부분 문제 : 일반적인 분할 정복 기법과 마찬가지로,최종해(final solution)는 여러 개의 부분 문제 조합으로 표현될 수 있어야 한다.그러나 분할 정복과는 달리 특정 부분 문제가 여러번 발생할 수 있다.최적 부분 구조 : 주어진 문제에 대한 최적해(optimal solution)는부분 문제의 최적해로부터 생성될 수 있다.  위 그림을 보면 크기가 n인 부분집합은 크기가 n - 1인 부분집합에 새로운 원소 하나를 추가하여 만들 수 있다..