데드락
데드락데드락이란?컴퓨터 시스템에서 두개 이상의 프로세스가 서로 자원을 기다리며 무한히 대기하는 상태이 상태에서는 어떤 프로세스도 진행할 수 없으므로, 시스템의 일부가 멈추게 됨발생조건(코프먼의 조건)상호 배제(Mutual Exclusion)자원은 반드시 하나의 프로세스만 사용할 수 있다(배타적 사용)점유 대기(Hold and Wait)프로세스가 자원을 점유한 상태에서 추가 자원을 요청하며 기다림비선점(Non-preemption)플로세스가 점유하고 있는 자원을 강제로 뺏을 수 없음순환 구조(Circular Wait)자원을 기다리는 프로세스들 사이에 순환적인 대기상태 형성데드락 예시단순한 예프로세스 A가 자원 1을 점유한 상태에서 자원 2를 요청하고, 프로세스 B는 자원 2를 점유한 상태에서 자원 1을 요청..
2023.09.17
가상화 VS 추상화
추상화(Abstraction)정의복잡한 시스템에서 중요한 부분만 선택하여 표현하고, 불필요한 세부사항을 숨기는 것목적사용자는 복잡한 내부 구현을 알 필요 없이, 시스템을 사용할 수 있음인터페이스를 정의하여 코드의 유연성과 재사용성을 높임구현추상 클래스나 인터페이스를 통해 구현함추상 클래스는 하나 이상의 순수 가상 함수(Pure Virtual Function)를 가지는 클래스순수 가상함수는 = 0 을 사용해 정의class Parent{public: virtual void Test() = 0;};class Child : public : Parent{public: virtual void Test() override { cout};int main(){ Parent* p = new Parent();..
2023.09.17
NAS
NAS(Network Attached Storage)란?네트워크에 연결된 저장장치중앙에서 데이터를 저장하고 여러 사용자가 네트워크를 통해 이 데이터를 공유할 수 있도록 설계된 파일 저장 시스템특징파일 기반 저장소주로 파일 시스템 단위로 데이터를 저장 및 공유Windows 에서는 SMB/CUFS, Unix/Linux에서는 NFS와 같은 프로토콜을 사용하여 파일을 접근네트워크 연결NAS는 독립된 창치로 네트워크에 연결되며, LAN 또는 WAN을 통해 네트워크에 접근할 수 있음확장성필요에 따라 저장 공간을 쉽게 확장할 수 있으며, 여러 NAS 장치 클러스터로 연결하여 대규모 스토리지 풀을 구성 가능쉬운 관리일반적으로 사용자가 관리할 수 있는 간단한 웹 기반 인터페이스를 제공백업, 복구 및 파일 공유 기능이 내..
2023.09.17
가상 메모리
가상메모리란OS에서 사용하는 메모리 관리 기법중 하나로 컴퓨터가 실제 이용가능한 메모리 자원을 추상화하여 이를 사용자들에게 더 큰 메모리로 보이게 만드는것저장공간인 HDD나 SSD의 일부 영역을 RAM 처럼 사용함으로써 구현됨주요 개념논리 주소와 물리 주소논리주소(Logical Address) : 프로세스가 사용하는 메모리 주소, 프로그램 실행중 생성되며, 가상 메모리 공간에 해당물리주소(Physical Address) : 실제 RAM에서의 주소, 논리 주소는 MMU(Memory Management Unit)에 의해 물리 주소로 변환페이징(Paging)가상 메모리를 일정한 크기(페이지)로 나누고, 물리 메모리도 같은 크기(프레임)로 나눔필요한 페이지만 물리 메모리에 로드하여 메모리를 효율적으로 사용페이지..
2023.09.15
IDE
IDE(Integrated Development Environment)정의개발자를 위한 종합 프로그램으로 통합 개발 환경에서 프로그램 개발에 관련된 작업을 하나의 프로그램으로 처리할 수 있게해줌소트트웨어 편집, 빌드, 테스트, 패키징과 같은 기능을 사용하기 쉬운 하나의 애플리케이션에 통합해 효율적으로 업무를 할 수 있게 도와줌중요한 이유개발을 할 때 여러 개발 프로그램을 사용하게 되는데 이때 여러 프로그램을 따로 사용하면 프로그램끼리 연결하는데 시간과 비용이 많이 들것이다이를 해결하기 위해 프로그램을 한곳으로 모아 IDE에서 사용하면 수동우로 통합하는 시간과 비용을 절약할 수 있어 개발에만 신경을 쓸 수 있다주요 기능코드 작성을 위한 텍스트 에디터작성한 코드를 실행하기 위한 빌더작성한 코드에 문제가 없는..
2023.09.15
PBR
PBR(Physically Based Rendering)정의표면의 재질에 따른 빛의 반사가 물리적으로 어떻게 이뤄지는지 시뮬레이션하여 그래픽을 표현하는 기법빛의 물리적 현상을 기존 방식에 비해 조금 더 과학적인 관점으로 분석한 개념을 기반으로 한 텍스쳐와 셰이딩을 사용한다는 의미레거시 렌더링 VS PBR기존 렌더링 방식은 레거시 렌더링(Legacy Rendering)이라 구분함PBR은 레거시 렌더링과 비교해 개념이나 특정 고난도 기술, 새로운 엔진을 요하는 방식이 아니라 그래픽 리소스를 줄이면서 더 사실적으로 구현 가능하고, 최적화에 더 용리함구분레거시 렌더링물리기반 렌더링재질의기본색난반사(Diffuse)텍스처기본색(Base Color)재질의 반사광정반사(Specular) 텍스처(또는 값)금속성(Met..
2023.09.15
구면 좌표계
직교 좌표계 VS 구면 좌표계공통점 좌표계3D 차원 공간에서 위치를 나타내기 위한 대표적인 방법공간상의 점을 표현하는 방식과 활용 목적이 다르다직교 좌표계(Cartesian Coordinate System)구조3차원 공간에서 X, Y, Z축을 사용해 점의 위치를 정의각 축은 서로 수직(Orthogonal)이며, 기준점(원점)으로부터 각 축을 따라 이동한 거리를 사용하여 점의 위치를 나타냄3좌표 표현$(x,y,z)x: yz 평면과의 거리y: xz 평면과의 거리z: xy 평면과의 거리특징좌표 간의 관계가 단순하고 직선적벡터 연신 및 평면 방정식등에서 직관적3차원 공간의 각 지점을 한가지 방식으로만 나타낼 수 있음활용직선 운동 문제직교 격자를 사용하는 컴퓨터 그래픽스직선이나 평면 중심의 기하학적 문제구조물 설..
2023.09.13
OBB 분리축
OBB VS AABBOBB와 AABB는 둘 다 객체의 경계를 단순화하여 충돌 감지에 사용되는 대표적 Bounding Volume각각의 측성과 분리축 이론 적용 방식이 다름AABB(Axis-Aligned Bounding Box)정의좌표축에 정렬된 직육면체로, 각 면이 X, Y, Z 축과 평행각 차원에서 최소점(min)과 최대점(max)로 정의됨주요 특징간단한 구조 : 회전이 없기 때문에 계산이 단순효율성 : 충돌 감지 시 계산량이 적음정확도 낮음 : 객체가 회전할 경우 경계가 비효율적으로 커질 수 있음OBB(Oriented Bounding Box)정의임의의 방향으로 회전할 수 있는 직육면체중심점, 세 축 방향(단위 벡터), 각 축의 반직경(helf-extents)로 정의주요 특징유연성 : 객체의 회전에 따..
2023.09.13
C++ AMP
C++ AMP(Accelerated Massive Parallelism)정의C++ 프로그래밍 언어를 확장하여 GPU와 같은 테이터 병렬 하드웨어를 활용해 코드 실행을 가속화 하는 기술(Visial Studio 2022 버전 17.0부터 더 이상 사용되지 않아 AMP 헤더를 포함하면 빌드 오류가 생김 경고를 무음으로 표시하기 위해 헤더를 포함하기 전에 정의_SILENCE_AMP_DEPRECATION_WARNINGS 해야함)특징병렬 처리 최적화 : C++ AMP은 GPU의 병렬 처리 능력을 활용하여 대규모 데이터 처리 작업을 가속화함프로그래밍 모델 : 다차원 배열, 인덱싱, 메모리 전송, 타일링 등을 지원하는 프로그래밍 모델을 제공수학 함수 라이브러리 : 병렬 처리에 최적화된 수학 함수 라이브러리 포함C++..
2023.09.13