컴퓨터 프로그래밍 공부 63

C++ std::List

C++ Standard Library 의 list std::list list란? std::forward_list는 아주 기본적인 형태로 구현된 연결리스트이다. std::forward_list는 다른 유용한 기능 중에서도 리스트 끝에 원소 추가, 역방향 이동, 리스트 크기 반환 등의 기능은 제공하지 않는다. 이는 메모리를 적게 쓰고 성능을 유지하기 위함이다. 이외에도 std::forward_list의 반복자는 매우 적은 기능만 지원한다. 컨테이너의 크기를 얻어오거나 자료 구조 맨 뒤에 새로운 데이터를 추가하는 등의 기능은 매우 유용하고 빈번하게 사용되지만, std::forward_list에서는 지원되지 않는다. 그러므로 std::forward_list의 단점을 보완하기 위해 std::list를 C++에서 ..

데이터베이스 트리거

데이터 베이스 트리거란? 데이터 베이스 트리거는 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 말한다. 여기서 트리거란, 영어로 trigger 방아쇠라는 뜻인데, 방아쇠를 당기면 그로 인해 총기 내부에서 알아서 일련의 작업을 수행하고 총알이 날아간다. 이처럼 데이터 베이스에도 트리거가 있는데, 데이터 베이스에서의 트리거는 특정 테이블에 INSERT, DELETE, UPDATE 같은, DML문이 수행되었을 때, 데이터 베이스에서 자동으로 동작하도록 작성된 프로그램이다. 즉, 사용자가 직접 호출하는 것이 아닌, 데이터베이스에서 자동적으로 호출하는 것이 가장 큰 특징이다. 트리거는 테이블과 뷰 데이터베이스 작업을 대상으로 정의할 수 있으며, 전체 트랜잭션 작업에 대해 (1) 발생되는 트리거와 (2) ..

우선순위 큐와 힙 (Priority Queue & Heap)

1. 우선순위 큐 1.1 우선순위 큐란? 큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 우선순위 큐 (Priority Queue)는 먼저 들어오는 데이터가 아니라, 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조이다. 우선순위 큐는 일반적으로 힙(Heap)을 이용하여 구현한다. 1.2힙이란? 힙(Heap)은 우선순위 큐를 위해 고안된 완전이진트리 형태의 자료구조이다. 여러 개의 값 중 최댓값 또는 최솟값을 찾아내는 연산이 빠르다. 힙의 특징 완전이진트리 형태로 이루어져 있다. 부모노드와 서브트리간 대소 관계가 성립된다. (반정렬 상태) 이진탐색트리(BST)와 달리 중복된 값이 허용된다. 힙의 종류 최대 힙(Max Heap) 부..

Yaw, Roll, Pitch

Roll : x축 (종축)을 중심으로 회전하는 것. Pich : y축 (횡축)을 중심으로 회전하는 것. Yaw : z축 (수직축)을 중심으로 회전하는 것. 요 피치 롤 정리하기 map 알고리즘 개빨라서 코테에서 진짜 많이 쓴다. list에서 value 값 받아와서 텍스쳐 로드임 map이 배열 인덱스 접근보다 훨씬 빠른 1:1 접근이다 image.GetMetadata -> 이미지의전체픽셀수를 가져와야하면 저걸로 가져올 수있다. image.겟픽셀즈함수로 사운드도 채널로 1:1매칭 연발은 스탑 후 플레이

CPU와 메모리

CPU 컴퓨터의 두뇌를 담당한다. 다양한 환경에서의 작업을 빠르게 수행하기 위해 ALU의 구조가 복잡하고 명령어 하나로 처리할 수 있는 기능도 많으며 각종 제어 처리를 위한 부분이 많다. GPU 특화된 연산을 빠른 속도로 처리하기 위해 단순한 ALU를 여러 개 갖고 있는 구조로 이루어져 있다. 이 때문에 CPU 단독으로는 아무것도 처리할 수 없으나, GPU를 제어하는 것은 여전히 CPU의 역할이다. GPU는 병렬 연산으로 단순하지만 규모가 큰일에 특화되어있다. 캐시 메모리 캐시(Cache)의 개념 "캐시 되어 있어서 빠른 거야"라는 말을 들어본 적 있을 것이다. 캐시는 잠시 저장해둔다는 의미이고, 기능이다. 캐시 메모리라고 하면 실제 메모리와 CPU 사이에서 빠르게 전달을 위해서 미리 데이터들을 저장해두..

정리 230319

삼각함수란 삼각비 + 호도법 + 함수 이다. 삼각비는 직각삼각형 세 변의 길이의 비는 각에 대한 일정한 관계가 있다. 이러한 일정한 관계를 함수로 나타낸 것이 삼각함수이다. 삼각비에서는 직각삼각형에서 세 변의 길이의 비를 이용했다면 삼각함수에서는 좌표평면 위의 좌표를 이용하는 차이가 있다. 또 삼각비에서는 육십분법으로 나타낸 각을 이용했다면 삼각함수에서는 호도법으로 나타낸 각을 이용한다. 삼각함수의 뜻, 삼각함수의 정의 xy좌표평면에 반지름의 길이가 r인 원을 그리고 원 위의 임의의 점을 P라고 하면 x축 양의 방향을 시초선으로 동경하고 선분OP가 이루는 각을 세타θ라고 할 때, y/r, x/r, y/x는 θ의 크기에 따라 한 가지로 정해진다. r != 0 일 때, θ -> y/r , θ -> x/r ,..

행렬

행렬이란? 행렬이란 영어로 'matrix'라고도 하며, 수 또는 다항식 등을 직사각형 모양으로 배열한 것이다. 영단어 'matrix' 의 사전적 의미중 가장 첫 번째 뜻은 (숫자, 기호 등을 가로, 세로로 나열해 놓은) 행렬[매트릭스] 라고 정의되어 있다. 즉, 수, 문자, 함수 등을 네모꼴 괄호 안에 배치하여 놓은 것이다. - 각각의 수 또는 함수 등을 원소/ 성분/ 요소 (element, component)로 갖는다. 행렬의 용도 행렬의 용는 크게 두 가지로 나뉜다. 정적인 사용 정보를 표로써 정형화시켜, 저장하고 처리하는데 사용된다. ( ex) 엑셀 프로그램 등 ) 연립 선형 방정식의 표기를 간소화시킨다. 시각적 이미지 및 디지털 음을 전송하는 수학적 처리에 사용된다. 동적인 사용 선형 대수 방정식..

싱글톤 패턴 + 인스턴스 + 인스턴스화 + 추상화 + 더블 버퍼링 20230227

싱글톤 패턴이란? 어플리케이션이 시작될 때 어떤 클래스가 최초 한 번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴이다. 싱글톤 패턴의 장점 고정된 메모리 영역을 얻으면서 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지할 수 있다. 싱글톤으로 만들어진 클래스의 인스턴스는 전역이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다. 인스턴스가 절대적으로 한 개만 존재하는 것을 보증하고 싶을 경우 사용한다. 두 번째 이용시 부터는 객체 로딩 시간이 줄어 성능이 좋아지는 장점이 있다. 이러한 장점을 가진 싱글톤 패턴은 DBCP (DataBaseCommection Pool) 처럼 공통된 객체를 여러개 생성해서 사용해야 하는 상황에서 많이 사용된다. 싱글톤 패..

호도법, 미리 컴파일 유의 사항 20230224

각의 크기를 그간 60°, 45°, 90° 도 등 육십분법 혹은 Dgree 각도 즉, 일상생활에서 쓰이는 각도로 말하였는데. 수학에서는 호도법에서 쓰이는 라디안을 사용한다. 호도법은 弧度法 으로 弧 활 호 ( 곡선이나 원 둘레의 일부분 ) 度 법도 도 ( 자 또는 도구 ) circular method 반지름의 길이가 r인 원에서 길이가 r인 호에 대한 중심각의 크기를 α˚라 하면 호의 길이는 중심각의 크기에 정비례하므로 더보기 r : 2πr = α˚ : 360˚∴ α˚ = 180˚/ π 따라서 중심각의 크기는 α˚는 반지름의 길이 r에 관계없이 일정하다. 이 일정한 각의 크기 α˚를 1 호도 또는 1 라디안 (radian)이라 하고, 이것을 단위로 하여 각의 크기를 나타내는 방법을 호도법이라 한다. ※ ..

삼각함수

삼각함수란? 삼각함수는 동경의 크기에 따라 변화하는 함수이다. 동경위의 점과 원점, x축에 내린 발이 직각삼각형을 이루기 때문에 삼각함수라고 부른다. 위 그림에서 각의 크기가 θ인 동경 OX는 점 X(x,y)를 지납니다. 선분 OX의 길이를 r이라고 약속하면, 다음과 같은 삼각함수를 가진다. 특수 삼각비 삼각비 1:1:√2 3:4:5 피타고라스 정리