멋쟁이 사자처럼/TIL

알고리즘알고리즘은 프로그래밍에서 문제를 해결하기 위한 단계적인 절차나 방법을 의미한다. 알고리즘의 주요 특징입력: 알고리즘은 하나 이상의 입력을 받는다.출력: 알고리즘은 하나 이상의 결과를 생성한다.명확성: 각 단계는 모호하지 않고 명확해야 한다.유한성: 알고리즘은 유한한 수의 단계 후에 반드시 종료되어야 한다.효율성: 알고리즘은 가능한 한 효율적으로 설계되어야 한다. 알고리즘의 중요성프로그래밍에서 알고리즘은 매우 중요한 역할을 한다.효율적인 알고리즘은 프로그램의 성능을 크게 향상시키고, 복잡한 문제를 해결하는 데 필수적이다.  알고리즘의 종류정렬 알고리즘: 버블 정렬, 퀵 정렬, 병합 정렬 등검색 알고리즘: 선형 검색, 이진 검색 등그래프 알고리즘: 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS),..
15일차 요약트리트리는 계층적 구조를 표현하는 비선형 자료구조트리의 종류일반 트리: 노드가 임의의 수의 자식을 가질 수 있는 트리이진 트리: 각 노드가 최대 2개의 자식을 가질 수 있는 트리완전 이진 트리: 마지막 레벨을 제외한 모든 레벨이 완전히 채워진 이진 트리포화 이진 트리: 모든 내부 노드가 2개의 자식을 가지며, 모든 리프 노드가 같은 레벨에 있는 트리이진 탐색 트리: 왼쪽 자식은 부모보다 작고, 오른쪽 자식은 부모보다 큰 값을 가지는 이진 트리AVL 트리: 자동으로 균형을 맞추는 이진 탐색 트리로, 왼쪽과 오른쪽 서브트리의 높이 차이가 최대 1레드-블랙 트리: 자가 균형 이진 탐색 트리의 일종으로, 색상 속성을 사용하여 균형을 유지B-트리: 데이터베이스와 파일 시스템에서 사용되는 균형 검색 트..
14일차 요약큐FIFO형식의 자료구조BFS, 서버 메시지 큐 등 다양한 방식으로 활용 가능 우선순위 큐큐의 형식과 유사하며 우선순위에 따라 처리하는 요소를 결정하는 자료구조힙(heap) 기반으로 만들어졌다.다익스트라, 스케줄링 등 활용 가능 오브젝트 풀링오브젝트를 생성, 소멸시키는 작업은 비용이 많이 발생한다.오브젝트를 소멸시키지 않고 재활용하는 방법 = 오브젝트 풀링구현하는 방법은 다양한다.큐, 맵 등 다양한 자료구조 사용 가능생성, 소멸 비용이 줄어드는 대신 메모리를 차지하고 있으며 너무 많아질 시 단편화 문제 발생 가능 애니메이션 리타게팅애니메이션이 없는 mesh에 다른 mesh의 애니메이션을 적용하는 방법Rig의 Animation Type을 Humanoid로 설정해야 한다.Animator에 애니메..
13일차 요약인터페이스구현부 없이 선언부만 존재다형성 제공 커맨드 패턴행동을 객체단위로 관리하는 패턴이다.행동에 대한 추적이 편리하여 서버/클라이언트 구조에서 동기화가 용이하다.확정성이 좋다. LinqDB 쿼리와 유사한 형태를 가지는 C#의 쿼리 기능where, select, orderby 등 함수 및 키워드 지원반복문 대신 데이터를 필터링할 때 용이 CoroutineUnity에서 동시성을 제공하는 기능함수를 적절히 분리하여 실행 가능시간 제어, 조건 제어 등 다양하게 활용 가능코루틴을 사용하면 메모리에 올라가는 것이기 때문에 성능에 이슈가 있을 수 있으니 무분별하게 사용하지 않는 것이 좋다.스레드와는 조금 다른 개념코루틴은 단일 스레드에서 코루틴에 관한 오브젝트를 적절히 스케줄링하여 관리따라서, 스위칭..
12일차 요약스택(Stack)LIFO형식의 자료구조이다.활용 예시웹 브라우저 뒤로 가기 : 가장 나중에 열린 페이지부터 뒤로 가기를 실행합니다.문서작업에서 Ctrl+Z : 가장 나중에 수정한 내역부터 되돌립니다.후위 표기법 계산재귀적 알고리즘 Unity Editor CustomizingUnity Editor는 커스터 마이징하여 편리하게 사용하는 것이 가능하다.Menu Item을 만드는 방법[MenuItem("Window/Scope Checker")]Attribute를 이용하여 Menu에 추가한다.OnGUI라는 Unity Event함수를 통해 화면을 어떻게 구성할지 설정한다. Inspector를 설정하는 법Script를 작성할 때, Attribute를 설정하여 Editor에서 표시될 방식을 설정할 수 있다..
11일차 요약링크드 리스트(Linked List)데이터 요소를 순차적으로 연결한 자료구조장점삽입, 삭제에 용이맨 앞/뒤: O(1), 중간: O(n)동적 크기단점접근에 불리: O(N)캐시 비효율역방향 탐색에 불리 더블 링크드 리스트(Double Linked List)링크드 리스트에서 이전 노드를 가리키는 포인터가 추가된 자료구조장점역방향 연산을 개선이전 노드에 대한 즉시 접근 가능단점추가적인 메모리 필요(이전 노드 포인터)삽입, 삭제 시 좀 더 복잡한 연산 필요      링크드 리스트(Linked List)데이터 요소들을 순차적으로 연결한 자료구조각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성메모리 상에서 연속적이지 않은 위치에 저장[Data|Next] -> [Data|Next] -> [Data|N..
10일차 요약자료형데이터 표현 최소 단위: bit8bit = 1byte같은 정수형이라 하더라도 몇 bit를 사용하느냐에 따라 표현 범위가 달라진다.U가 붙는 자료형은 unsigned로 음수를 표현하지 못한다. 배열같은 타입의 요소를 연속된 메모리 공간에 저장하는 자료구조이다.편의 함수Max(): 최댓값 반환Average(): 평균을 반환Contains(var element): element 포함 여부 반환다차원 배열다차원 배열을 선언하는 방식 2가지[,]: 정사각 형태의 다차원 배열[][]: 가변 배열(각 행의 길이가 달라질 수 있음)     자료형컴퓨터는 0, 1로 데이터를 표현한다.이를 표현하는 최소단위를 bit라고 하며 8bit를 1byte라고 한다. 각 자료형은 다음과 같은 표현 범위를 갖는다.I..
9일차 요약(UI, Character, 무한맵, Sound)UIButtonUI::OnClick을 에디터에서 설정할 수 있다.일반적인 EmptyObject와 UI용 EmptyObject의 차이일반적인 EmptyObject는 Transform을 소유하고 UI용은 Rect Transform을 소유한다.UI도 다른 Object와 동일하게 Animation을 생성하고 적용할 수 있다. 2D Image Animation원하는 Sprite를 한 번에 Hierarchy창으로 드래그하면 자동으로 Animtion이 생성된다. 무한맵무한맵을 만드는 방법은 맵을 움직여 무한으로 늘어나는 것 같이 눈속임하는 방법이 있다.Material의 offset을 움직이면 된다. 2D 캐릭터2D캐릭터는 3D와는 다른 Component를 사..
8일차 요약(캐릭터 애니메이션, Light, UI)캐릭터 애니메이션캐릭터 애니메이션을 직접 만든다면 pivot위치에 주의해야 한다.pivot을 설정할 때는 자식으로 pivot을 추가한 뒤, 위치를 조정하고 부모-자식 관계를 뒤집는 게 편리하다.Loop Animation이라면 시작과 끝에서 걸리는 보간을 유의하여 제작해야 한다. LightRealTime: Directional Light, Point Light, Spot LightBaked:  Area LightSkybox는 환경광(주변광)의 역할을 한다. UIUnity에 UI를 출력하기 위해서는 Canvas라는 것이 꼭 필요하다.Canvas는 UI를 붙이는 Panel역할을 한다고 생각하면 된다.RectTransform을 이용할 때, Alt를 누른 채로 클..
7일차 요약(Layer, Physic Material, Animtion, Tag)Layer상호작용을 나타내는 preset이다.Layer 간 상호작용에 대한 설정도 할 수 있다. Physic Material물리적인 재질을 나타내는 Asset이다.마찰력, 탄성 등 다양한 값을 가진다.이는 게임상에서 물리적인 계산에 영향을 미친다. AnimationgameObject의 모든 속성을 시간에 맞게 움직이게 하는 Animation을 생성할 수 있다.예를 들어, 이동, 회전, 스케일 등 기본적인 동작도 가능하며 소리의 크기나 pitch 등 역시 조절할 수 있다.Animation을 만들 때, 녹화를 켜두고 원하는 값들을 조정해도 되지만, Key를 수동으로 생성하는 게 좋다고 생각한다.(실수 방지)Animation을 만..
hvv_an
'멋쟁이 사자처럼/TIL' 카테고리의 글 목록