간단한 IT 지식

1. 제네릭 컬렉션이란? 제네릭 기반의 데이터 구조를 말한다. 다양한 데이터의 저장 및 관리가 가능하고 타입 안정성과 성능을 보장한다. 2. 제네릭 컬렉션의 종류 - List 동적으로 크기 조절이 되는 배열을 구현한 리스트 - Dictionary 키-값 쌍을 저장하는 컬렉션 - HashSet 중복을 허용하지 않는 집합 - Queue FIFO(First In First Out)의 원칙을 따르는 큐 - Stack LIFO(Last In First Out)의 원칙을 따르는 스택 -LinkedList 이중 연결 리스트를 구현한 리스트 -SortedDictionary 키에 대해 정렬된 순서를 가지는 컬렉션, 키 값에 따라 자동 정렬 -SortedSet 정렬된 순서를 유지하는 집합, 키 값에 따라 자동 정렬
1. 실수 표현 방식 컴퓨터는 0과 1로 이루어졌다는 이야기를 많이 들어봤을 것이다. 실제로 컴퓨터는 0과 1로 이루어진 비트로 연산을 수행하고 저장할 수 있기 때문에 실수도 이진수로 표현해야만 한다. 하지만 정수에 비해 실수를 이진수로 표현하려면 굉장히 복잡하기 때문에 이를 해결하기 위하여 고정 소수점과 부동 소수점 방식을 사용하고 있다. 2. 고정 소수점 구조를 보면 정수부와 소수부의 비트가 적기 때문에 연산속도가 굉장히 빠르고 메모리 사용량이 적다. 하지만 그만큼 표현할 수 있는 수의 범위가 굉장히 좁고 정밀하지 않다. 이를 해결하기 위해 정수부의 비트를 늘려버리면 큰 수는 표현할 수 있지만 소수부의 비트가 줄어들어 정밀한 표현이 불가능하고 소수부의 비트를 늘려버리면 정밀한 표현이 가능하지만 큰 수..
1. OOP란? Object-Oriented Programming, 객체 지향 프로그래밍을 의미하며 이는 프로그램들을 객체들의 모임으로 간주하고 객체들 간의 상호작용을 중심으로 설계하고 구현하는 방법론이다. 2. OOP를 사용하는 이유? 프로램을 보다 모듈화되고 유지보수가 용이하며 재사용성이 높은 코드를 개발하기 위해서다. 3. OOP의 종류 - 클래스와 객체 클래스는 객체를 만들기 위한 설계도며, 객체의 속성과 동작을 정의할 수 있다. 객체는 클래스의 인스턴스이며 클래스의 속성을 가지고 있다. - 캡슐화 데이터와 메서드를 하나의 단위로 묶어 객체의 내부 구현을 외부로부터 숨기고 오직 정의된 메서드를 통해서만 객체에 접근할 수 있도록 하는 것이다. - 상속 기존 클래스의 속성과 메서드를 상속받는 하위 클..
1. 바이트 정렬이란? 데이터가 메모리에 배치될 때 해당 데이터 구조의 바이트 경계에 맞추어 정렬되는 것을 의미한다. 2. 바이트 정렬을 사용하는 이유는? 현재 MyStruct라는 구조체에 있는 데이터가 메모리에 배치된다면 어떤 과정으로 메모리에 배치되는지 확인해보자. 기본적으로 데이터가 배치될 메모리의 크기는 구조체에 있는 가장 큰 바이트의 크기로 설정된다. ->현재 long타입의 8바이트 크기가 가장 크기 때문에 8바이트 메모리가 설정된다. 1. byte(1바이트) 부분에 8바이트 메모리가 부여된다. -> 나머지 공간은 1바이트가 채워진 7바이트 2. 이전 8바이트 메모리의 공간은 7바이트 밖에 남지 않았기 때문에 다시 long부분에 8바이트 메모리를 부여한다. -> 나머지 공간은 모두 채워졌기에 0..
1. 전략 패턴이란? 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘을 수정해서 쓸 수 있게 해주는 패턴이다. 2. 전략 패턴을 사용하는 이유? 오리의 종류에는 모형 오리, 장난감 오리, 청둥오리... 엄청나게 많은 오리가 존재한다. 그래서 오리라는 클래스를 만들어서 모든 종류의 오리가 공통된 기능을 상속받도록 제작할 것이다. 오리 클래스에는 오리가 가져야 할 기능인 울음 소리 메서드 Quack과 나는 메서드 Fly를 작성했다. 그렇게 오리의 종류 10만개에 오리 클래스를 상속 시켰고 Fly 메서드와 Quack 메서드를 오버라이드 해서 모두 기능을 작성했다. 여기서 생기는 1차적인 문제는 중복된 코드가 굉장히 많을 것이다. 나는 기능 3만개, 날지 못하는 기능 3만개, 로켓으로 나는 기능 4만개...이런..
1. IPC 란? 다른 프로세스끼리 통신하고 데이터를 교환할 수 있게 해주는 기술이다. 2. IPC를 왜 사용할까? 프로세는 생성될 때 메모리 공간 등을 복사하여 별도의 자원을 할당하기 때문에 기본적으로 독립적인 메모리 공간을 가지고 있다. 따라서 프로세스는 직접적으로 다른 프로세스에 접근할 수 없는데 IPC는 프로세스 간의 데이터 공유를 가능하게 해준다. 결론은 독립적인 프로세스의 정보들을 서로 공유할 수 있게 해주는 기술이 IPC다. 3. IPC의 종류 - 공유 메모리(Shared Memory) 여러 프로세스가 메모리 영역으로 공유하여 데이터를 읽고 쓰는 기술 데이터를 복사하지 않아도 되서 빠른 접근이 가능하지만 충돌로 인한 오류 방지 동기화 메커니즘이 필요하다. - 메시지 큐(Message Queu..
UIManager의 기능을 만들던 도중 메서드에서 Enum형을 인자로 받아야 하는 경우가 있었는데 Enum 자체를 받는 것과 Enum에 속한 데이터를 받는 것이 달랐기 때문에 이에 대한 내용을 정리하고자 한다. 1. Enum에 속한 데이터를 받을 때 메서드의 인자 데이터 타입을 Enum으로 선언하여 받아주면 된다. 2. Enum 자체를 받을 때 Enum 데이터 타입을 인자로 받는 경우는 Enum에 속한 특정 데이터를 받는 것이기 때문에 Images라는 열거형을 그대로 넣으면 오류가 나게 된다. 그렇기 때문에 Type으로 Enum을 받아야만 오류없이 원하는 기능을 구현할 수 있다.
1. NGUI(Next-Gen UI) NGUI는 라벨, 버튼, 패널 등 광범위한 UI요소와 제어를 제공하는 UI시스템이다. UGUI가 나오기 전 까지는 Unity 프로젝트에서 자주 사용하던 인기있는 UI 시스템이었다. NGUI의 장점은 여러 이미지를 한개로 묶어서 사용할 수 있는 아틀라스를 통해 드로우 콜을 줄일 수있다. - 뛰어난 최적화 기능 Depth 나 RenderQueue로 UI의 렌더링 순위를 정한다. 2. UGUI(Unity GUI) UGUI는 Unity 4.6 버전에 도입된 Unity 공식 UI 시스템이다. Unity엔진에 직접 내장되어 있으며 버튼, 텍스트, 이미지, 슬라이더 등 NGUI와 유사하게 광범위한 UI요소를 제공해준다. 이미지, 스프라이트 등을 쉽게 사용자가 정의할 수 있고 직접..
Sh_Blog
'간단한 IT 지식' 카테고리의 글 목록 (2 Page)