매끈한 답변을 읽고 나면 이해한 것 같은 기분이 든다. 선택지가 정리되어 있고 장단점도 균형 잡혀 있다. 그대로 보내도 대화가 이어질 것 같다. 그런데 상대가 왜 그 선택을 하느냐고 물으면 다시 답변 창으로 돌아가야 한다. 문장을 전달한 사람과 판단한 사람이 갈라지는 ...
대시보드에 숫자가 보인다고, 지금도 측정 중인 것은 아니다
작은 측정 장치를 만들고 숫자를 웹에서 볼 수 있게 되면 한 가지 수고가 줄어든다. 직접 가서 확인하지 않아도 된다. 그런데 화면이 마지막 값을 계속 보여주고 있다면 어떨까. 값은 그럴듯한데 측정은 멈춰 있을 수 있다. 편리한 화면을 만드는 일과 그 화면을 ...
첫 기술 발표 제안서에는 도구 이름보다 청중의 다음 행동
발표 주제를 적으라고 하면 기술 이름부터 떠오른다. 새 프레임워크, 최근에 배운 기능, 재미있게 만든 도구가 있다. 이야기할 것은 많다. 그런데 그 이름만 보고 청중이 어떤 시간을 보내게 될지 상상하기는 어렵다. 발표자가 알고 있는 것과 청중이 가져갈 수 있는 것 사이에는 ...
Docker가 낯설 때, 이미지와 실행 중인 일과 남길 자료를 나눠보기
프로그램을 컨테이너로 실행하면 환경 문제가 정리될 것 같다. 그런데 실행이 끝난 뒤 파일이 보이지 않거나, 다시 시작했는데 예전 상태가 남아 있으면 무엇을 확인해야 할지 막막해진다. 컨테이너라는 단어 하나로 묶어 생각하던 것을 조금 나눌 필요가 생긴다. 무엇을 준비했고, 무엇이 실행 중이며, ...
같은 음악을 두 번 듣고, 서로 다른 메모를 남겨보기
좋은 음악을 들었다고 말하는 것은 쉽다. 무엇이 좋았는지 쓰려면 갑자기 문장이 짧아진다. 분위기가 좋다, 편안하다, 마음에 든다는 말이 돌아온다. 그 말이 틀린 것은 아니다. 다만 다음에 비슷한 음악을 찾거나 누군가와 이야기를 나누고 싶을 때에는 조금 더 구체적인 흔적이 있으면 좋겠다. ...
SQLite를 여러 곳에 두기 전에 정해야 할 장애의 모양
데이터를 한 대에만 두는 것이 불안해지면 복제부터 떠올리기 쉽다. 여러 곳에 같은 자료가 있으면 더 안전할 것 같다. 하지만 안전하다는 말에는 잃지 않는 것, 기다리지 않는 것, 서로 다른 결과를 보여주지 않는 것이 섞여 있다. 이 셋을 모두 같은 방식으로 ...
연습이 도구 선택으로 끝날 때, 네 음만 남겨보기
무언가를 연습하려고 자리에 앉았는데 준비만 하다가 시간이 끝날 때가 있다. 어떤 도구가 좋을지 찾아보고, 더 좋은 예제를 저장하고, 시작 화면을 바꾸다 보면 정작 손으로 해본 것은 적다. 선택한 것들은 모두 그럴듯하다. 그래서 더 쉽게 다음 선택으로 넘어간다. 오늘 끝내려던 작은 ...
더 큰 프로그램을 만들기 전에, 맞았는지 알아볼 방법
만들 수 있는 것이 늘어나면 하고 싶은 일도 커진다. 예전에는 귀찮아서 넘겼던 도구를 하루 만에 흉내 내고, 오래 쓰던 프로그램의 작은 부분을 자기 취향에 맞게 바꿔볼 수 있다. 반가운 변화다. 다만 구현을 시작하는 문턱이 낮아졌다고 해서, 결과가 맞는지 판단하는 문턱까지 ...
코드 세 줄을 고쳤는데, 어디까지 다시 봐야 할까
변경된 코드가 짧으면 검토도 짧아질 것 같다. 이름을 고친 것인지, 계산을 바꾼 것인지 읽고 나면 얼추 감이 온다. 그런데 작은 공용 함수 하나는 화면 여러 곳에서 쓰일 수 있다. 변경한 줄만 따라가다 보면 그 함수를 사용하는 사람은 시야 밖에 남는다. ...
오래된 게임을 다시 만들 때, 화면보다 먼저 남겨야 할 것
오래된 프로그램을 새로 만들겠다는 말에는 서로 다른 바람이 섞여 있다. 답답한 화면은 바꾸고 싶고, 익숙한 동작은 그대로 두고 싶다. 코드를 걷어내는 일보다 어려운 것은 두 바람 사이에 선을 긋는 일이다. 무엇을 고쳐도 되는지 정하지 않은 채 다시 만들기 시작하면, 작은 ...
