분류 전체보기

    tar 포맷은 어떤 포맷일까?

    리눅스 서버를 많이 다뤄 보면서, 그만큼 `tar` 확장자를 가진 파일들도 자주 접해 보았다. 하지만 여태 나는 그저, 리눅스에서 역사적으로 자주 쓰는 하나의 압축 포맷이구나. 라고만 생각하고, 깊게 짚어보지 않았다. 그리고, 리눅스 서버에서 이번에 zip 압축을 해제하기 위해 unzip 패키지를 설치하면서, 도대체 왜 리눅스에서는 zip을 안쓰고 tar같은걸 쓰는걸까.. 이런 생각이 들어, 찾아보게 되었다. tar는 압축이 아니라 아카이브! 가장 크게 오해하고 있었던 내용이다. tar 형식은 압축이 아닌, 아카이브 포맷이다. 그저, 파일들을 한 데 묶어주는 역할을 할 뿐이었다. 이름부터가 tape archive 의 약자로서, 자기테이프 백업을 위한 포맷이라고 한다. 메타데이터 및 소유권이 유지된다. 리..

    conan 패키지 관리자 도입하기 : 개론

    conan 패키지 관리자 도입하기 : 개론

    회사에서 기존 CMake기반의 개발 환경에, conan을 도입해보는 업무를 맡았다 부끄럽지만 기존에 CMake를 써본 경험도, XCode IDE를 써본 경험도 없어서, 꽤나 많은 시행착오들이 있었는데, 이러한 과정을 간단하게 글로 포스팅해보고자 한다. Conan이 뭔가요? conan은 C/C++을 위한 패키지 관리자입니다. 외부 라이브러리나 의존성을 효과적으로 관리하고 프로젝트에 포함하는 것이 가능해집니다. 코난을 사용하면 어떤 점이 있는지, 정리해 보겠습니다. 기존 C/C++ 라이브러리 추가 플로우 필요한 라이브러리를 수동으로 다운로드받고, 빌드 환경에 맞게 수동으로 설정해주어야 했습니다. 헤더 위치를 지정해주고, 빌드에 포함할 디렉터리나, 라이브러리 파일을 직접 입력해주어야 합니다. 또한, 플랫폼이나..

    ASTC 포맷, 어떤 점이 왜 좋을까?

    ASTC 포맷, 어떤 점이 왜 좋을까?

    Arm에서 ASTC를 상세하게 설명해주는 문서가 있다. https://github.com/ARM-software/astc-encoder/blob/main/Docs/FormatOverview.md 위 글을 천천히 읽어 보며, 정리해 보는 포스팅을 해보려고 한다. ASTC는 분명 ETC2보다 개선된 압축방식이고, 같은 용량의 결과물이더라도 품질은 극명하게 차이가 난다. 왜 그런걸까? 그 몇년 사이에 압축 알고리즘이 비약적으로 상승한 것 때문일까? 이에 대한 답변이 확실히 될 수 있도록, 문서를 같이 읽어보자. ASTC format overview 특징 포맷 유연성 ASTC는 1~4채널의 데이터 압축을 지원합니다. RGB+A에서의 A채널과 같이, 상관관계가 없는 독립된 채널도 포함입니다. 비트레이트 유연성 A..

    Prometheus + Grafana 패키징

    Prometheus + Grafana 패키징

    개발 환경 모니터링용으로 구축해놓은 prometheus + grafana 시스템을, 퍼블리싱 회사로 패키징하여 전달해주는 업무를 맡았다. 문제는..! grafana에 설정한 datasource와 dashboard 가 그대로 문제없이 패키징되어야 했다. 상호간에 참조가 깨지지 않게 패키징하려면 어떤 방법을 써야 할지 좀 알아 보았다. 그 전에, 간단히 설명부터. Prometheus 다양한 메트릭 지표를 수집하는 중앙 시스템이다. 임계점을 설정하면 알림을 전송해주는 시스템 또한 가지고 있다. Pushgateway prometheus는 다양한 메트릭 지표를 직접 pull하는데, 다양한 시스템들이 능동적으로 pushgateway 로 메트릭을 push 하게끔 할 수도 있다. 그렇다면 prometheus는 push..

    텍스처 압축과 ASTC

    텍스처 압축과 ASTC

    이번에 회사에서 사용중인 게임엔진에 ASTC 텍스처가 지원되게끔 개선하는 작업을 맡았다! 그래서 이 업무 완료 이후 내용을 공유하고자 작성한 자료를, 공개용으로 간단히 요약해 보았다. 텍스처 압축 텍스처가 무엇인가요? 물체의 시각적인 모든 특성을, 텍스처라고 부른다. 물체의 질감, 모양, 색상, 패턴 등등이 모두 텍스처를 설명하는 단어들이다. 조금 더 게임엔진 쪽으로 설명하자면, UV매핑할 때 사용되는, 메모리에 로드된 이미지 라고도 표현할 수 있겠다. 위 이미지에서 보이다시피, 마인크래프트의 '텍스처 팩'은 물체가 보이는 모든 특성에 관여하게 된다. 또한, 게임에서 사용중인 2D 이미지들 또한, 모두 다 텍스처라고 말할 수 있을 것이다. 텍스처 압축을 왜 하나요? 이는 텍스처를 떠나, 압축이 가져다 주..

    PC정비사 1급 이야기

    PC정비사 1급 이야기

    PC정비사 1급 이야기 PC 정비사 1급 자격증을 취득했다. 사실, 내가 가진 자격증들 중, 가장 중요도나 연관성이 떨어지는 자격증이긴 하다. 그래서 만일 이력서라던지, 포트폴리오 정리 시에, 자격증 기입 란이 부족해지면, 가장 먼저 기입을 포기하게 되는 자격증이다. 하지만, 그럼에도, 내 자격증둘 중 '2급'이라는 수식어를 남기기 싫어서, 기존 PC정비사 2급을 1급으로 올려보고자 했다. HOW PC정비사를 만약 준비해야 한다면, 교재는 필요 없다. 네이버 카페, PC정비사 연구소에 가입해서, 기존 기출문제 3~5개년정도만 살펴보아도 문제 없다. PC정비사에서 다루는 모든 범위에 빠삭하게 대비되어있는 것은 불가능에 가까워 보인다. 레지스트리 하나하나, 제어판 항목 하나하나, 바이오스나 최신 보안 정책까..

    jenkins(image) 에서 docker buildx를 사용하고 싶어요!

    jenkins와 docker jenkins 에서 도커 이미지를 빌드하는 것은 흔한 일이다. 하지만, jenkins 서버를 만약 docker container로 띄웠다면 조금 복잡해진다. 이 때, jenkins에서 도커를 사용하는 방식에 따라 dood, did 로 나뉘게 된다. docker out of docker 젠킨스의 docker가 아닌, 호스트의 docker를 젠킨스에서 사용할 수 있도록 한다. docker in docker 젠킨스의 docker image 내부에 docker를 추가로 설치한다. 둘 중 어떤 것을 쓸 지 고민해보고 찾아보다가, dood로 결정했다. 아무래도 호스트의 docker를 바로 쓰는 것이 did보다 더 쾌적할 것으로 보인다. 또한, 대부분이 dood를 권장한다. 정확히는, d..

    CMake 와 static library에서의 종속성 관리

    target이 static library인 CMake를 서브프로젝트로 포함시키는 구성에서의 종속성 관리. 회사에서 개발하는 게임은, 엔진을 자체 수정하며 작업하기에, 다양한 내부 라이브러리를 링크해서 사용한다. 지금껏 iOS 환경에서는 XCode를 직접 수정해가며 종속성을 관리하고 프로젝트들을 링킹했는데, 이번에 서브 프로젝트들을 CMake로 관리하려고 했다. 각 서브프로젝트의 CMakeLists.txt별로 존재하는 다양한 라이브러리 파일들..(ffmpeg라던지 zlib라던지 ssl이라던지..) 이들을 메인 프로젝트가 알 수 있게 해야 했다. 하지만, static library가 target 인 CMake를 XCodeProj로 만들 때, 종속성 정보를 메인 프로젝트로 전달해 줄 방법이 없었다. 그래서 방..