목록IT (48)
altair의 프로젝트 일기
개요 예전에 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로 바꾸거나 아예 없애버릴 수도 있게 되었다. 그러던 중 계속 머릿 속을 맴돌던 의문이 있었다. 이 모든 것의 밑 바닥에는 무엇이 있을까? 어떻게 프로그램이 실행되는 것일까? 운영체제도 프로그램이라면, 어떻게 프로그램 안에서 프로그램이 돌아가는 것일까? 그 프로그램들은 어떻게 동시에 실행될까? 이 모든 것을 누가 관리하는 것이지? 인간이 마치 신에 대한 물음을 던지는 것처럼 나는 자연스레 운영체제 그 자체에 대한 물음을 던질 수 밖에 없었다. 물론 내 목표..
개요 학기가 시작하기 얼마 남지 않았다. 유닉스·리눅스 시스템 관리 핸드북이라는 책을 요새 읽고 있다. 정말로 추천할만한 컴퓨터 분야 고전 중에 하나다. 이 책의 몇 가지 예제를 따라하기 위해 아치 리눅스를 데스크탑에 설치했다. 그러던 중, 리눅스 환경을 노트북에도 설치해 밖에서 사용하고 싶었다. Vim 사용이 조금 익숙해지면서 무거운 IDE가 없더라도 충분히 원활하게 코딩을 할 수 있게 되었다. 굳이 무거운 프로그램이 필요하지 않다면 Vim을 사용해 가볍게 밖에서도 노트북으로 코딩할 수 있지 않을까? 리눅스 노트북 그래서 내게 노트북이 없냐하면 그건 또 아니다. 2020년 형 맥북 프로 13인치가 있다. 마음 같아서는 이 맥북에 macOS를 밀고 리눅스를 깔고 싶다. 어떤 리눅스 배포판은 일상적인 환경..