Byn's Research Note

AI based Mixed Reality, Human-Computer Interaction

↓ My Web CV & Portfolio 자세히보기

2024/10/11 2

Unity Programming [0] : C# 프로그래밍

유니티에서 C# 객체지향 프로그래밍(OOP)은 복잡한 게임 시스템을 관리하고 유지보수성을 높이는 데 필수적이다. 객체 지향 프로그래밍을 이용하면 클래스와 상속, 다형성 등을 통해 코드를 모듈화하여 재사용성을 극대화하고, 확장성을 높여 새로운 기능을 쉽게 추가할 수 있다. 또한, 코드의 구조를 명확히 나눔으로써 협업 시에도 개발자 간의 작업 충돌을 최소화하고, 수정할 때 특정 부분만 수정하면 되므로 오류 발생 가능성을 줄일 수 있다. 이를 통해 효율적인 개발과 코드 관리가 가능해진다. 유니티 C#에서는 네임 스페이스, 클래스, 구조체, 제네릭 타입 등을 통해 이를 구현할 수있다. 코드를 간소화하려면 반복되는 부분을 별도의 메서드로 추출해 공통적인 기능을 모듈화하는 것이 좋습니다. 예를 들어, 각 손의 진행..

Linear Algebra [1] : 행렬 분해 기법 : 특이값과 고유값 분해

특이값 분해 (SVD) 특이값 분해(Singular Value Decomposition, SVD)는 선형대수학에서 매우 중요한 행렬 분해 기법이다. 이는 주로 데이터 압축, 차원 축소, 노이즈 제거, 추천 시스템 등 다양한 응용 분야에서 활용된다. SVD는 임의의 m×nm \times nm×n 크기의 행렬 AAA를 세 개의 행렬로 분해하며, 이를 수학적으로 A=UΣVTA = U \Sigma V^TA=UΣVT로 표현한다. 여기서 UUU는 m×mm \times mm×m 크기의 직교행렬로 AATA A^TAAT의 고유벡터를 열 벡터로 가지며, VTV^TVT는 n×nn \times nn×n 크기의 직교행렬로 ATAA^T AATA의 고유벡터를 행 벡터로 가진다. Σ\SigmaΣ는 m×nm \times nm×n 크기..