목록전체 글 (46)
altair의 프로젝트 일기
먼저 구 테스트 코드를 분석해보자. 이 두 함수는 매 테스트의 처음과 끝에 실행된다. 테스트를 위해 원본 폴더, 목적지 폴더를 각각 생성하고 맨 마지막에 그 두 폴더를 삭제한다. 샘플 파일들이 담긴 폴더에서 필요한 파일을 원본 폴더에 복사한 후 테스트하는 구조로 만들어져 있다. 위 예시 테스트를 보자. jpg 이미지 하나를 압축하는 기능을 테스트하고 있다. 다른 모든 테스트들에게서 나타나는 공통적인 문제를 모두 포함한다. 파일 경로가 직접적으로 코드에 포함된다. 샘플 파일과 그 경로에 대한 종속성이 대단히 높다. 테스트할 파일 형식이 코드에 포함된다. 샘플 파일의 형식에 대한 종속성 또한 높다. 테스트 결과 중 일부를 출력한다. 유닛 테스트는 실패 또는 성공 두 상태만 존재하는 것이 좋다. 무엇보다 압축..
개요 딱 작년 이맘 때 라즈베리파이 피코로 온습도계를 만들었던 적이 있다. 라즈베리파이 피코로 온습도계 만들기 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부터 필기, 과제, 프로젝트 파일들까지, 생각보다 많은 파일들이 모인다. 가지고 다니는 기기가 하나라면 그저 한 폴더에 몰아넣고 정리만하면 된다. 하지만 나는 사용하는 기기가 여러 개고 강의 자료도 많다. 거기다 과제 파일들까지 모두 손수 관리하기엔 너무 버거웠다. 나스에 넣고 여러 기기에서 나스에 접속해 다운로드 받는 식으로 관리했었는데, 귀찮아서 까먹고 수정해버려 파일이 충돌하거나 아이패드 같이 접속할 수 없는 기기에서 파일을 열어야 하는 경우가 있었다. 이번 글에선 내가 강의 자료들을 여러 기기에서 동기화하고 최신 버전을 유지하는 방법을 소개하고자 한다. 과거 코로나가 세상을 휩쓸기 전, 그리고 더 옛날 입대하기 전에는 서피..
개요 은 튜링상 수상자 프레드릭 브룩스가 쓴 에세이다. 개강한 기념으로 오랜만에 도서관에서 책을 빌렸다. 프로그래밍 공학 분야의 유명한 고전 을 빌렸는데, 가 그 안에 수록되어 있었다. 책 전체 내용도 매우 흥미로웠지만, 먼저 에 대해 생각해본 바를 적고자 한다. 은 탄환 저자는 늑대인간과 늑대인간을 죽일 수 있는 수단인 은 탄환을 이야기한다. 늑대인간이 무서운 이유는 평소에 사람이라고 생각했었던 존재가 밤이 되면 무시무시한 괴물이 되어 날 공격할 것이라는 두려움 때문이다. 그렇기 때문에 우린 은 탄환을 간절히 원한다. 그것만 내 손에 있다면 늑대인간을 무서워할 이유가 없기 때문이다. 소프트웨어 공학에도 늑대인간이 숨어있다. 많은 프로젝트가 팀 단위에서 개발된다(이 부분의 효용성을 저자는 의심하지만 그건..