Code 40

[3DGS] Gaussian Splatting 환경 구성

name: gaussian_splattingchannels: - pytorch - conda-forge - defaultsdependencies: - cudatoolkit=11.6 - plyfile - python=3.7.13 - pip=22.3.1 - pytorch=1.12.1 - torchaudio=0.12.1 - torchvision=0.13.1 - tqdm - pip: - submodules/diff-gaussian-rasterization - submodules/simple-knn - opencv-python - joblib 해당 코드를 이용해서 환경을 구성했는데, 자꾸 submodules 다운로드 과정에서 오류가 발생했음 export CUDA_HOME..

[Docker] Networking (Bridge, Host, Overlay)

Bridge 네트워킹도커의 기본 네트워킹 모드각 컨테이너는 가상 네트워크 인터페이스를 받아 도커 브리지에 연결컨테이너들은 이 브리지를 통해 서로 통신 가능호스트 밖으로의 통신은 NAT를 통해 이루어짐포트 매핑을 통해 외부에서 컨테이너에 접근할 수 있음 Host 네트워킹컨테이너가 호스트의 네트워크 스택을 직접 사용함별도의 네트워크 격리가 없어 성능이 좋음호스트의 포트를 컨테이너가 직접 사용하므로 포트 충돌에 주의해야 함보안상 위험할 수 있어 신중하게 사용해야 함 Overlay 네트워킹여러 도커 호스트 간에 분산된 네트워크를 만듦서로 다른 호스트에 있는 컨테이너들이 마치 같은 네트워크에 있는 것처럼 통신 가능주로 Docker Swarm이나 Kubernetes와 같은 오케스트레이션 도구에서 사용VXLAN을 사..

Code/Docker 2024.10.16

[Docker] Storage (Volumes & Bind mounts)

정의  Volume:도커에 의해 관리되는 호스트 파일시스템의 일부입니다 (일반적으로 /var/lib/docker/volumes/ 에 위치).도커 CLI 명령어를 통해 직접 관리할 수 있습니다.여러 컨테이너 간에 쉽게 공유할 수 있습니다.볼륨 드라이버를 사용하여 원격 호스트나 클라우드 제공업체에 데이터를 저장할 수 있습니다.컨테이너가 삭제되어도 볼륨은 유지됩니다.Bind Mount:호스트 시스템의 어느 위치에나 저장할 수 있습니다.호스트의 파일 또는 디렉토리가 컨테이너에 마운트됩니다.호스트 시스템의 파일 구조와 OS에 의존적입니다.호스트 시스템의 민감한 파일에 접근할 수 있어 보안상 주의가 필요합니다.주요 차이점 관리:Volume: 도커에 의해 관리됨Bind Mount: 호스트 파일시스템에서 직접 관리됨위..

Code/Docker 2024.10.16

[Linux] VScode 비밀번호 없이 접속

Windows 윈도우 파워쉘 또는 cmd 에서 ssh-keygen파일 탐색기에서 %USERPROFILE% 을 통해 .ssh 폴더에 접속id_rsa.pub 를 txt 로 열어서 안에 내용 복사vscode ssh 서버 접속 후 home/USER 안에 .ssh 폴더 생성 (있으면 접속).ssh 폴더 안에 authorized_keys 라는 이름의 파일 생성authorized_keys 파일에 id_rsa.pub 에서 복사한 내용 붙여넣기F1 을 눌러서 SSH config file 열기해당 서버의 계정 정보에 IdentityFile 라는 이름으로 항목 추가IdentityFile 해당 항목 내용으로 로컬에 있는 id_rsa 파일의 경로 입력재부팅Mac (TBU)

Code/Linux 2024.10.10

[C++] 멤버 접근 연산자 (->)

코드를 봤는데 웬 화살표가..? (->) 파이썬만 파던 나로서는 어리둥절할뿐... (물론 파이썬 함수에도 -> 를 통해 return 값 주석 역할을 하기도 함) 아무튼 그래서 -> 이게 뭔지 알아봤음-> 이름은 멤버 접근 연산자라 하고 클래스나 구조체의 멤버에 접근하게 해줌 그럼 . 과 -> 의 차이는 무엇일까? . 은 멤버에 직접 접근함 -> 은 포인터를 통해 멤버에 접근함 MyClass* ptr = new MyClass();ptr->memberFunction();int value = ptr->memberVariable;// --------------------------------------------------struct MyStruct { int x; void func();};MyStr..

Code/C++ 2024.09.04

[C++] 정적 변수 (static) 와 상수 변수 (const)

정적 변수(static) static 키워드로 인해 정적 변수로 선언되는 경우, 함수가 종료되어도 사라지지 않음 #include using namespace std;void func(){ int a = 10; static int b = 10; a++; b++; cout   상수 변수(const) 값을 변경할 수 없는 변수 아래 코드에서 상수 변수의 값을 바꾸려해서 오류 발생 #include using namespace std;int main(){ const int a = 1; int a = 2; return 0;}

Code/C++ 2024.08.18

[C++] 네임스페이스 (namespace)

아래는 c++ 코드 예시의 일부분 std::cout > i; 위 코드에서 std 가 네임스페이스 네임스페이스의 역할: 소속을 지정해줌 네임스페이스의 필요성: 내부 식별자에게 범위를 부여해서 여러 라이브러리를 쓰는 상황에서 충돌을 방지하기 위해 사용  헷갈림을 방지하기 위해 아래와 같이 using namespace 의 사용은 권장되지 않음using namespace std;int main(){ int i; cout > i;}

Code/C++ 2024.08.15

[Programming] 코드의 빌드 (Build)란?

회사에서 인수인계 받을 때, 전임자분이 코드 빌드하는 방법을 알려주겠다고 했음 근데 부끄럽지만 비전공에 AI 코드만 짜는 수준이라 개발에 대해 잘 몰랐고, 빌드가 무엇을 이야기하는지 이해하지 못했음 그래서 이번 기회에 정리를 해보려고 함 빌드 (build) = 전처리 (pre-processing) + 컴파일 (compile) + 링크 (link)  전처리 (pre-processing) 전처리는 소스 파일이 컴파일 되기 전에 소스 코드를 변경하거나 확장함 컴파일러가 전처리기에 지시하는 형태로 수행되는데, #include, #define 등의 지시문을 해석하고 소스 코드를 변경하여 컴파일러에 전달  컴파일 (compile) 컴파일은 주어진 코드를 오브젝트 코드 (기계어)로 번역하는 과정  링크 (link) ..

Code/ETC 2024.08.14