목록전체 글 (51)
altair의 프로젝트 일기
개요 학기가 시작하기 얼마 남지 않았다. 유닉스·리눅스 시스템 관리 핸드북이라는 책을 요새 읽고 있다. 정말로 추천할만한 컴퓨터 분야 고전 중에 하나다. 이 책의 몇 가지 예제를 따라하기 위해 아치 리눅스를 데스크탑에 설치했다. 그러던 중, 리눅스 환경을 노트북에도 설치해 밖에서 사용하고 싶었다. Vim 사용이 조금 익숙해지면서 무거운 IDE가 없더라도 충분히 원활하게 코딩을 할 수 있게 되었다. 굳이 무거운 프로그램이 필요하지 않다면 Vim을 사용해 가볍게 밖에서도 노트북으로 코딩할 수 있지 않을까? 리눅스 노트북 그래서 내게 노트북이 없냐하면 그건 또 아니다. 2020년 형 맥북 프로 13인치가 있다. 마음 같아서는 이 맥북에 macOS를 밀고 리눅스를 깔고 싶다. 어떤 리눅스 배포판은 일상적인 환경..
개요 이번 글에서는 라즈베리파이에 GitLab을 설치하는 방법을 소개한다. GitLab은 공식적으로 32비트 라즈비안에서만 설치가 가능하다. 이 깃랩을 64비트 라즈비안에 설치하는 것까지 다룰 것이다. 깃허브 새로운 프로젝트를 할 때마다 원격 리포지토리로 깃허브를 사용하는 편이다. 워낙 많은 사람들이 쓰고 있기 때문에 퍼블릭으로 공개하면 사람들이 이슈를 올려주거나 기여를 해주는 경우도 있다. 그렇지만 무엇보다도 깃을 처음 배울 때부터 쓰던 익숙함에 깃허브를 계속 사용한다. 깃허브 Copilot가 세상에 나온지 꽤 시간이 지났다. 나는 대학생 혜택으로 사용하고 있는데, 코딩하는 시간과 노력을 많이 줄여주는 건 고맙지만 마음 한 구석에서는 찜찜한게 사실이다. 모든 퍼블릭 리포지토리가 Copilot의 학습 대..
운영체제의 가상 메모리 부분을 공부하고 있을 때였다. 운영체제는 디스크와 같은 보조 저장장치 위에 올라간 스왑 메모리에 메인 메모리의 데이터를 저장하곤 한다. 당장 사용하지 않는 데이터가 메인 메모리를 계속 점유하고 있는 것은 비효율적이기도 하거니와 응용 프로그램으로 하여금 컴퓨터에 무한한 메모리가 있는 것처럼 보이게 하는 중요한 기술이다. 그런 측면에서 메인 메모리는 스왑 메모리에 대한 캐시 역할을 한다고 볼 수 있다. 지금 당장 요구하는 데이터를 메인 메모리에 올려 속도를 높이고, 그렇지 않은 데이터를 디스크에 옮겨 공간을 늘리는 방식이니까. CDN이나 프록시 캐시같은 네트워크 캐시부터 CPU안의 캐시까지 세상엔 대단히 많은 캐시들이 있지만 모두 같은 목적을 갖고 있다. 사용자로 하여금 데이터에 더 ..
개요 얼마 전에 러스트로 tar를 직접 구현해보았다. 비록 표준과는 많이 다르지만 개인적으로 간단하게 사용하기에는 충분했다. 소스코드도, 실행파일도 내가 직접 빌드하고 실행할 수 있으니 어느 날 컴퓨터 아키텍쳐가 모조리 바뀌고 cargo가 이를 지원하지 않는 상황이 오지 않는 이상, 개인적인 파일을 압축하고 보관하기엔 충분하지 싶다. 라즈베리파이 피코에서도 이를 사용할 수 있는지 궁금했다. 물론 러스트로 피코용 실행 파일을 만드는 방법도 존재한다. 하지만 이 방법은 나중으로 미루고 일단 C를 사용해 가능성만 확인해보고자 했다. 필요한 것 라즈베리파이 피코 - Picoprobe를 사용하고자 한다면 두 개의 피코가 필요하다. 아두이노 SD카드 모듈 - SZH-EKBZ-005를 사용했다. 마이크로 SD 카드 ..
개요 저번 글에서 기본적인 직렬-역직렬화를 구현했다. 파일을 단순히 저장하고 복원하기만 할 뿐이라면 굳이 더 뭔가 필요하진 않다. 하지만 만약 민감한 파일이나 너무 큰 용량의 파일을 저장할 때는 문제가 될 수 있다. 파일 데이터가 날 것으로 저장되기 때문에 마음만 먹으면 남들도 언제든지 파일을 복원하고 내용을 확인할 수 있다. 그래서 이번엔 데이터를 압축하고 암호화하는 과정을 설명하고자 한다. 압축 데이터 압축은 쉬운 문제가 아니다. 압축률과 시간, 메모리 사이의 적절한 트레이드오프가 필연적으로 발생한다. 압축률이 높다면 시간이 오래 걸리거나, 메모리를 많이 사용해야 하거나, 둘 다일 것이다. 반대로 시간을 짧게 쓰고 싶거나 메모리를 적게 쓰고 싶다면 압축률을 어느 정도 포기해야 한다. 다른 압축 프로그..
개요 라즈베리파이 피코에서 돌아가는 코드를 개발하는 방법은 여러가지가 있다. 간단하고 편하게 Thonny와 마이크로파이썬으로 개발하거나 C/C++ SDK를 사용해 C/C++로 개발하는 방법이 있을 것이다. 개인적으론 마이크로파이썬보다 C/C++를 더 선호한다. 이유는 다음과 같다. (당연한 말이겠지만) C로 작성한 코드보다 속도가 느리다는 말이 있다. Thonny의 코드 자동완성 기능이 만족스럽지 않다. C/C++의 경우 vscode로 개발한다면 훨씬 나은 자동완성을 제공한다. 아두이노 IDE로 개발하게 될 경우 C 코드는 재활용이 가능하나 마이크로파이썬은 그렇지 않다. 그래도 더 쉽게 개발환경을 세팅할 수 있고 bootsel 버튼을 누르거나 케이블을 뺐다 끼웠다 할 필요 없이 코드를 업로드 할 수 있어..