아침
어제의 일정이 힘들었던 것인지, 아침에 일어나는데 많이 피곤했다. 6시에 일어나서 이불밖으로 나오기까지 시간이 걸렸다. 샤워를 하고 나오니까 벌써 6시 30분이어서 아침 일기를 쓰기는 무리가 있었다. QT를 먼저 하고 회사에 출근해서 지금 07시 30분에 일기를 쓴다.
업무는 엘라스틱서치를 통한 관리자 페이지 구성이다. 저번주까지는 엘라스틱서치의 기본적인 내용 즉, 용어나 개념에 대해서 공부했다. 오늘은 엘라스틱서치의 API를 사용해서 쿼리를 날리고 필요한 정보들을 처리하는 과정을 시작할 것 같다. 쿼리를 날려서 필요한 정보를 얻는다는 관점에서는 GA와 사용성이 유사하지 않을까 생각한다.
오늘도 퇴근후 운동을 할 것이다. 운동 강도는 저번주와 동일하게 하자. 욕심 부리지 않고 꾸준하게만 해나가면 좋을 것 같다. 오늘도 1시간 알고리즘 풀이를 진행하고 개인 프로젝트 설계를 계속해서 진행할 생각이다. 기획 및 설계를 이번 주 내로 끝내는 것이 목표다. 동작 및 책임별 분리, 작은 단위의 기능 구분하기, API 설계 및 명세 작성, 파일 디렉토리 구성 등만 끝나면 될 것 같다. 큰 틀을 먼저 단단히 구상하고 개발을 진행할 생각이다. 그런데 이런 관점에서 보면 DB 구조를 먼저 설계한 것이 마음에 걸린다. DB는 낮은 수준의 기획에 속하는데 이보다 높은 수준의 설계보다 선행되면 이후에 수정이 필요해질 수 있다. 여기서 높고 낮음의 기준은 사용자와의 거리를 나타낸다. 사용자와 가까운 기획일수록 높은 수준에 있다고 말한다 ( 사용자 기능, API 구성) 반면에 멀리 있을수록 낮은 수준이라고 말한다. (AWS 구성, DB 구성. 디렉토리 구성) 모든 프로그램은 사용자로부터 시작되어야 한다. 사용자가 사용하는 부분에서는 수정과 오류가 적어야 하고 낮은 수준에서 발생하는 수정과 오류에 대해서 최대한 영향을 덜 받아야 한다. 즉, 낮은 수준은 높은 수준을 위해 움직여야 한다. DB 구조 때문에 API를 변경하기 보다 API를 위해 DB 구조를 변경하는 것이 좋다. 물론 두가지 경우간에 비용 계산이 선행되어야 한다 (절대적인 경우는 거의 없다.)
평범한 하루
퇴근 하고 운동을 했다. 운동 강도는 최소 양심에 맞춰서 약하게 하고 있다. 그렇게 해야 꾸준히 하게 된다. 그러고는 저녁을 먹고 바로 카페로 갔다. 계속해서 개인 프로젝트의 기획 및 설계를 진행했다. 좋은 기반과 규칙과 틀을 만들고 그 다음에 코드를 채워 넣겠다는 일념으로 약 2주 가까이 코드는 한줄도 작성하지 않고 노션에 기획, UML, 계획등만 작성하고 있다. 지루하게 느껴지기도 하지만 어느새 디렉토리 구조를 작성하기에 이르렀다. 큰 틀에서 조금씩 세부사항으로 진행되고 있는 것이 보인다.
오늘 회사에서의 업무 진행은 조금 어려웠다. 다름이 아니라 회사의 업무지시 스타일이 나랑 맞지 않아서인데, "이것을 이렇게 개발해주세요" 가 아니라 "이것을 한번 해보세요" 식으로 업무가 할당된다. 그러면 이걸 왜 해야하는지도 모르고 이걸 해서 어떤 결과를 보고자 하는지도 혼자 생각해야 한다. 물론 개발자는 회사의 비지니스를 이해해야한다. 그래야 코드로 비지니스 로직을 작성할 수 있다. 하지만 추상적인 업무 요청은 첫째는 개발이 아닌 부분(기획 등)에 많은 리소스를 사용하게 된다는 점이 부담스럽고 둘째는 해당 요청에 대한 나와 다른 사람(요청인 혹은 동료)의 생각이 다르다는 점이다. 최악의 경우에는 기획에서부터 다시 시작하게 된다. 두 번 일하게 되는 것이다. 하지만 이제는 이부분도 어느정도 요령이 생겼다. 추상적으로 업무를 요청한다는 것은 사실 요청하는 사람에게도 그 업무에 대한 구체적인 그림이 없다는 것이다. 그러면 나는 프로토타입을 빠르게 만들어서 보여주면 된다. 비유를 들면 다음과 같다. "그릇을 만들어 주세요" 라는 요청이 온다. 그런데 국그릇이 필요한지 밥그릇이 필요한지 아무도 모른다. 이때는 그냥 뭔가를 담을 수 있는 어떤것을 빨리 만들어서 보여주면 된다. 그게 대접이든 간장종지든. 그러면 그걸 받아본 사람은 그릇이 크다 또는 작다라는 이야기를 해주면서 용도와 목적을 찾을 것이다.
- 초고 : 4월 25일 23:24
- 퇴고 : 4월 26일 07:45
댓글