‘const’ 키워드는 해당 객체가 변형될 수 없는 것을 가리킴. 객체가 const 포인터 또는 레퍼런스에 담겼을 경우, const 멤버 함수만 호출할 수 있음. 비 const 멤버 함수를 호출하려고 하면 컴파일 에러 발생. 그런데 C++에서는 const의 위치에 따라서 의미가 변할 수도 있음. const는 개발 하면서 넣을 곳에 그때 그때 최대한 빨리 넣어주어야 한다. 나중에 한꺼번에 const를 추가하는 것은 비용이 많이 들고, 어렵다. 인자 (Parameter) 인자로 무언가를 넘길 때, 세 가지 중 하나로 넘기게 됨. 포인터 레퍼런스 값 void pass_by_pointer( std::string *sptr ); void pass_by_reference( std::string &sref ); vo..
쓸 데 없이 보안을 중시하는 성격인데도 꼴에 NAS 한 번 써보겠다고 집에다가 ASUSTOR NAS를 구매해서 설치했다. 그리고 NAS에 접속은 Let’s Encrypt + 도메인을 연결한 후, 리버스 프록시를 활용하고 있다. ASUSTOR NAS에서 리버스 프록시를 사용해서 끝점을 연결한 모습. 위 사진과 같이 리버스 프록시를 활용하여 접속하며, 공유기에서 포트 포워딩은 딱 두 개만 해둔 상태이다. TCP 80 -> 11110 TCP 443 -> 11111 그래서 다른 포트들은 원천적으로 NAS에 접속할 수 없게 되어있다. 하지만 그래서 꽤 답답한 문제가 하나 생겼는데, ASUSTOR NAS의 앱 스토어에서 제공하는 앱들은 거의 대부분이 리버스 프록시를 고려해서 만들어진 앱이 아니라는 점이었다. 리다이..
2D 극좌표계 좌표를 반지름 길이와 각도로 쓰는 좌표계. 삼각함수를 활용해서 𝑥, 𝑦 좌표를 구할 수 있음.
구면 좌표계 구면좌표계 = 3D 극좌표계 3D (왼손) 직교좌표계에서 구면좌표계 𝑥 = 𝑟 sin 𝜃 cosϕ 𝑦 = 𝑟 cos 𝜃 𝑧 = 𝑟 sin 𝜃 sinϕ P ( 𝑟, 𝜃, ϕ ) = ( 𝑟 sin 𝜃 cosϕ , 𝑟 cos 𝜃 , 𝑟 sin 𝜃 sinϕ) 1. 𝑥 먼 tensiya.tistory.com 구면좌표계(3D 극좌표계)를 사용한 간단한 3인칭 카메라. 적당히 위와 같이 바닥이랑 캡슐을 하나 만들고, Main Camera를 캡슐의 차일드로 옮겨서 적당히 플레이어 객체와의 상대 위치(localPosition)을 설정. Rotation은, 어차피 나중에 LookAt 함수를 활용해서 카메라를 회전 시킬 것이기 때문에, 따로 회전시키지 않음. 대충 만든 Third Person Script 에서 ..
구면좌표계 = 3D 극좌표계 3D (왼손) 직교좌표계에서 구면좌표계 𝑥 = 𝑟 sin 𝜃 cosϕ 𝑦 = 𝑟 cos 𝜃 𝑧 = 𝑟 sin 𝜃 sinϕ P ( 𝑟, 𝜃, ϕ ) = ( 𝑟 sin 𝜃 cosϕ , 𝑟 cos 𝜃 , 𝑟 sin 𝜃 sinϕ) 1. 𝑥 먼저 Y축에서 나온, 위도를 나타내는 각도 𝜃가 회전. X축 또는 Z축 상관 없이, 𝑟 sin 𝜃 임. 그러나 최초 계산은 X축이 기준. 이후 경도를 나타내는 각도ϕ가 있음. X축이 기준이므로, X축으로의 위치를 나타내면 cosϕ. 2. 𝑦 Y축에서 나온 각도 𝜃에 대하여, Y축에서의 위치가 필요하므로, cos 𝜃 사용. 3. 𝑧 𝑟 sin 𝜃 까지는 𝑥의 계산과 동일. 𝑥의 cosϕ 값은 X축 기준이므로, Z축에 대해 계산하기 위해선 sinϕ로 ..
하위 유형 다형성, 추상 클래스, 인터페이스 모든 exercise에서, 당신의 main은 모든 것을 테스트해야 합니다. 각 클래스의 생성자 및 소멸자에는 무언가 특정한 출력이 있어야 합니다. ex00 간단하고 완벽한 기본 클래스 Animal 작성. Animal 클래스는 1개의 보호된(protected) 특성을 가짐. std::string type; Animal 클래스 Animal 상속 Dog 클래스, Animal 상속 Cat 클래스. Animal 클래스는 type을 비워두거나 아무 값을 지정해도 됨. 모든 클래스는 type 필드에 이름을 입력해야함. 예를 들어서, Dog 클래스의 type는 “Dog” 여야 함. 모든 Animal은 makeSound() 메서드를 사용할 수 있어야 함. 이 메서드는 클래스를..
(나중에 내가 보기 위한 메모용 포스트) 포스팅 작성 현재 기준, code-server는 윈도우용 설치 키트를 공식적으로 제공하지 않음. 따라서 편하게 설치할 수 있는 리눅스/유닉스/macOS 계열과는 다르게, 불편하게 수동으로 설치해줘야 함. 1. 사전 준비 (1) 버전에 맞는 node.js 설치 현재 최신 버전인 3.12.0 기준으로, node.js 버전은 14.x 버전이 필요함. https://github.com/cdr/code-server/blob/main/.node-version 위 주소에서 필요한 node.js 버전을 확인할 수 있음. 현재 최신 LTS버전은 16.x, 최신 버전은 17.x 버전임. 그러나 현재 code-server가 요구하는 14.x는 LTS이긴 하지만, 오래된 버전이므로 수..
1. 사전 준비 IIS와 ARR, URL Rewrite 모듈 설치 필요. 아래 링크들을 사용해 설치. Application Request Routing : The Official Microsoft IIS Site URL Rewrite : The Official Microsoft IIS Site 2. 사이트 추가 컨텐츠 경로는 적당히 빈 디렉토리 추천. 역방향 프록시용 규칙이 들어가는 web.config가 해당 컨텐츠 경로에 저장됨. 포트와 서버 이름, SSL 인증서 등 바인딩은 알아서 설정. 3. 프록시에서 헤더 유지 옵션 1. 사진 처럼, 왼쪽의 연결 탭에서 서버 컴퓨터를 선택. 2. 그런 다음 창에서 구성 편집기 선택. 3. 섹션은 system.webServer/proxy 로 선택. 4. preser..
글 작성이 더럽게 불편하다. notion을 쓰는 이유였다. 개발 관련 메모를 하고, 이것저것 작성하다 보니 notion의 그 편리함을 잊을 수 없었다. 네이버 블로그는 이 점이 더럽게 불편했다. 솔직히 검색 유입을 밀어주는 것 말고는 전혀 이득이 없는 플랫폼. 나는 어차피 광고 그런 게 중요한 게 아니라, 본문의 리스트 (Bullet list 등) 같은 게 중요한 건데.. 지원할 생각을 안 하고. 그래서 워드프레스를 써봤다. 자체 호스팅과 자체 블로그 구축은 별로 어려운 일이 아니었다. 어차피 요샌 VPS랑 docker 배포가 잘 되어 있어서... 그냥 VPS 받아다가 도커 이미지 올리고 포트 세팅이랑 도메인 세팅 정도만 해주면 끝이었다. 그런데 워드프레스는 자유도가 너무나도 높은 나머지.. 오히려 커스..