전체 글 282

벡터

벡터란? 벡터는 수학, 물리학, 공학에서 크기와 방향을 갖춘 양을 일컫는다. 이공학 분야에서 많이 사용되는 수학적인 양의 표현 기법으로 거리 무게 속력 등 크기만을 나타내는 1 차원적인 양인 스칼라와는 달리, 힘, 속도 등과 같이 크기 및 방향 등 2차원 이상 즉, 2 이상의 원소(요소)들에 의해, 어떤 양을 표현하는데 유용한 표기법 벡터의 여러 정의들 기하학적인 측면 : 유향 선분 - 크기 및 방향에 의한 표현 ex) 힘, 모멘트, 변위, 속도, 가속도, 운동량, 열유동 등 대수적 측면 : 수 또는 함수들의 나열 - 실수 또는 복소수 또는 함수를 원소(성분)로 갖는 순서쌍(Oredered Pair/n-tuple) ex) 좌표, 벡터 함수 등 추상적 대상 (object) : 벡터공간 상에서 대수적 성질을..

카테고리 없음 2023.03.03

행렬

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

생성자를 통한 자동 형변환, 변환 함수

생성자를 통한 자동 형변환 생성자를 자동 데이터형 변환 함수로 동작하게 하는 것은 멋진 기능처럼 보이지만, 프로그래머들이 C++를 많이 경험하게 되면, 자동 데이터형 변환이 항상 바람직한 것은 아니라는 것을 알게 된다. 되려 예상치도 못한 부작용을 일으킬 수도 있다는 프로그래머들은 알게 될 경우도 있다. 그래서, 최신 C++ 시스템에는 자동 데이터형 변환을 못하게 하는 explicit라는 새로운 키워드가 추가되었다. explicit Stonewt (double lbs);// 암시적 데이터형 변환을 허용하지 않는다. 위 예제와 같이 생성자에 explicit 앞의 예와 같은 암시적 데이터형 변환을 못하게 막는다. 그러나 다음과 같은 명시적 데이터형 강제 변환은 여전히 허용한다. 즉 explicit 는 암시적..

Register

레지스터 변수란? 지역, 전역, 정적 변수들은 어쨌든 정적 영역이든 스택 영역이든 메모리의 한구석에 생성되지만 레지스터형 변수는 메모리가 아닌 CPU의 레지스터에 저장된다. 레지스터란 CPU를 구성하는 부품 중 하나이며 CPU가 데이터를 처리하기 위해 사용하는 임시 작업장이라고 생각하면 된다. 컴퓨터의 가장 핵심적인 부품인 CPU의 한 가운데 있는 기억 장소이기 때문에 레지스터의 속도는 메모리와 비교가 되지 않을 정도로 빠르다. 값을 읽거나 쓰는데 수십억분의 1초 정도밖에 걸리지 않는다. CPU의 종류에 따라 다르지만 레즈스터는 보통 10~20개 정도밖에 없는 아주 귀한 장소인데, 여기에 변수를 저장하면 이 변수를 참조하는 문장의 속도가 빨라진다. 레지스터의 크기는 CPU의 비트수를 결정하는 중요한 기준..

카테고리 없음 2023.02.28

싱글톤 패턴 + 인스턴스 + 인스턴스화 + 추상화 + 더블 버퍼링 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 피타고라스 정리

20230222 정리

메시지 큐 메시지 큐란? 메시지 큐 (Message Queue)란 프로세서 간에 데이터를 교환할 때 사용되는 통신 방법 중에 하나이다. 더 큰 개념으로는 MOM(Message Oriented Middleware : 메세지 지향 미들웨어)를 의미한다. MOM이란 비동기 메시지를 사용하는 프로그램 간 데이터 송수신을 의미하며, MOM을 구현한 서비스를 MQ라고 한다. PeekMessage 함수 PeekMessage 는 GetMessage함수와 유사하다. 둘 다 필터 조건과 일치하는 메시지에 대한 메시지 큐를 확인한 다음 MSG 구조에 메시지를 복사한다. 두 함수 간의 주요 차이점은 필터 조건과 일치하는 메시지가 큐에 배치될 때까지 GetMessage가 반환되지 않은 반면 PeekMessage는 메시지가 큐에..

분할 컴파일

헤더 파일과 cpp 파일을 구분해놓지 않으면 여러모로 번거로운 일이 생긴다. 예를 들어서, 두 개의 지원 함수를 하나의 별도의 파일에 넣었다고 가정한다면, 양쪽 파일에 있는 그 함수 모두 그 구조체 선언을 사용하기 때문이며, 일일이 번거롭게 그것들을 직접 타이핑하면 실수를 저지를 위험도 있을 뿐만 아니라, 변경할 일이 생기면 둘 다 변경해 주어야 한다. 쉽게 말해서, 하나의 프로그램을 여러 파일에 펼칠 때에는 새로운 문제가 발생한다. 그러므로 원본 프로그램을 다음 과 같이 세 부분으로 분할할 수 있다. 분할 기준은 다음과 같다. 구조체 선언과, 그 구조체를 사용하는 함수들의 원형이 들어 있는 헤더 파일 = .h 그 구조체에 관련된 함수들의 코드가 들어 있는 소스 코드 파일 = .cpp 그 구조체에 관련된..

시간 복잡도 & 자료구조와 알고리즘이란?

자료구조와 알고리즘이란? 자료구조는 데이터의 구조이고,알고리즘은 작업 과정의 묘사이다. 시간 복잡도 정의하기 실제 시간 복잡도를 정의하는 3가지 유형은 다음과 같다. 시간 복잡도 유형빅 - 오메가 (Ω(n)) : 최선일 때 (best case)의 연산 횟수를 나타낸 표기법빅 - 세타 (Θ(n)) : 보통일 때 (average case)의 연산 횟수를 나타낸 표기법빅 - 오 (O(n)) : 최악일 때 (worst case)의 연산 횟수를 나타낸 표기법코딩 테스트에서 어떤 시간 복잡도 유형을 사용해야 할까? 코딩 테스트에서는 빅 - 오 표기법 (O(n))을 기준으로 수행 시간을 계산하는 것이 좋다.실제 테스트에서는 1개의 테스트 케이스로 합격, 불합격을 결정하지 않는다.응시자가 작성한 프로그램으로 다양한 테..