내 개인 클라우드 서버에서 certbot 을 이용해서 https 인증서를 사용하고 있었다. 그런데 이게 동작하지 않아서 한참 원인을 찾다보니 godaddy API 가 더이상 동작하지 않음을 알게 되었다. 내 경우 root 도메인 인증서 발급을 위해 DNS 인증 방식을 사용하고 있다. 좀더 자세히 설명하면 내가 이 도메인의 주인임을 증명하기 위해 DNS 의 txt 레코드를 변경해서 인증하는 방식을 사용하고 있다. 그런데 이 동작을 자동화하기 위해서는 DNS 서버에서 제공하는 API가 필요하다. 

 어째든 godaddy API 가 더 이상 무료가 아니게 되면서 문제가 발생했다. 이런. 다른 무료 DNS 서버 제공업체를 찾아야 할 것 같다. 일이 귀찮게 되었다. 

 개발을 한지 이제 15년 정도 되어 가는 것 같다. 그러나 일정은 계산하는 것은 아직도 어렵다. 

개발 경력이 낮을 때에는 요청하는 기능이 개발 가능한지 불가능한지에 대해서도 예측이 안되기 때문에 일정을 계산하기 어려웠다. 경력이 쌓이고 나서는 요청받은 기능이 개발적으로 불가능하면 기획이라든지 요구사항을 조금씩 협상해 가면서 일이 가능하도록 유도하는 기술이 쌓이게 된다. 그런데 이 때도 일정 계산은 어렵다. 이 때부터 개발과정은 일정과 완성도 사이의 적절한 타협을 하게 된다. 경우에 따라서는 양보할 수 없는 완성도라는 것도 있다보니 (참고로 여기서 말하는 완성도 의미는 사용편의성, 유지보수편의성, 적정한 사용자 UI, 차후 기능확장성, 적절한 속도, 프로그램의 안정성 등등을 모두 포함하는 말이다. ) 일정이 예상했던 일정보다 늘어나기도 한다. 그러나 반대로 일정이 줄어드는 일은 없다. 이 때는 완성도를 높이기 위해 작업하기 때문이다. 

완성도 문제 이외에도 많은 문제가 일정 계산을 어렵게 한다. 개발 과정에서 기획에서 고려하지 못했던 요소가 드러나기도 하고, 예전에 그냥 무시했던 코드가 갑자기 이거 이번 기회에 고쳐야겠는데 라는 마음이 생기기도 하고. 해당 기능을 구현하기 위해서는 특정 라이브러리의 버전업이 필요할 것 같은데, 그러면 기존에 잘 동작했던 것이 문제가 생기기도 하고. 갑자기 다른 업무 때문에 회의가 잡혀서 개발 시간을 까먹기도 하고. 등등의 문제로 일정 계산이 아직도 나에게는 어렵기만 하다. 

 회사내 관리사이트의 UI 를 다시 만들고 있는데, vuetify3 + typescript 를 사용하면서 개발하고 있었다. (기존 UI는 Boostrap4 였다.) 그런데 typescript 가 사용하기 쉽지않아 꽤 많은 페이지를 javascript만으로 개발하고 있었다. 그러다 오늘 완전히 typescript 를 걷어내기로 했다.( 어차피 회사내 개발자가 나 밖에 없기 때문에 나혼자 결정하면 되었기 때문에 바로 결정하고 걷어내는 작업을 했다.)
  내 경우, 이 사내 관리사이트 UI 는 typescript 가 맞지 않은 것 같다. 꽤 많은 부분이 any 타입으로 되어 있고, 기존 library 를 사용할 때 불편함이 크고, 나 자신도 typescript 사용법이 익숙하지 않았다. 그래서 typescript 를 사용해서 얻는 이득보다 시간 소모가 더 큰 것 같아 그냥 javascript 만을 사용하기로 했다. 그리고 어차피 꽤 많은 부분에서 javascript 를 사용해서 제거하는 것도 큰 어려움이 없었다. 

 

 typescript 는 뭔가 언어 이름이 잘못된 것 같다. script 언어가 갖는 장점이 week typing 과 메모리관리(할당과 해제)인데 이 중 하나인 week typing을 포기하면 이게 굳이 script 인가 싶다. 그냥 typelang 이 되어야 할 것 같다. 

 어째든 내가 강하게 하고 싶은 부분만 strong type을 쓰면 좋은데,  모든 변수, 함수에 대해 typing을 지정해야 하는게 너무 불편했다. Rust 언어의 경우 강력한 추론기능 때문에  타입이 추론되는 곳은 굳이 type을 적지 않아도 된다.(이런 기능이 vscode 와 연동되기 때문에 엄청 편리했다. ) 이런 식의 뭔가 좋은 tool 이 나오지 않는한 나 혼자 하는 프로젝트에서는 더 이상 typescript 를 시도하지 못할 것 같다. 이미 나에게는 javascript 로 충분하기 때문에 더더욱 이런 결정을 하게 된 것 같다.