오늘 회사에서 다른 사람들로 부터 기능요청을 받았다. 원래 기획자 같은 role 의 사람이 있었지만 너무 바쁜지라(작은회사는 멀티role 이 당연한지라) 내가 직접 받게 되었다. 그런다 보니 원래 의도를 알 수 없는 UI 수정 요청사항을 받게 되었다. 그러다 이런 식으로 요청하면 아무래도 개발자가 방어적으로 될 수 밖에 없겠구나 하는 생각이 들었다. 

 기능 요청을 받다보면 불필요한 요청이나 불가능하거나 매우 구현이 어려운 요청을 받게 되어 개발자가 방어적으로 변하게 되는 것 같다. (여기서 불필요한 요청이란 딱 한번 하나의 데이터가 필요한데 있으면 좋겠다는 생각이 들어 기능으로 데이터를 구현해 달라거나 그냥 지레짐작으로 사용자에게 필요하겠지라는 생각으로 만들어 달라고 하는 요청이다. )
 그 외 또 개발자가 방어적으로 변한 이유 중 하나는 요청하는 사람이 개발자에게 충분히 생각할 시간을 주지않고 갑작스럽게 요청하게 되는 것도 하나의 이유 같다. 갑자기 요청자가 자리로 불러서 기능을 요청하는 경우, 요청자는 충분히 많이 생각했지만 개발자는 요청하는 사항에 대해 깊이 생각하지 못했을 때, 요청하는 사항에 대해 분명 이렇게 만든 히스토리가 있었던 것 같은데(기술적으로 어렵거나 다른 논리상의 충돌이 있거나 하는 등등) 그게 기억이 나지 않다보니 우선 방어하자라는 생각을 하게 되는 것 같다. 그리고 기술적 검토도 충분하지 않다보니 의외로 싶게 해결할 수도 있는데(해당 기능을 지원하는 요즘 핫한 library 가 있을 수도 있다.) 모르고 기술적으로 어렵다고 이야기 해버릴 수도 있다.  

그래서 이런 기능요청이나 버그을  위한 slack 채널이 따로 존재한다. 그래서 가능한 글로 미리 전달해 주고 추가사항 있다면 좀 나중에 자리로 불러서 설명해주면 좋은데, 왜 처음부터 생각할 시간을 안주는지 모르겠다. 생각할 시간이 충분하다면 내가 더 좋은 제안을 할 수도 있고 히스토리를 확인 해서 이유를 알 수도 있을텐데.

  Java 에 보면 native 라는 키워드가 존재한다. 이 코드는 java 가 구현된 부분이 C 또는 C++ 같은 코드로 구현되는 경우 이런 키워드를 사용한다고 배웠다. 내 기억으로는 난 java를 2003년 정도에 배웠던 것 같다. 그 때 이런 키워드를 공부했던 기억이 있다. 

 2010년 중반 쯤에 웹뷰를 이용해서 안드로이드 앱을 개발했다. 이 때 javascript 에서 java 를 호출 하는 코드는 native 라고 했다. 

뭔지 모르겠지만 뭔가 새로운 언어 또는 상위 계층언어 입장에서 오래된 언어 또는 하위 계층(여기서 하위계층은 기계에 가깝다는 의미다.)을 native 라고 부른다는 느낌이 든다. 

아마 오래전 C 언어 입장에서는 assembly 어가 native 일 것이다. assembly 입장에서는 01 로 이루어진 바이너리가 native 일 것이다. 


AI 로 프로그래밍 하는 바이브 코딩이  활성화 된다면 AI 가 만드는 코드 입장에서는 사람이 만드는 코드를 native 라고 인식하는 시대가 곧 도래할 것 같다. 

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

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