Atan2
·
Unity
Atan( 아크탄젠트 )유니티에서 오브젝트를 회전 시킬 때 아크탄젠트라는 개념이 필요합니다.탄젠트의 역함수이며 좌표평면에서 x,y값으로 각도를 구하기 위해 사용합니다. angle = Mathf.Atan2(vertical, horizontal) * Mathf.Rad2Deg; // 순서 변경transform.rotation = Quaternion.Euler(0, angle, 0); 인자로 넣은 vertical과 horizontal은 유저가 입력한 방향에 관한 정보 입니다.인자는 y,x순으로 넣으면 됩니다. vertical 값이 0.7이고, horizontal 값이 0.8이라면0.7/0.8이 됩니다이를 계산 해보면 약 0.875라디안 이라는 값이 나오는데 이를 "도"로 변환하면 39.8도가 됩니다.좌표평면에서..
삼각함수
·
Unity
삼각 함수란?삼각형의 각도와 변의 길이의 관계를 나타낸 것.삼각함수에는 Sin(사인), Cos(코사인), Tan(탄젠트)가 있다. Sin직각삼각형의 각도와 대변의 길이가 주어졌을 때 빗변과의 비율을 구하는 함수이다. 각도가 60도이고 대변의 길이가 10이라고 했을 때 빗변의 길이는 약 11.55가 된다.Sin(60)은 약 0.866025404이고 대변의 길이가 10이므로 비율을 적용해보면 빗변의 길이는 11.55가 된다Cos직각삼각형의 각도와 인접한 변의 길이가 주어졌을 때 빗변과의 비율을 구하는 함수이다. 각도가 60도이고 인접변의 길이가 10이라고 했을 때 빗변의 길이는 20이다.Cos(60)은 0.5이고 인접변의 길이가 10이므로 비율을 적용해보면 빗변의 길이는 20이 된다 Tan직각삼각형에서 각도..
Unity 기초
·
Unity
유니티는 에디터에서 주로 C#을 사용함.엔진에서 기본으로 제공하는 기능 이외에 필요한 것들은 C#을 사용해 스크립트라고 부르는 파일을 만들어 구현함. 게임 오브젝트캐릭터, 배경, 텍스트, 및, 조명 등 게임을 구성하는 요소. 오브젝트는 여러 컴포넌트의 집합체이고 이것들이 모여 하나의 Scene을 구성함. 프리팹프리팹은 게임 오브젝트를 재사용 가능한 형태로 미리 만들어 두는 것을 의미함. 이는 웹 개발 혹은 다른 개발에서 공용 컴포넌트와 유사하게 해석됨. 프리팹을 만들고 해당 프리팹을 기반으로 여러 오브젝트를 생성하면 프리팹만 변경했을 때 모든 오브젝트가 해당 프리팹의 변경 사항을 반영함. 예를들어 웹개발에서 기본 차트를 구현해두고 해당 차트에 들어갈 데이터만 인자로 받아서 넣는 그런 형태와 유사하다고 이..
Heap
·
자료구조
이진트리 형태의 자료 구조입니다. 최대값 혹은 최소값을 빠르게 찾기 위해 주로 사용합니다.이 글에서는 최대힙을 기준으로 설명합니다. 코드가 깔끔하지 않을 수 있음 주의  힙 자료구조는 두가지 형태가 있습니다.  최대힙은 아래 그림 처럼 부모 노드가 반드시 자식 노드 보다 커야합니다. 최소힙은 아래 그림과는 정 반대로 부모 노드가 반드시 자식 노드보다 작아야 합니다. 최대힙과 최소힙은 사용하는 사람이 필요에 따라 선택하면 됩니다. 기본적인 원리는 최대/최소 모두 같습니다.    특징 / 삽입 / 삭제Heap도 데이터를 저장하기 위한 자료구조 이기 때문에 삽입과 삭제가 필요합니다. 이제부터 해당 글은 최대힙을 기준으로 설명합니다. 특징Heap 자료구조는 주로 배열 혹은 리스트로 이를 표현합니다. JAVA 에..
로깅
·
⚙️ BE
로깅에 대해 학습하고 기록한 글입니다. 이전 글에서 nginx 로그를 남기때 프록시 처리된 IP가 기록되는 상황을 해결하기 위해 http_x_forwarded_for 헤더 정보를 참고해야 한다는 점을 알게 되었습니다. http_x_forwarded_for 헤더해당 헤더는 커스텀 헤더로 사실상 표준으로 자리잡은 헤더 입니다. 프록시나 로드밸런서를 통해 접속하는 클라이언트의 원 IP를 식별하기 위한 헤더입니다. 이는 반드시 지켜야 한다거나, 해당 헤더가 무조건 존재한다는 보장이 없기 때문에 우선 Cloud flare 공식문서를 찾아 보았습니다. https://developers.cloudflare.com/fundamentals/reference/http-request-headers/ Cloudflare HT..
웹 애플리케이션 서버 보안
·
카테고리 없음
EC2를 대상으로 무작위 ip에서 공격이 있어 관련 내용을 기록하는 글입니다. Cloud Flare에서 도메인을 관리 중인데 EC2에 여러가지 무작위 IP에서 공격 시도가 매일 들어오고 있는 상황 입니다.찾아보니 로드밸런서를 통해 Private VPC에 애플리케이션 서버를 배포하고 Public VPC 진입접을 통해서만 접근이 가능 하도록 하는 방법과 Cloud Flare 에서 방화벽 설정으로 특정 이벤트를 차단하는 형태 두가지 방법이 있었습니다. 첫번째 방식은 Bastion Host 를 활용한 방식으로 게이트 역할을 하는 EC2를 하나 더 띄우는 형태 입니다. 돈이 두배지요 이 글에서는 두번째 방식으로 처리 하도록 하였습니다.우선 IP를 후이즈에 검색 해보았습니다. 모든 아이피가 해외에서 관리되고 있는 ..
Rust 기본 개념 - 참조 및 빌림
·
Rust
이전 글에서 Rust의 소유권에 대해 알아보았습니다.이번 글에선 참조 및 빌림에 대해 알아보겠습니다. 참조 및 빌림이전에 튜플을 이용하는 방식은 소유권을 함수 밖으로 다시 가져온 형태인데,해당 방법을 사용하는 대신 참조자를 이용해 해당 참조자를 인자로 사용하는 함수를 정의하고 사용할 수 있습니다.러스트에는 여러종류의 참조자가 존재합니다. 우선 일반적인 불변 참조자 부터 알아보겠습니다.fn main() { let s1 = String::from("hello"); let len = calculate_length(&s1); println!("The length of '{}' is {}.", s1, len);}fn calculate_length(s: &String) -> usize { s...
Rust 기본 개념 - 소유권
·
Rust
Rust메모리 안전 언어로 저수준의 제어가 가능하면서도 메모리 제어를 사용자가 하지 않도록 하는 것을 목표로 하는 언어입니다.Java, Javascript 같은 언어들은 이미 개발자가 메모리 제어를 하지 않아서 별 신경을 안썻지만, C, C++ 같은 C 계열은 개발자가 메모리를 하나하나 제어해줘야 합니다. 예를들어 특정 메모리 공간을 할당만 해놓고 해제하지 않으면 해당 메모리 공간을 의미없이 점유하게 되는 문제가 생깁니다.이를 메모리 릭 (Memory Leak) 이라고 합니다 .메모리 릭은 힙 영역에 할당된 메모리를 해제하지 않아서 발생합니다. 힙 영역에 할달된 메모리는 함수호출이 종료되어도 해제되지 않습니다.개발자가 직접 명시적으로 해제 해야 해제 됩니다. 그로인해 함수가 호출되면 될수록 새로운 메모리..