목록분류 전체보기 (51)
altair의 프로젝트 일기
개요 딱 작년 이맘 때 라즈베리파이 피코로 온습도계를 만들었던 적이 있다. 라즈베리파이 피코로 온습도계 만들기 1. 배경 또 지겨운 여름이 시작되었다. 추우면 이불 속으로 들어가 숨기라도 하겠지만 이렇게 더운 날에는 피할 방도가 없다. 강렬한 태양신의 눈에는 누구도 벗어날 수 없는 모양이다. 녹은 아 altair823.tistory.com 여름 내내 아주 요긴하게 썼지만 겨울이 되자 딱히 흥미가 없어졌다. 겨울에는 온습도 자체가 그렇게 중요하지 않았던 것 같다. 날이 추우면 입으면 그만이니까. 그러나 다시 여름이 오고야 말았고, 오랫동안 안쓰던 온습도계에 전원을 연결했다. 그런데 이럴수가, 화면에 아무 숫자도 안 나오는 것이다. 케이스 밖에서는 할 수 있는 일이 없었기에 뚜껑을 깠다. 센서의 VCC 케이..
개요 예전에 ImageCompressor2 프로그램을 개발한 적이 있다. 본래는 내가 가장 중요한 사용자였고 일단 내 상황에 맞춰 라이브러리를 만들었다. 코드에서 나는 냄새들도 일단 덮어놓고 작동하기만 하는 부분도 많았다. 그런데 작년 어느 날, github 리포지토리에 풀 리퀘스트가 올라왔다. 불필요한 데이터 복사를 수정하는 코드였다. Avoid unnecessary copies in Compressor::resize. by adamreichold · Pull Request #4 · altair823/image_compressor (github.com) Avoid unnecessary copies in Compressor::resize. by adamreichold · Pull Request #4 · ..
서버 1 - 삼성 노트북 저번 글에서도 말했다시피 집에 두 라즈베리파이를 실행 중이었다. 하나는 깃랩 서버로, 하나는 나스로 말이다. 그러던 중 이모가 다른 곳으로 이사를 가시면서 오래된 노트북을 주셨다. 모델명은 NT300E5X-AD5S로 12년 8월에 출시되었다. i5-3570에 8GB 램, 256GB SSD를 탑재했다. 그 시절 노트북 치고 굉장히 큰 램과 저장공간을 갖고 있는 걸로 봐서 한 번 업그레이드가 이루어진 것 같았다. 유감스럽게도 디스플레이가 4초마다 한 번씩 2초간 멈추는 문제가 있었다. 그래서 이 참에 이 노트북을 서버로 만들기로 했다. 분해 256GB SSD를 제거한 모습이다. SATA 포드는 케이블로 보드에 연결되어 있다. 며칠 간 이 메인보드에 128기가 SSD만 꼽고 컴퓨팅 서..
개요 대학교에서 강의를 듣다보면 강의 자료들이 쌓이기 마련이다. 강의 PPT부터 필기, 과제, 프로젝트 파일들까지, 생각보다 많은 파일들이 모인다. 가지고 다니는 기기가 하나라면 그저 한 폴더에 몰아넣고 정리만하면 된다. 하지만 나는 사용하는 기기가 여러 개고 강의 자료도 많다. 거기다 과제 파일들까지 모두 손수 관리하기엔 너무 버거웠다. 나스에 넣고 여러 기기에서 나스에 접속해 다운로드 받는 식으로 관리했었는데, 귀찮아서 까먹고 수정해버려 파일이 충돌하거나 아이패드 같이 접속할 수 없는 기기에서 파일을 열어야 하는 경우가 있었다. 이번 글에선 내가 강의 자료들을 여러 기기에서 동기화하고 최신 버전을 유지하는 방법을 소개하고자 한다. 과거 코로나가 세상을 휩쓸기 전, 그리고 더 옛날 입대하기 전에는 서피..
개요 은 튜링상 수상자 프레드릭 브룩스가 쓴 에세이다. 개강한 기념으로 오랜만에 도서관에서 책을 빌렸다. 프로그래밍 공학 분야의 유명한 고전 을 빌렸는데, 가 그 안에 수록되어 있었다. 책 전체 내용도 매우 흥미로웠지만, 먼저 에 대해 생각해본 바를 적고자 한다. 은 탄환 저자는 늑대인간과 늑대인간을 죽일 수 있는 수단인 은 탄환을 이야기한다. 늑대인간이 무서운 이유는 평소에 사람이라고 생각했었던 존재가 밤이 되면 무시무시한 괴물이 되어 날 공격할 것이라는 두려움 때문이다. 그렇기 때문에 우린 은 탄환을 간절히 원한다. 그것만 내 손에 있다면 늑대인간을 무서워할 이유가 없기 때문이다. 소프트웨어 공학에도 늑대인간이 숨어있다. 많은 프로젝트가 팀 단위에서 개발된다(이 부분의 효용성을 저자는 의심하지만 그건..
개요 여러 리눅스 운영체제를 경험해 보면서 많은 것들을 깨달았다. 터미널도 익숙해지고, 파이프 사용법도 손에 익어온다. Vim도 꽤 쓸 수 있게 되었다. 작은 프로젝트는 조금 불편하지만 Vim으로도 충분히 작성할 수 있다. GUI 환경을 그놈에서 KDE로 바꾸거나 아예 없애버릴 수도 있게 되었다. 그러던 중 계속 머릿 속을 맴돌던 의문이 있었다. 이 모든 것의 밑 바닥에는 무엇이 있을까? 어떻게 프로그램이 실행되는 것일까? 운영체제도 프로그램이라면, 어떻게 프로그램 안에서 프로그램이 돌아가는 것일까? 그 프로그램들은 어떻게 동시에 실행될까? 이 모든 것을 누가 관리하는 것이지? 인간이 마치 신에 대한 물음을 던지는 것처럼 나는 자연스레 운영체제 그 자체에 대한 물음을 던질 수 밖에 없었다. 물론 내 목표..