Chef로 코드를 한참 작성하고 있는 중에 생긴 문제였다.
준비된 인스턴스에 단순히 패키지 설치하고 코드를 긁어오는 정도의 간단한 코드였는데, 이상하게 손으로 디플로이 했을때와 chef 코드로 디플로이 했을때 작동이 서로 다르게 나오는 것이었다. 루비 코드를 살펴보아도 딱히 손으로 디플로이하는 과정과 별다를 것이 없어서 도무지 이유를 알 수 없었다.
일단 에러가 발생한 것은 분명하고 수작업으로 했을때는 문제가 없으므로 두 디렉토리를 비교해 보기로 했다. 제일 먼저 한 것은 브로드캐스팅이 되는 터미널로 두 디렉토리를 하나씩 비교해 보는 것이었는데, 역시나 하나씩 살펴보아도 별 문제는 없었다. 다음은 nginx설정. 마찬가지로 이것도 코드를 git으로 긁어올 때 설정파일을 링크하도록 되어 있기 때문에 문제가 있을리가 없었다. 그 다음으로는 chef로 설치한 rpm들과 python-pip 패키지들의 리스트를 뽑아서 하나씩 비교해 보는 것이었는데 이것 또한 문제가 없었고. 아무리 봐도 문제가 없는데 왜 그런 것일까 곰곰히 생각해도 답이 안나와서 때려치고, 주말에 살짝 보다가 답이 안나와서 다시 월요일. 도저히 안되겠다 싶어 회사의 다른 분께 물어보았는데 이것저것 보시더니 금방 해결하시더라.
내가 참 바보같았던 것이, 그 분께서도 내가 했던 방식대로 똑같이 비교를 해 보시고 문제를 찾았다는 것이다. 다른 점이 있다면 나는 조금 더 꼼꼼하지 않았다는 것.
예전에는 그 자리에 앉아 몇 시간씩, 그리고 나같은 평범한 사람들은 이해못할 코드를 작성하는 사람이 고수라고 생각했지만 요즘은 생각이 많이 바뀌었다. 그냥 꼼꼼하고 실수없는 사람이 더 고수라는 생각이 든다. 쉽게 작성하고 어렵게 생각하지 않으며, 실수가 없고 의사소통 확실한 사람. 이런 사람이 고수라는 생각이 든다.